Written by: Landis Duffett
As a certified teacher switching careers into software development, I spent a lot of time and mental effort observing, analyzing and internally critiquing the teaching methodology and pedagogical efficacy of Boise Codeworks as I completed its Full Stack Immersive course. This review is intended for anyone considering taking a coding bootcamp at Boise Codeworks. I hope that my review can help you make a considered opinion. I enrolled in and successfully completed a 3-month course at this school. I hope that my perspective on the school is valuable not only because it is based on first-hand experience but because it is informed by my years of training and practice as a teacher.
The most important concept in understanding BCW's approach to teaching coding is the pedagogical concept of "scaffolding". Scaffolding means just what it says, providing support. No type of training involves a teacher simply telling the student, "Go do it." At the other extreme, no type of training involves a teacher doing all the hard work for the student and letting the student cross the final "t" and take credit for a project. Instead, in the concept of scaffolding, the student is provided security and stability at the beginning of a sub-skill or project. At the beginning, the importance is to build confidence in the student but also to demonstrate clearly to the student what the successful implementation of the skill or completion of the project looks like. Then, as the unit progresses, the scaffolding is, so to speak, removed. But it is removed in such a way that the student internalizes those missing pieces and by the end of the unit, the ratio of structure provided by the teacher to that provided by the student constitutes an inverted pyramid: the teacher need only provide the barest structure, while the student, who now has internalized the knowledge and has mastery, can easily provide the rest.
The full stack course at BCW is divided into weekly units. Each week progresses in a well-designed and extremely effective execution of the scaffolding process described above. Lectures on Monday provide new information and students are told to apply it and build something. Early in the week, what the student builds stays pretty close to the model provided in lecture. It may sound counterintuitive, but copying a model, while not desirable behavior at the end of a unit, is a sound pedagogical method in the early stages of learning any skill. As the week progresses, though, the complexity required in executing the skill increases, i.e., scaffolding is being dismantled and student autonomy is increased.
The problem that often arises with this scaffolding method, which sounds so ideal in theory, is that not every student progresses through this scaffolding process at the same pace. BCW manages this potential pitfall in the pedagogically most sound way: by offering individual assistance in the afternoon "hands-on" sessions. Students work on their own to build the project for the day but turn to teachers or teaching assistants with questions particular to their own learning pace. These one-on-one sessions provide a kind of "cement" which ensures that the mental structure replacing the structure provided by the teacher is equally stable.
I cannot compare BCW to other bootcamps because I have never attended another bootcamp. Somehow it's hard for me to imagine that most other bootcamps navigate the treacherous pedagogical waters of scaffolding quite as intentionally and effectively as BCW. There was never a day when I couldn't find a teacher to help me with my questions. Nor, however, were the answers doled out to me in cookie-cutter fashion. There were times when I went expecting an answer and received a line of Socratic questions back from the teacher instead. What I noticed over the course of the class was that these teachers were putting into practice what it took me as an educator years to master: tailoring answers to students in such a way that 1) pushes them to think independently and 2) at the same time does not raise student frustration to a dangerous level. This is a very tricky balance to strike. BCW's teachers strike this balance with a masterful artistry that I have rarely observed in public school teachers.
Another essential feature of any good training is relevance. The rigor described above is all for naught if the student doesn't understand the relevance of what they are learning. Similarly, relevance without rigor will make us all feel good and confirm what we already know, but at the end of the day nothing is learned. The key to success in BCW's rigorous approach to scaffolding and making the student internalize the skills is the meaningful context in which each unit as a whole, and the daily lessons within each unit, are placed. Each weekly unit works with a single skill (whether it is a language like JavaScript or C#, a framework like Vue or a particular database like MySQL), but apart from the first two weeks of foundational training in HTML/CSS/JavaScript (and even then), there is no such thing at BCW as simply learning a language, platform, or framework. It is rather always the purpose behind the project and its application that provide the relevant context in which the project is built. The weekly checkpoints outline real-world apps. The technical features of the apps and the technology used to build out those features take on their meaning only in fulfilling the individual purposes of those features and of the app as a whole.
It should be clear by now that Boise Codeworks is a school that emphasizes learning by doing. It would be hard to maintain either the rigor that comes from scaffolding or the relevance that comes from meaningful purpose without an overall teaching methodology that centers on practical problem-solving and implementation. I have heard that many coders that come from a Computer Science background regard what is, admittedly, a dearth of theory in bootcamps in general--and Boise Codeworks is no different--as a deficit. I think there is a case to be made for this position. There were times throughout the course when I felt that I could have benefited from reading a chapter in a textbook or from understanding deeper computer science-type concepts. I don't think there is an easy solution here. But maybe there shouldn't be a solution. The goal of the training at BCW is not primarily to produce programmers who understand programming to the degree that they could explain it to anyone. Rather, the goal, which they achieve with a tremendous success rate, is to produce programmers who can create applications. BCW does not offer a course in computer science. They offer a course in how to code. There is overlap, but the ultimate goal is not the same for both.
The practical orientation of the course, however, does not imply that important concepts in computing are glossed over. Among the rich and varied supplementary materials offered to students is a course in "Codecabulary" designed to help students to recognize and talk meaningfully to others about the programming concepts that they are becoming proficient in putting into practice, including advanced themes like object-oriented programming and design patterns. Similarly, BCW makes an effort to teach not just programming concepts but the important concepts and vocabulary surrounding nearly all aspects of a programming career (scrum, agile, web design, job search and advancement, workplace environments), enlisting faculty and staff with special knowledge of these subareas or bringing in guest speakers from the Boise programming community.
Ultimately, BCW delivers much more than what a student could reasonably expect from a bootcamp. Yes, BCW provides the opportunity to learn to code. But it will also provide you with a realization that few who receive training in any field are lucky enough to achieve: that knowing and doing are one in the same.