Programming boot camps seem to make an impossible claim. Instead of spending four years in university, they say, you can learn how to be a software engineer in a three-month program. On the face of it, this sounds more like an ad for Trump University than a plausible educational model.
But this is not what we’ve found at Triplebyte. We do interviews with engineers and match them with startups where they’ll be a good fit. Companies vary widely in what skills they look for, and by mapping these differences, we’re able to help engineers pass more interviews and find jobs they would not have found on their own. Over the last year, we’ve worked with about 100 boot camp grads, and many have gone on to get jobs at great companies. We do our interviews blind, without knowing a candidate’s background, and we regularly get through an interview and give a candidate very positive scores, only to be surprised at the end when we learn that the candidate has only been programming for six months.
Boot camp grads are junior programmers. They have a lot to learn and represent an investment on the part of a company that hires them. That said, this is also true of recent college graduates. We’ve found boot camp grads as a group to be better than college grads at web programming and writing clean, modular code, though worse at algorithms and understanding how computers work. All in all, we’ve had roughly equivalent success working with the two groups.
In this post, I’m going to try to shed some light on how this can be true. I’ll dig more into the differences that we see between the two groups and hopefully explain how some people can become competitive junior programmers in less than a year.
Our technical interview at Triplebyte is about two and a half hours long and is broken into four main parts, focusing on practical programming, web architecture, low-level system understanding, and algorithmic understanding. Not every engineer completes every question (we let programmers focus on their strengths), but the process gives us a good measure of the relative strengths of each engineer in each of these areas.
To get a better idea of how boot camp grads and college grads compare, I graphed the two groups’ average performance in each of these areas. The y axis is the score on each problem (1 = strong no, 2 = weak no, 3 = weak yes, 4 = strong yes). For reference, I also included the entire population of applicants, as well as all engineers who pass our interview.
The first thing to note about this graph is that boot camp grads do as well as or better than college grads on practical programming and web system design, but do worse on algorithms and low-level systems. Our practical programming questions are not easy. They require understanding a problem, coming up with abstraction to solve the problem, and rendering this in code. If anything, our practical programming questions require more on-the-spot thinking than our algorithm problems do. They do not, however, require academic computer science or math or any specific knowledge. This is the crux of the issue. Boot camp grads match or beat college grads on practical skills, but lose on deep knowledge.
A similar pattern holds on the design questions. Boot camp grads do better on web questions involving web servers, databases, and load balancers. College grads do better on low-level design questions involving bits/bytes, threading, memory allocation, and understanding how a computer actually works.
Triplebyte sees a biased sample of both boot camp grads and college grads. We do background-blind screening via an online programming test, and we interview only the engineers who pass this test. Thus, we have no way to know what percentage of boot camp grads and college grads fail early in our process, and the graph above reflects only people who pass our test. Still, a significant number of boot camp grads pass our test and go on to do as well as college grads on our interviews.
I want to specifically draw attention to the performance of college grads on algorithm problems. They are not merely better than boot camp grads, but a lot better. They are significantly better than the average programmer who makes it to our interview (most of whom have two or more years of experience), and they are almost as good as the average engineers who pass our interview. This is interesting. It backs up the assertion that algorithm skills are not used on the job by most programmers and atrophy over time.
How is this possible?
Our data aside, it still seems hard to believe that three months of training can compete with a four-year university degree. The time scales seem off. The first detail to note: The difference in instructional time is not as large as it seems. Boot camps are intensive. Students complete eight hours of work daily, and many stay late and work on the weekends (one popular boot camp runs six days per week). Teaching assistants are working with the students during this entire time. What boot camps lack in duration they perhaps make up in intensity.
The second point is that boot camps teach practical skills. Traditional programmers spend significant amounts of time on concepts like NP-completeness and programming in Scheme. Now, I in no sense mean to belittle this material. I love academic computer science (and the Cook-Levin theorem). It’s beautiful, fascinating stuff, and I got a lot out of learning it. But it is not directly applicable to what most programmers do most of the time. Boot camps are able to show outsized results by relentlessly focusing on practical skills. Boot camp instructors continually critique each student’s coding style. They teach testing. They teach their students how to use their editors. How to use an editor is something that a traditional CS degree program would never think of teaching.
This does not leave boot camp grads as prepared as university grads to tackle deeper programming problems. If you want to do hard algorithmic or low-level programming, you’re still better served by a traditional CS education. But it leaves the best of boot camp grads surprisingly competitive for many entry-level development positions.
Boot camp or college?
There are two ways to interpret the results in this blog post. One is to say that boot camps are window dressing. They teach inexperienced programmers what they need to know to look like good programmers, but skimp on the heart of the discipline. However, I think this view is too cynical. The other way to view this post is as evidence that boot camps focus on totally different areas than CS programs. Boot camps focus intensely on the practical skills required to be a productive programmer. These are skills that CS programs expect students to pick up around the edges of their course work. By being relentlessly pragmatic and giving students an intensive workload, boot camps impart practical skills that more than match those of CS grads.
Boot camp grads don’t make sense for all companies. Like recent college grads, they represent an investment for a company that hires them. They have much to learn. And they are clearly worse at algorithms and low-level systems than engineers with academic training. A database or self-driving car company should probably stick to folks with CS degrees. But the significant majority of companies need programmers to solve practical problems on the web. On this axis, we’ve found boot camp grads totally competitive.
Triplebyte is one year old. In that time, we’ve placed many boot camp grads at top companies and watched them grow. We’ve watched them learn some of the CS skills that they lack on graduation. We’ve watched them learn about large-scale production systems. We’ve watched them take on leadership positions. It’s amazing how quickly and how well the best boot camp grads learn. It’s been a pleasure to work with boot camp grads, and we’ll definitely keep working with them.
If you’re a boot camp grad (or a college grad or anyone else) and interested in a way to find companies for which you’re a strong technical match, give our process a try. I’m also interested in your thoughts on this post! Send me an email at email@example.com.
Ammon Bartram is founder and chief data officer at Triplebyte. He thanks Jared Friedman and Daniel Gackle for reading drafts of this article, and Buck Shlegeris for major help writing it.
New Tech Forum provides a venue to explore and discuss emerging enterprise technology in unprecedented depth and breadth. The selection is subjective, based on our pick of the technologies we believe to be important and of greatest interest to InfoWorld readers. InfoWorld does not accept marketing collateral for publication and reserves the right to edit all contributed content. Send all inquiries to firstname.lastname@example.org.