Should I Do A Coding Bootcamp?
In the last couple of months I've had a lot of friends ask me about my coding bootcamp experience, and whether they should enroll in one. It's a big question, and I want this post to be the best catch-all answer I can give. Spoiler: there is no "Yes" or "No" answer to that question here, but instead a set of considerations that may help you answer that question for yourself. If you're in a rush, you can skip to the TL;DR section, but I hope you'll read on.
I've been a professional web developer for over four years now. In 2016 I attended a coding bootcamp, and then landed my first developer job within a month of graduation. My initial salary offer was more than double anything I made elsewhere. My work-life balance improved dramatically, and my job became something I loved going to every day. The coding bootcamp was a big part of that.
So whether you're one of those friends asking me about bootcamps and I've sent you here (please don't be annoyed with me!!) or you've somehow otherwise stumbled on my blog while researching bootcamps, welcome!
This is a big topic, with lots of considerations. Everyone's story is a little bit different, and there are so many things that would contribute to being successful in a coding bootcamp and doing a career shift into tech or it being a big time- and money-sink. I want you to live the best life you can live, and hopefully some of the things I highlight can guide you to making the best decision for yourself.
The Appeal of Bootcamps
So why would you attend a bootcamp in the first place? In short, to get a better job. It's no secret that programming and web development are hot industries right now. Any look through a job board and you'll find a whirlwind of technologies and acronyms -- React, Node, Vue, Angular, AGILE, API, JSON, Git, GitHub, etc. The lists of oblique names are intimidating, but they're also attached to some really high salaries.
Other appealing aspects of tech jobs are stability and a perception of prestige. The tech giants invest heavily in their workforce. Apple and Facebook cater lunches and dinners to their employees. The offices are shiny and new, and ping pong tables and beer taps at every desk are stereotypes that indicate a culture of levity. All of that stuff can look like a candy coating on top of a stable 9-5 job.
Coding bootcamps seem to be an entry point into that world. By all appearances, toughing out a three- or six-month program is a way to short-circuit your way into the tech industry without having to get a Computer Science degree. Moreso, when you look at coding bootcamp curriculums, they basically mirror that list of technologies on all of those high paying job postings.
So is it worth it? Should you do a coding bootcamp?
Unfortunately, it depends. Let me take a step back and write about my experience and what led to the success I had. The opinions and experiences that follow are my own and may not be representative of other programmers' journeys or other bootcamp offerings.
Who I Was Going Into The Bootcamp
Before my bootcamp I was working an entry-level position at a start up in its later growth stages. After six years I was getting tired of that job but I saw no easy path forward or out. I did some work in that role developing new products and improving my team's workflows, but generally speaking my day to day was little more than data entry. While I had some exposure to technical things like Salesforce or using macros in the Microsoft Office Suite, there wasn't really a path for me to develop the kind of competitive skillset that would secure a better job or develop into a true career.
In the last year I was at that job, coding bootcamps started showing up everywhere. I saw ads for them online. One friend and bandmate worked in admissions at a bootcamp and saw firsthand her students' lives being transformed when they graduated and went onto work at hot, new startups or more established tech companies. Another friend enrolled in a bootcamp, then three months later graduated and secured a job in New York City with a six-figure starting salary. He soon hopped over to a different developer job in Paris. I was envious.
Bootcamp Application and Interview
Sometime around February 2016 I got an email from my alma mater, the University of Texas, that they were going to be starting up a bootcamp, and because I was an alumni, I would qualify for a tuition discount. I reached out to express my interest in the program, and was sent a very short quiz. The questions I remember were:
- Define
boolean
. - Explain the difference between
==
and===
in JavaScript. - How many web developers does Facebook have? Explain/justify your answer.
Having no true programming experience, I had to Google the answers to these. A few days after I submitted my response to the quiz, I was invited to a phone interview. In that interview I spoke to an admissions person about where I was professionally, what my work ethic was, and what interested me in learning to code. This interview concluded with a small logic puzzle. It was something like, "Every morning I make coffee, then add a spoonful of sugar to that coffee, then wash my sugar spoon. How do I eliminate the step where I have to wash my spoon?" Something like that. The answer was to change the order of operations, put the sugar into the cup before the coffee. Pretty easy stuff.
About a week later, I got an email saying my application to the bootcamp was accepted. I just had to pay my first tuition installment and I would be a part of the first cohort of the Coding Bootcamp at the University of Texas.
The Bootcamp Experience
Pre-Work
Not long after the application process ended, I was sent a series of videos to do various installations on my laptop. I don't know about other schools, but I had to do my classwork on my own machine. I had a Macbook Pro, but the same instructions were available for Windows. It was things like finding Terminal and doing some command line instructions, creating a GitHub account, setting up SSH keys, and pushing my very first repository, installing and working in Sublime Text, installing Node, NPM, and NVM. There was no explanation for what a lot of this stuff was, just the promise that the coursework would make it all clear later.
Then there were optional pre-work courses, like a short Introduction to Computer Science Principles on Coursera, or Shay Howe's Learn to Code HTML & CSS. Though this stuff wasn't required, I dove in head first and spent several evenings learning from these courses, soaking in as much as I was able to before the bootcamp formally started.
Classes, Pace, and Duration
The actual bootcamp classes started in earnest in March. This bootcamp was part-time, which meant that it took place a few weeknights and every Saturday for six months. There were two cohorts running simultaneously. The one I was in met up on Monday and Wednesday evenings, the other met on Tuesdays and Thursdays, and both came together for the Saturday class.
There were a few requirements to receive the certification at the end of the program:
- You must complete 90% of the homework assignments. (You can miss no more than 2 assignments.)
- Homework submissions must be on time AS-IS. Late submissions will not be counted.
- Attendance must be maintained at a 95% rate. (You can miss no more than a total of 4 classes.)
- Written permission must be obtained to miss class or it's considered one of your 4 absences.
- You must give a full effort on every group and individual project.
Curriculum
The course content assumed that the students had no knowledge of web development at all. The first few weeks went through basic HTML, CSS, and JavaScript. The Coursera and Shay Howe extra pre-work I did helped me gain a small leg up in these early weeks, but the lessons soon outpaced those fundamentals.
Frameworks were then added on top of the basics, so after teaching the foundations of HTML and CSS, we were introduced to Bootstrap. After plain JavaScript, we were taught jQuery. The whole time we were building little project websites and applying the things we were learning. These applications grew in complexity, from simple portfolio pages or a hangman game to weather forecasting websites built on real-world weather APIs.
We started working with databases by using Firebase. Then we started using JavaScript in the Node environment to write command line programs and backend environments, ultimately firing up an Express web server. We added Handlebars and React on top of that, then started learning SQL and Mongo databases.
All the while the homework continued. There was an assignment due pretty much every class. Then there were also three major group projects. These were collaborative efforts to benchmark our learning by building full websites or applications, with requirements like Persist your data using a SQL database, or Authenticate user logins, or simply Use a technology, framework, or library we have not taught in class.
It was an intense six months. Each week, and sometimes even each individual class, could easily be expanded into its own full course. I wish that there was some way they could have given us deeper dives into some topics, but I also found a lot of benefit in the quick and difficult exposure that this pace afforded.
Career Services
Another important component of the bootcamp experience was the Career Services aspect. After all, the main goal of the program was to help the students get a job. It's worthwhile to note that it is in the bootcamp's interest to help you land a job. The job placement rate, or the percentage of graduates that can land a job in the tech industry, is an extremely important metric to the bootcamps. After all, if they can claim that they place 80% or more of their graduates into those high salary jobs, that's a pretty strong selling point, right?
I was not overly impressed with the career services I was offered at my coding bootcamp. We got some coaching on resumes, portfolios, and LinkedIn profiles, did some mock interviews and practiced white board problems, but I didn't think it was adequate for what I would later face in the real world. Toward the end of the program they would set quotas for applications we had to send out. It was less of a quality experience and more of a numbers game.
Recruiters and managers were brought in from time to time from places like Condé Nast, Facebook, IBM, and Homeaway (now VRBO). These visitors would audit a class, talk to us about what hiring and working at their company was like, and sometimes sit in on demo days. I don't believe anyone out of my cohort was actually hired by any of the companies represented.
Final Demo Day
The end of the program culminated in a final demo day at IBM. Each student had a work space set up with a stack of resumes, and recruiters from a lot of tech companies (including many of the same people mentioned previously) came out and talked to us. We highlighted our best work out of our projects and homework, talked about the things we learned or struggled with, and answered questions that the attendees had. Business cards were exchanged, resumes given out, and some students were asked to schedule subsequent interviews. After that, we were on our way with certificates in hand. The bootcamp was over.
After the Bootcamp
Career Services continued for a short time after the bootcamp ended. I applied to several dozen places, landed interviews at a handful, and got a job offer at one company, where I am still working at the time of writing this post. I was very lucky, this process only took me a couple of months. Some students in my cohort wouldn't secure jobs for closer to or more than a year. Others never wound up with developer jobs.
I won't write too much about what my developer job is like, as that could be its own entire blog post, but I'll say that my learning did not stop when the bootcamp ended. I had to pick up an entirely new web technology stack. Some things about JavaScript and CSS that were not covered by the coursework (or that didn't even exist at the time I was in class) had to be learned on my own. Being a developer means continually learning. I highlight these things to make the point that graduating the bootcamp and securing that first developer job are not finish lines, and instead are the start of something wholly new.
So...Should I Do A Coding Bootcamp?
I still can't answer that question for you. The positives and negatives detailed above are drawn only from my own experience, and perhaps some of the negatives have been improved in the subsequent years. That's beside the point though.
In short, you get out of a bootcamp what you put into it. If you can work hard and focus your efforts on learning some very difficult things, you will go far. But a bootcamp won't teach that hard work. Coasting by in a bootcamp just to earn that certificate won't land you a job either.
Programming is a highly competitive trade skill, and it takes a lot of hard work to mount that steep learning curve. I truly think that the thing that lands developers their first job is a demonstration that they can take a disciplined approach to learning really difficult things. Specific technologies, stacks, and workflows can be taught, and will be different for every company a developer might work at. They won't be hiring junior developers just for the technical skills. Instead, they're going to hire someone who has demonstrated they have discipline, that they can try new and difficult things, and that they can learn and be coached along the way.
Completing a bootcamp is one way of demonstrating that discipline, but it's not the only way to pick up that technical skillset. In fact, I think that you could learn and expose yourself to all of the technologies I learned in my bootcamp in other places online, like Udemy, YouTube, and other course platforms, for much cheaper, if not for free. Freecodecamp.org is an awesome place to start, and lots of people who make this career switch start the transition there. It seems to have a good curriculum path, which is one of the things I loved about the bootcamp.
Unfortunately, if you decide to learn things independently then it's all on you. I know that I benefit from accountability, and I got that in the bootcamp. On my own I probably would have given up after a couple of weeks, or gotten so caught up on one part of learning JavaScript that I would never move on. Being in the bootcamp kept me moving and learning new things. Having other students, TAs, and the teachers also provided accountability and mentorship. There were people around me that I could ask for help or show off my successes. Currently because of the pandemic all of the bootcamps are being done remotely, and I'm sure some will continue a remote configuration going forward after the pandemic, so maybe this aspect won't be as relevant.
TL;DR: The Good and Bad of Bootcamps
Here are the good and bad parts of bootcamps to help weigh your decision.
Bootcamps: The Good
- Curriculum. These programs will have a refined lesson plan as well as teachers and TAs who know how to guide you through it.
- Accountability and mentorship. Your teachers, TAs, and fellow students will help keep you accountable, and offer assistance if you get stuck on something.
- Exposure to new things.
- Even if you get really stuck on one thing, the bootcamp will keep giving you new things to learn.
- For example, maybe jQuery isn't your thing, but the next week you might be introduced to databases and that clicks more naturally.
- The bootcamp keeps you moving, and even if it feels like you struggle with stuff, your brain is absorbing it more than you think along the way.
- You build a portfolio of technical work.
- By constantly building, delivering, and deploying, you start to gain confidence in pushing live web code that can receive traffic.
- You walk away with a portfolio full of cool projects.
- When you interview, these projects will be what you talk about in lieu of "real live" work (note the quotes. Bootcamp work is real and very difficult). You'll be able to talk about learning x and y parts of the technology, struggling with z thing, and working toward a solution.
- You get practice in a low-stakes environment.
- Assignments, projects, and mock white board interviews will put you through the paces.
- You and everyone around you is thrown into the deep end to practice these difficult things.
- You make some awesome contacts. A bootcamp is difficult and transformative, and the students you work with will have firsthand experience working with you under pressure. These cohorts offer the foundation of professional relationships that can last for a very, very long time. Even now, four years later, I still keep in touch with my old cohort. We'll be references for one another, or help get each others' foots in the door, or send job openings along when someone loses or quits their job.
Bootcamps: The Bad
- Monetary cost. It's no surprise these programs are very expensive.
- Between Freecodecamp.org, YouTube, Udemy, private course platforms like Wes Bos and Level Up Tutorials, and much more, you can basically learn these technologies for free or much cheaper than you would in a bootcamp.
- If you go this route, you're accountable only to yourself to stick with it.
- Time cost. Aside from the tuition, it's not like my bills stopped. Doing the bootcamp part time (rather than immersive), I was able to work a part time job and scrape by between that and savings, but it was a tough six months. I was blessed to be able to do it in this manner, and I don't know how others in my cohort were able to also have a full-time job they were working.
- Expectations vs. reality.
- In truth, the bootcamp wasn't everything it might have seemed at the outset or what was promised.
- Even in spite of all of the hard work and career services, there is no guaranteed job placement.
- You probably won't get the kind of deep exposure to a framework like React that will land you a job at Facebook out of the gate, but that doesn't mean you won't find a place in a smaller company or agency. You'll work yourself up to the big companies later.
- It's not a replacement for a Computer Science Degree. There are computer science concepts that larger companies will expect their new hires to know and understand. Bootcamps generally do not teach these things to the depth that those companies are looking for (if they teach them at all).
- To this end, you don't need to be good at math or science to do well at programming, but it can help when you learn some of those CS fundamentals.
- At some point it's a good idea to learn the CS fundamentals anyway, since it will ultimately make you a better programmer.
- Better programmer can mean a higher salary.
- Stigma. It's unfortunate, there is some stigma against bootcamps in the industry. This goes hand in hand with the last point, but some companies feel that bootcamps churn out too many inexperienced developers that don't have a strong foundational understanding of the products they build. That might be true, but it might also be an opportunity to prove yourself to be the exception. Again, hard work pays off.
Bootcamp Options
Lastly it's worth noting that there are a bunch of different types of bootcamps. Some are full time or "immersive", which will happen 9:00 to 5:00, every day of the work week, typically for three months. Others (like the one I attended) are part time, which would be some combination of evening and weekend classes for six months. The thought here is that you could do this while still having a day job. The volume of work might still make such a thing unreasonable to you.
Some bootcamps break the experience up into several three month immersive chunks, each chunk focusing for example on frontend, or backend, or even just interviewing. There are also Design and UI/UX bootcamps, which focus on things like visuals, user stories, and user behavior. I can't really speak to what the experience with those programs is like.
Closing Thoughts
I hope the above was helpful for you. Looking back and knowing what I know now, I don't know if I would still choose to attend a bootcamp, but I did find great benefit in doing so when I did. It helped to dedicate myself fully to this career transition. But at the end of the day, I got out of it what I put into it. It was six months of very hard work and it's something I'm immensely proud of myself for accomplishing.
If you found this blog post helpful, or if anything was missing that you think might be beneficial to anyone reading and deciding to do a bootcamp themselves, please email me and I'll be glad to adjust this post (and give you a citation).