We’re Not a Bootcamp

We’re Something Unique, and Uniquely Effective

Photo by Kyle Johnson on Unsplash

One of the things about operating in a crowded marketplace is that you tend to get lumped in with the biggest names and most common stereotypes. In the programming education space, that means the now familiar label of “bootcamp.” I often see people refer to Launch School as a “coding bootcamp,” which may seem like a reasonable shortcut for helping people understand what we do; however, it fails to capture what makes us special. When I talk about Launch School and what we are trying to achieve, I don’t use the word “bootcamp.” We are an online school for developers, but more than that, we are a school with an opinionated pedagogy that focuses on fundamentals first with the goal of building skills that last a career.

So, why do I steer clear of the “bootcamp” label? To put it simply, I don’t believe that it accurately describes our model. Neither our methodology nor our curriculum reflect those of most coding “bootcamps,” and to be frank, nor do our results. Graduates of our Capstone program are getting jobs with an average salary around $110,000, as compared to graduates of even the best bootcamps, who in the same markets are averaging salaries around $85,000. Why is that? The reason is that we are doing something different than what the bootcamps are doing.

Launch School is the only online school for developers with a pedagogy that explicitly revolves around mastery-based learning. Plenty of schools, some bootcamps included, talk about the importance of mastering the fundamentals, but we are the only one that is actually putting that claim into practice. And we do this because we firmly believe that mastering fundamentals, first and foremost, is the best way to launch a lifelong career as a software developer. Our mission is to help our students get not just any job, but top jobs, at top companies. Of course, every school and bootcamp out there makes similar claims. So today I want to talk about how Launch School is different and explain why our philosophy leads to better outcomes.


The Bootcamp Model

Photo by My Photo Journeys on Flickr. CC license.

In order to set the stage for understanding Launch School’s philosophy, perhaps we should first take a moment to understand our point of comparison: the bootcamp model. The name of this model itself provides us with a useful starting point. A “bootcamp,” by common definition, is a short but intense period of training meant to shock the system of people who go through it. The goal is to quickly indoctrinate participants into a new way of thinking and provide them all at once with everything they need to be successful. Most coding bootcamps operate in a roughly analogous fashion, albeit from two starting points. In one model, a bootcamp will accept any and all students who want to join. In the other, bootcamps accept only the “best” students. In both cases though, students enter the program, undergo 8, or 12, or 16, or even 24, weeks of intense instruction, and then exit the program with the hope that they know enough to start going after jobs. For the more selective bootcamps, the hope is that starting with the “best” students will result in a higher percentage of successful graduates; however, even this is an implicit acknowledgement that the model doesn’t work for everyone.

In many ways, the bootcamp model is not so very different from the factory-style education model practiced by most of our broader education system. That is, students come in, go through some predefined series of steps over some predefined and non-negotiable schedule, and then come out, ready or not. But what happens when a student moves between steps too soon? What happens when a student “graduates” (meaning primarily that they made it to the end of the program) but hasn’t yet had time to put down the necessary intellectual roots?

The problem with the bootcamp model is that it doesn’t provide most learners with the opportunities they need to master fundamental skills. All the model really does is guarantee that students get exposure to key concepts; however, exposure and mastery are two very different things. Imagine a typical bootcamp curriculum, which might start out something like this: Week One, basic programming syntax, control flow, and data structures; Week Two, object-oriented programming and instantiation patterns; etc. The right ideas are there, but the time constraints mean that students have no choice but to match the prescribed pace. If you happen to have a knack for the concepts taught in Week One, then you might very well be ready for Week Two. But what if you’re still having trouble with compound data structures and you need some time before moving on to OOP? Too bad, the schedule says otherwise. It is a conveyor belt without a reverse switch, and if you’re not ready, then you’ll just have to figure things out on your own.


Consequences of the Bootcamp Model

Photo by nikko macaspac on Unsplash
By promising students lofty outcomes but then rushing them through curriculum at a breakneck pace, bootcamps are promoting a model where only the fittest are assured survival.

The bootcamps have some legitimate success stories and some people do indeed come out of them just fine. If you happen to be a person with a learning style that is well-suited to the short but intense model practiced in most bootcamps, that’s great. However, I think that this model is woefully inadequate for most people. The fact that this model is so dominant in our industry is troubling to me for a few reasons.

First, the bootcamp model is not setting new programmers up for long-term success. Sure, the good bootcamps ostensibly cover all of the material you would expect a programmer to know, but the model simply isn’t flexible enough to let students do what is arguably the most important skill for any developer: learning how to learn. In the day-to-day work of a professional developer, they are constantly being asked to learn new things. The learning doesn’t stop when bootcamp ends, rather, it is only just beginning — and it gets harder. If you think that you just have to buckle down and “make it through bootcamp” and then all will be OK, you’re in for a rude awakening. What enables good programmers to constantly adapt to new challenges is their ability to learn effectively. But in order to do this you have to have solid roots in the fundamentals and allow yourself the time to figure out how to learn and digest new concepts. This is how you unlock the ability to solve more and more difficult problems — problems that you haven’t solved before — and this is what the top jobs hire for.

Imagine a new developer on their first day at their first engineering job. I can guarantee that by the end of the day they will have a long list of things that they have to learn in order to be effective. It might be a new technology stack that they haven’t used before, a set of internal tools, a new language, or a whole new design paradigm. What happens when the developer looks at the list and realizes that they have no idea where to start? Or worse yet, when they get started only to realize that their passing familiarity with a concept from Week Three of bootcamp doesn’t even begin to reach the depth they need? This new developer can hardly be blamed for their predicament, after all they “graduated” from bootcamp and were told “now you’re an engineer,” but their lack of culpability doesn’t much help them as they fall into an ever deepening knowledge gap.

A related concern is the failure to set realistic expectations for students. Much of the marketing literature from coding bootcamps emphasizes the short timeframes necessary to “become a software engineer,” or “learn web development.” In some cases, this timeframe is set as low as 8 weeks, and in others it might be as high as 24 weeks. But in both cases the problem is the same: it assumes that every student will learn at the same pace. In reality, this isn’t how learning works. Every learner experiences challenges, setbacks, and victories at different times and with different topics. Moreover, every learner still has the rest of their life to live — no one can predict when something will come up that will require a pause in their study time. For those that happen to have the right background, time, and reserve of intellectual energy, the predefined schedule might be fine. Everyone else, however, is almost certain to find at the end of bootcamp that their fundamental skills are sorely lacking. This is a result of having insufficient time to master the fundamentals, which unfortunately, and ironically, is also the same trait that employers are looking for in new hires.

By promising students lofty outcomes but then rushing them through curriculum at a breakneck pace, bootcamps are promoting a model where only the fittest are assured survival. Meanwhile, the rest are left to fend for themselves when they inevitably realize that their fundamental skills need improvement. It doesn’t have to be this way though. By promoting the right learning model and setting realistic expectations for the learning journey, all students can set themselves up for long-term success. The trade off is that the promise of a quick return on investment (ie. “Become a Developer in 12 Weeks”) must be put aside in favor of a slower, but ultimately more effective path.


The Mastery-Based Learning Model

Photo by alexander milo on Unsplash
In order to get the most interesting jobs — the ones that challenge you to solve hard problems — you have to have mastery of fundamentals.

If the bootcamp model is an approach that emphasizes high intensity over a short period, then the mastery-based learning model is its counterpart. In mastery-based learning (MBL), there are no schedules, no deadlines, and no promises of quick return on investment. Rather, MBL calls for a learner to stick with a topic until she has mastered it. The idea is that sustained, medium-intensity effort over a long period of time results in deeper roots than a very high-intensity effort over a short period of time. Learners are not just encouraged to delve deeply into concepts, but they are required to do so before they move on. There is no pressure to advance simply because your cohort is advancing.

MBL, as a pedagogy, can be applied to any field of learning, but it is particularly potent in fields where the fundamentals are both vital and cumulative, meaning that they necessarily build on top of one another in a structured fashion. Programming is one of these fields. In an MBL approach, if a learner is having trouble with working with loops, they do not move on to learning about algorithms. The reason is simple: every time you advance before you’re ready, your knowledge debt grows. And it isn’t just the principal balance that increases — it is the compounding interest that comes with trying to build new knowledge on top of shaky foundations. The more fundamental knowledge you are missing, the greater the rate at which your overall debt increases. This is how developers with insufficient mastery of fundamentals end up in unsatisfying jobs — they are constantly struggling to pay off their knowledge debt.

In order to get the most interesting jobs — the ones that challenge you to solve hard problems — you have to have mastery of fundamentals. Imagine, for example, an accountant who hasn’t mastered basic math skills. What kind of job can they expect? Current market conditions and demand for accountants might mean that they can get a job, but it probably won’t be a very interesting one. If all you can reliably do is manipulate spreadsheets and enter data into Turbotax then that’s all your job is going to let you do. There is an equivalent in the programming world, which I call the “minimal viable developer.” It is a developer who knows a framework or two and has memorized how to set up certain tools, but who doesn’t really have the depth to do much more. In other words, you can get a developer job with relatively little knowledge, but it won’t be a very good one. Moreover, when market conditions change you may not even be able to get a low-end job. That’s not what we’re aiming for with Launch School.


We don’t deny that the bootcamp model works for some people, but we don’t think it’s right for most people.
Photo by trail on Unsplash

The Launch School approach is unique in our industry — but so are our outcomes. We are producing engineers who are ready for careers in software development and we firmly believe that this is a direct result of our MBL-based approach. Our promise is not that you can “become X in Y time,” but that “if you take the time to successively deconstruct the path to X, and reach mastery each step, then you can become X, however long it takes.” That’s a less compelling elevator pitch, but it’s a path achievable by all.

We don’t deny that the bootcamp model works for some people, but we don’t think it’s right for most people. Our goal is for every student who finishes our program to be ready for a new career, but achieving this goal requires a commitment to a mastery-based process, which can, in some cases, take a long time. And that’s OK — most worthwhile pursuits take time. So no, Launch School is not a bootcamp. We’re something different — something that we believe is both unique and uniquely effective.

You can read more about our take on Mastery-based Learning and Our Pedagogy.