May 1, 2022

So You Want To Go To A Coding Bootcamp


What was going to a coding bootcamp like, and should you attend one? I attended the bootcamp Hack Reactor (aka HR in this post) in 2015 and get a lot of questions from prospective students. This blog post is an attempt to consolidate the answers to the most common questions I get. An obvious caveat here is that my experience is seven years old, and things have changed a lot since then.

Table of Contents

  1. Pre-bootcamp: how much did you know before?
  2. During the bootcamp: what did you actually do?
  3. The job hunt: how many people got jobs?
  4. Post-bootcamp: was I prepared?
  5. Should you go to a bootcamp?

Of course, when people come to me asking for advice, it’s that last one they’re really getting at, so the TL;DR is: the bootcamp was one of the best experiences of my life and delivered on everything it said it would, but you shouldn’t go unless you’re committed to holding yourself to a much higher standard than the bootcamp will hold you to. More on that below.

Pre-bootcamp: how much did you know before?

How much experience did you have before HR?

Very little. I had not written a single line of code before 2014. I was working in a poorly-paid passion industry that I loved but was realizing was probably not the right long-term career move1. My friend introduced me to programming by way of a game he thought I’d like. He said I’d enjoy the logic even though I didn’t know how to write the code - we’d figure out the algorithm together and he’d implement it (which was really my first introduction to pair programming, not that I knew to call it that at the time).

I’d always loved logic puzzles, and coding felt like that on crack. I got hooked immediately and started teaching myself how to code at night for fun. I used Codecademy to learn JavaScript because my friend told me to learn JavaScript. I was mostly writing little toy programs I could execute from the command line, like tax calculators. They weren’t hosted anywhere, weren’t in source control, and didn’t have UIs; I was just messing around for fun.

It was just a side hobby until I heard about these weird institutions called bootcamps that could take in someone with no coding experience and spit out someone who could get a six-figure software job in three months. The idea was so absurd that I thought it was a scam. But since I was looking for a career change anyway, wanted to make more money, and couldn’t really drum up any excitement for law school, I figured it couldn’t hurt to learn more.

At that time (late 2014 / early 2015), bootcamps were still relatively new. There were only four or five on the scene, and they all made wild claims about the success of their early students that seemed like they had to be fake. But I found a bunch of blog posts by former students, and set up some intro calls with the schools. They seemed real enough, so I decided to apply.

What was the interview and prep process like?

The application online was a quick coding quiz. I passed and was invited to interview. They let you do remote, but I flew up to SF for it because I wanted to see the school with my own eyes before laying down a chunk of change that big. The school seemed legit: it was buzzing with energy and I met enough people who’d gone through the program there that I started relaxing about the whole scam thing. The interviewer asked me to write some higher-order functions like map, forEach, and reduce and explain what I was doing as I was doing it - eng interview-lite, if you will. I passed and was accepted into the August 2015 cohort. I paid the tuition2, quit my job, and moved to San Francisco. At that point, I still had a pretty hazy idea of what software engineering was about, but I knew that I loved solving puzzles, coding felt like a puzzle I got to make for myself and then solve, and if it worked, I’d be set financially.

During the bootcamp: what did you actually do?

The program itself

My cohort, the best cohort, HR33 <3
My cohort, the best cohort, HR33 <3

Hack Reactor was a very fun and gruelingly difficult 13-week program that ran 6 days a week, 12 hours a day (two six-week halves with a week break in between). It was a high-throughput operation: I was one of 40 students in my cohort (HR33 represent!) on the 8th floor of the building, and there was another set of 40 students doing the same curriculum on the 6th floor. We overlapped by six weeks with another two cohorts, so at any given time there were 160 students going through the program at once.

Pre-work

There were six weeks of DIY remote work that were required before going onsite to the program itself, to help ensure everyone was prepared. If I recall, the prework was a series of exercises to introduce us to some key workflows - using git, using GitHub, installing libraries, writing small programs and testing that they worked. We had video office hours with TAs when we got stuck.

The first half

The first six weeks were a preset curriculum designed to teach us how to be full-stack developers (with a focus on JavaScript on both the frontend and backend3). This means we were learning how to build websites: the backend server code and the frontend browser code. The instructors, Fred and Allen, were literally the best teachers I’ve ever had in my life, who had obviously put an immense amount of effort into the lectures and course materials. They, along with Josh, the curriculum developer, the Tech Mentors (who were there to help students with any question, grade our materials, and generally be deeply involved with the cohorts on a day-to-day basis), and the TAs (former students who stayed on for an extra three months) were fantastic. The bootcamp would not have been nearly as effective without their attention to detail and rigorous focus on helping us build the right mental models.

My memory’s a bit hazy, but a typical day in the first half looked something like this:

  • 8:30: arrive, make breakfast
  • 9:00: Do a toy problem similar to an interview problem. These had automated tests through GitHub and were graded. They were excellent prep for interviews later, and grew in complexity over the course of the program.
  • 10:00: Submit the toy problem, then go to a lecture, or do pair programming to work through one of the week’s three sprints (two days each). Day one had a lecture covering the main concept of the sprint (e.g. databases or MVC architecture or data structures), followed by a day and a half of pairing with someone in your cohort to complete a small project.
  • 12:00: Lunch, with optional group games like SET or Ricochet Robots (those weren’t a program-wide thing; my cohort just liked games a lot)
  • 1:00: More pair programming
  • 6:00: Dinner
  • 7:00: Some after-dinner activity like a guest lecture
  • 8:00: Keep working. I usually went home around 10 or 11.

This was remarkably effective at cramming a truly massive amount of information into our heads. But it was very hard and demoralizing because we were bad at everything all the time (Seven years later, I’m used to it, but at the time it was brutal. This is because programming is hard in a way that forces you to see how wrong you are constantly, whereas in other fields the feedback loops are orders of magnitude slower - see one of my favorite blog posts for more on this topic). HR knew this and compensated for it with pump-up talks about how at the end, we’d be total experts in JavaScript and would be great engineers who anyone would be lucky to hire and shouldn’t be scared at all but also needed to hustle like crazy if we wanted to make it.

They also included lectures on what I’d call “critically useful programming life skills” like how to debug effectively, how to build up keyboard shortcuts and why you should focus on typing productivity, etc. They brought in guest lecturers like former students (A memorable one was from a student who’d gotten a job for a porn website and gave a very interesting talk about the unique technical challenges porn companies have and, shockingly, why they have such a hard time hiring) and non-bootcamp-affiliated big-name engineers in the industry like Laurie Voss and Dan Abramov.

Every week there was a test, and if you didn’t do well, you’d have to work with Tech Mentors until you did, and at the end of the first six weeks was a big evaluation. Everyone from my cohort made it, but that wasn’t always true, and if you failed they could cut you from the program. If that happened, the story is you’d get half your money back, and I’ve heard that later they started letting people repeat the first half without paying again.

The second half

The last six weeks were half working on a group project for resumes and half preparing for the interview process. At the time this ratio seemed absurd and in retrospect it was absolutely necessary. We prepared our resumes (lesson: don’t include anything that doesn’t strengthen your candidacy), learned techniques for passing technical screens, and practiced interviews incessantly. Then, after graduation, we were sent off to start the job hunt.

The job application approach HR took was… unusual, but was definitely the right tactic here: apply to as many jobs as possible (seriously). The goal was ten a day, and they meant it4: Marlene, my favorite job coach, personally hunted me down every single day to make sure I’d done it, and she would yell at me if I hadn’t. She and the other job coaches also personally went over every single line of your resume and knew exactly where in the pipeline you were for every job you’d gotten a response from. Marlene not only helped me negotiate but literally wrote texts for me to the recruiters I was too intimidated to go up against myself. Seeing hundreds of students go through the program meant they were keyed into the market and had excellent insider information: they knew which companies were bootcamp-friendly, what kinds of offers other students had gotten where, city salary comparisons, you name it. The job coaches were worth their weight in gold and were at least as responsible for the success of the students as the teachers, Tech Mentors, and HIRs were. The other main services they provided were therapy, cheerleading, and cultural guidance for those of us going through the shock of being offered more than 3x our former salaries, which at that point isn’t just a salary change, but often a class and cultural change as well. Sadly, I’ve heard anecdotally that the job coaching isn’t nearly as strong anymore.

The job hunt: how many people got jobs?

If I remember correctly, all but four students in my cohort had full-time software engineering job offers within three months of graduating. It’s kind of hard to overstate how impressive this is, given the level of experience we’d come in with. Most stayed in a Bay Area, and a few went to LA/Seattle/New York. The distribution was mostly small companies you haven’t heard of with some FAANG sprinkled in. Sort of counter-intuitively, FAANG was more ok with bootcamp grads at that time than most other companies. My impression was that this was because they had a lot more faith in their interviewing, onboarding, and internal training processes, and so figured if you could make it through the interview, you’d be ok - and at their scale, if not, it wouldn’t affect them much. This was as opposed to mid-size companies and some startups, who didn’t feel they could afford to take the onboarding/training hit of a risky bootcamp hire.

I decided to stay on at HR as a TA for three more months, meaning instead of job hunting around Thanksgiving of 2015, I worked for HR helping students in the next cohort and getting paid part-time to improve internal tools (which were supposedly good resume-boosters), and job hunted in early 2016 instead. I applied to a ton of jobs, did three onsites, and got three offers for full-stack software engineering positions (one from Pivotal Labs, one from Mavenlink, and one from Google), all within three weeks. I had a terrible Google interviewing experience and didn’t want to work with the people I’d met there, so I picked Mavenlink because a friend who’d also been a TA one cohort ahead of me had a job there, and he recruited me.

Post-bootcamp: was I prepared?

Yes, but not in the way you’d think. Going in, I thought I’d come out trained as a software engineer. In reality, I came out ready to pass interviews for software engineering, with just enough experience to be roughly comparable to a typical new grad, but with fairly different focuses: I hadn’t taken classes on OSes or compilers, but I did know about TDD and git. HR prepared us well for this by emphasizing our rate of learning more than what we already knew - they beat into our heads that if we were willing to learn anything, and could pick it up quickly, that would count for a lot more than knowing everything on the way in, and they were right.

Should you go to a bootcamp?

Here’s the part where I stop telling you what happened to me and things get more speculative and advice-y. Major caveat, again, is that things have changed a lot in the past seven years, so please do your research and talk to more recent grads when making your decision. I’m assuming that you would be attending the bootcamp for the sole purpose of getting a software engineering job (not just for the joy of learning; there are much cheaper ways to scratch that itch). With that in mind, my general advice is: if you want to do a bootcamp, you should know that they’re going let in students who cannot actually complete the program, so you need to hold yourself to a higher standard than what they’ll hold you to. This is because bootcamps are for-profit companies with some misaligned incentives, so despite me having a fantastic experience with skilled, dedicated, and passionate staff, you would do well to take anything bootcamps say with a hefty grain of salt.

Reporting shenanigans

In 2015, there were a bunch of “industry reports” that compared all of the bootcamps against each other, and most of the bootcamps reported numbers like “X% of students get a job with average salary $Y within Z months of graduating.” On its face this sounds straightforward, but there are lots of ways to game the stats, which I heard of lots of bootcamps doing, including:

  • hiring their worst students back as TAs and counting those as full-time hires (HR hired the stronger students, and didn’t count being an HIR as employment; your subsequent job hunt got rolled into the stats of the cohort that graduated at the time you finished your HIR stint)
  • using internships, apprenticeships, QA jobs, part-time/limited length contracts, or other things that most people wouldn’t deem “full time employment as a software engineer” as successes for stats (as far as I know, HR did not do any of those things)
  • kicking out failing students during the program, then making the stats about graduates rather than about students (HR did kick people out partway through who weren’t doing well; I vaguely remember this being partially justified by making it about the reputation of HR grads. If I thought recruiters cared about the difference between bootcamps, this would have mattered, but as I’ll get into later, they don’t, so it did not. IMO this was pretty clearly a stats-boosting / money-grabbing one-two punch.)

Admissions shenanigans

As an HIR, one of my duties was to give interviews for incoming applicants to HR. Over time, my impression was that they wanted that interview to get easier, and they wanted to find ways for students who’d failed to be able to attend. This was pitched as a noble attempt to bring programming even more to the masses and open doors for folks who didn’t have a lot of opportunities, but the cynical part of my brain has a hard time reading it as anything other than “they really wanted to boost enrollment even if it meant churning out lower-quality graduates or kicking the really bad ones out partway through with only a partial refund, because the business model wasn’t actually very sustainable and they were hemmhoraging money.”5 Other bootcamps like AppAcademy had pricing models that tried to address this, like only paying once you got a job, but at the time most bootcamps worked like HR, and still do.

Another program they started rolling out was “Fulcrum”, a pre-bootcamp course that provided much more hands-on guidance through the prework and was designed to take people from literally nothing to “ready to interview successfully for HR” (it cost a pretty chunk of change that I think got credited toward the normal tuition if you got in) instead of asking students to do it themselves. The intent was admirable, but the effect was that there were more students who made it through admissions but then really struggled in the main program because it turns out learning that much information in such a short amount of time is very hard, and forcing people to learn a decent amount on their own was a good proxy for whether they’d be able to handle the pace. There were other programs designed to make the work a bit easier or less disruptive, like the remote cohorts, the spread-out-over-six-months-or-a-year cohorts, etc, that I suspect were more likely to be successful at helping a wider range of folks do well, but I have no personal experience with them so I can’t comment definitively.

External market conditions affecting bootcamp grads

Consolidations: The bootcamp industry looks a lot different today than it did in 2015. There was a big round of mergers and acquisitions (Hack Reactor got bought by Galvanize), and a lot of them shut down. New ones have popped up aimed at not just webdev, but also data science, ML/AI, and a variety of other specialty tracks. I have no idea if these new tracks and new bootcamps are good or not.

Market changes: In 2015, the narrative was that VC cash was flowing, lots of stupid startups were being funded, and all of them desperately needed software engineers. This was good for bootcamps, and meant a lot of people got hired and got experience even if they were building dumb stuff. Now the narrative is that the market has tightened up and the biggest demand is for senior engineers, not entry-level, which are now dime-a-dozen; bootcampers effectively compete with new grads, and there are more of both now than there were in 2015. In an odd way, this means bootcamps are somewhat victims of their own success, made more difficult by…

Reputation challenges: In 2015, the risk of hiring a bootcamp grad was mostly that bootcamp grads were unknown and people didn’t trust the idea of them or know if they’d do well. There were enough willing to take the risk, though, that most people did ok. Now, though, it seems like the industry has generally come to a consensus that bootcamp grads are ok but not great with a large standard deviation, and that it’s often not worth the effort. Many companies won’t even interview bootcamp grads unless they’ve had a year or two of real experience first.

Part of the issue here is that there really is a wide range in the quality of bootcamps. However, unlike universities, which have name recognition by recruiters everywhere, almost no one in recruiting knows or cares to distinguish between any of the bootcamps. This means that someone coming out of a good bootcamp will be lumped in with all the other bootcamp grads, which is bad news for you if the recruiter or hiring manager has ever had a bad bootcamp hire, or even just low bootcamp phone screen pass rates. (An interesting question I’ve thought about is whether it’d be a competitive advantage for a recruiter to build a solid model of which bootcamps are worth recruiting from and which aren’t. My tentative answer is that it’s probably not worth it at low enough interview volumes because there’s enough variance within bootcamps that the variance between bootcamps probably doesn’t show up robustly unless you’re doing hundreds of interviews a week like at FAANG.)

Conclusions

Despite all of the above, I’d still say bootcamps have overall been successful and provide a real and meaningful path to entering a lucrative, interesting, challenging, and frankly bougie-as-hell field that used to be mostly closed off if you didn’t have a CS degree, and that is a Very Good Thing.

However, anecdotally, that success has paradoxically affected the culture within the bootcamps for the worse: a friend of mine who was involved with bootcamps more recently than me said that students coming in think their success is a done deal, do only the minimum required work, and then are shocked when they struggle to find jobs. This combined with the easier admissions processes leads me to give inquiring minds the following advice:

  1. If you want to do a bootcamp, do it! Just know they are not all made equal; do your research and find whichever one has the best outcomes you can verify. Talk to recent students, and not just the ones the bootcamps put you in touch with, which will always be the happiest and most successful ones.
  2. When you talk to former students, ask them how their bootcamp calculated whatever stats are splashed on their marketing page - what counts as being hired? How long did it take? What methods did the school use to juice the stats?
  3. If you do decide to go, do not take or pay for any of the pre-prep courses: force yourself to get through it on your own, or with help/mentorship from a friend at most. Before applying, you should be able to do Eloquent JavaScript up to chapter 6, and as a rough estimate you should be able to teach yourself that within 3-6 months. This is because you need to set the foundation for figuring things out when they’re hard (debugging, improving your Google/StackOverflow skills, getting used to having things be broken literally all the time), and you need to see if you can do it fast enough to do well in the course itself. The bootcamps don’t have an incentive to tell you if you can’t make it (quite the opposite!) so you can’t trust them. If you do all of that and pass the admissions test, then go ahead!
  4. Work your ass off during the course. Do all of the extra credit/problems/assignments. Take the time to dig in and research things even when you don’t have to; it’ll pay off immensely in the end.

Good luck!

Thanks to Rory Sametz and Beth Johnson for reading drafts of this post and providing feedback.

  1. That industry was Art Conservation, a field so niche most people haven’t heard of it, and so small that the entire industry in Northern America and Europe uses a single job board in the form of a list serve from the late 80s (libraries adopted technology quickly!) that posts about three jobs every week or so. Deaths and retirements cause job opening cascades you could map out with string on a not-very-large corkboard. The people in the field are lovely and the work is a fascinating combination of dexterity and hand skills, chemistry, art, and history, but it’s hard to recommend it for a career when most of my older coworkers were warning me away from it “if there was anything else I could see myself doing”. 

  2. Bootcamps were and are expensive. I believe my tuition was somewhere around $18,000. I didn’t have that kind of money, so I took out a loan from Upstart (a fintech startup that gives loans based on things like GPA and SAT scores instead of credit scores, which was great for me because I didn’t have a credit card until after college, so I didn’t have any credit), and was lucky enough to get help from my family for covering living expenses for the bootcamp’s duration. Obviously, this was a blessing and a privilege many people don’t have, and I’m very grateful. 

  3. This set HR apart from the other bootcamps at the time, who were mostly teaching JavaScript and Ruby to target Rails jobs post-bootcamp, with a few using Python backends as well. HR’s philosophy was that JS was the future. I think it was easier to teach one language rather than two, and made it easier for students to market themselves as “JavaScript experts” - a framing we were explicitly encouraged to use in our resumes and interview language. They also presciently realized Rails was mostly on its way out, with many more things on the way in (Node, Python, Go, Rust, etc), meaning Rails didn’t get replaced by one thing, but by many things, so there wasn’t another more obvious choice. 

  4. I wouldn’t recommend the approach to anyone with even a year’s engineering experience: by that point, you’ll have actual work on your resume and can afford to be a lot pickier. But HR knew that the odds were against us since we had no degree and no experience, and optimized correctly to compensate for that. This approach would also work for new grad engineers who didn’t go to brand-name schools, since they have a hard time as well. 

  5. Back-of-the-napkin math: $18,000 * 80 students every cycle = $1,440,000 coming in every six weeks, which had to pay for: rent across three floors of a building right by Powell station on Market street in SF and the salaries of two instructors, a few curriculum developers, 4 Tech Mentors, 10? 20? HIRs, a cohort leader, two main job coaches plus a bunch of job coach assistants, an army of “Space Ops” folks who orchestrated all of the building management / IT stuff, admin staff, and probably more I’m forgetting. I doubt they were breaking even, but I honestly have no idea.