Should You Go to a Coding Bootcamp?
January 20, 2020
A family memeber of mine was recently considering attending a bootcamp. This event had me thinking about the question of whether or not bootcamp is the right move for a person. From time to time, people will ask me about my experience in bootcamp and whether or not they should go. The following is a summary of the types of questions I usually ask and think about. They’re also topics I either explored or wish I’d known before going, so they’re colored by my experience.
I’m writing with the assumption that the person in question wants to eventually secure a job as a web developer or software engineer. If that’s not you, I think the ideas I mention are still relevant. Even if you’re considering self-teaching, it can be helpful to take some time to consider your experience and motivations.
You don’t have to do these before enrolling in a bootcamp. I know people that have been successful bootcamp students and developers without completing the following items. That said, I think doing the items below would give you a much better idea of whether or not bootcamp is the right call.
1. Try Coding
This almost goes without saying, but have you tried coding? If not, can you be sure that you would enjoy a career in which your primary responsiblity is writing and maintaining code?
The good news is that there are a proliferation of resources that can get you started. There’s freeCodeCamp and Codecademy and Udemy and The Odin Project among many others. My personal recommendation is freeCodeCamp, but the most important thing is simply getting started.
2. Like Coding
If you tried coding with one of the above resources did you like it? If you didn’t enjoy it, are you sure your experience is representative of what it would be like to code for a living? If so, are you disappionted by not enjoying coding?
If you answers to all three of those questions is yes, then you may want to consider if your core motivation is one of the less compelling incentives in the next section. If so, that’s perfectly fine. But if that’s the case I probably wouldn’t go to bootcamp and would instead work through your motivations.
3. Have a Capacity for Enduring Pain
Are you a person that has a history of quitting when the going gets tough? (I’ll admit I ask this from a somewhat hypocritical stance. I had a bad flaky streak for most of my life starting with youth soccer. That said, I think I’ve become more thoughtful with my commitments.) This is perhaps the most important question you can ask before going to a bootcamp.
How do you typically deal with rejection and failure? Computers are the ultimate nitpickers: if even one semicolon is out of place, your code will fail and you’ll be left trying to figure out where you went wrong. It’s the digital equivalent of searching for a needle in a haystack.
Ideally, this is something you’ve already experienced if you’ve tried coding. If not, does this kind of day-to-day sound like something you could learn to enjoy, or at least persist through? If not, I would take a hard look at whether or not to proceed with a bootcamp.
Mediocre Reasons for Going to Bootcamp
This may be slightly controversial, but I don’t think the dream of a future big salary is good motivation on its own for going to a coding bootcamp. Notice I said on it’s own. I think this is a fine secondary motivation when paired with other drives such as wanting in-demand skills, enjoying making products or wanting to bring your ideas to life. In my opinion it doesn’t make sense to go through the grind of acquiring coding skills if you don’t actually like to code or don’t have any other motivation for doing so.
There are going to be many long, hard, frustrating hours between now and when you secure a developer job. Sure, a dev salary could be a huge step up from where you are right now. But I believe that it’s crucial to enjoy the actual work as well, and not see gaining the skills only as a means to an end.
Have you been influenced by movies like The Social Network or our culture’s semi-worship of tech and startups? Do you think it’ll be wearing a hoodie, eating catered lunch, and punching a few keys before collecting a huge paycheck and clocking out for the day?
As mentioned above, learning to code is hard. Coding professionally is also hard. It eventually gets easier, but it’s still challenging. Deciding to go to a bootcamp because you think it’ll lead to a life of ease is fairly misguided. True, there are some real benefits. But I would meditate deeply on the sacrifice that succeeding in the field will take.
Compelling Reasons for Going to Bootcamp
Bootcamp provides structure, both in terms of time and curriculum. It’s possible to solve the curriculum piece on your own (on freeCodeCamp or using a roadmap), but time is another matter. Having enough savings to go all-in on a 3 month (or longer) program is a luxury, but having all your time free to focus on aquiring skills is a big advantage. It’s possible to do it on your own, but if you’re not completely confident in your willpower to spend the majority of your spare time programming, then a bootcamp can help with providing that accountability.
You don’t know what you don’t know. This especially goes for coding. Having a teacher whose sole responsibility is to impart their wisdom is beyond valuable. There are so many bits and pieces that I feel would have taken me much longer to grasp on my own (that you typically don’t have to deal with in something like freeCodeCamp): command line, node_modules, specifics of frameworks, etc. This is one of the main value-adds of a formal program.
Though there are many online communities of people learning to code, I think there’s something to be said for connecting with a group of people in person who are approaching the task in a focused way. This kind of heads-down intensity can be motivating and beneficial—I ended up learning a lot from my bootcamp classmates.
In addition, many people find that their classmates form the beginning of their network in the tech industry. I’ve known several people that have been connected to future jobs via classmates. Also, it’s helpful to have people to encourage you when things get difficult. This is a benefit that’s harder to come by solo.
4. Career Services + Employer Network
I got an internship, contract work, and my first two full-time jobs via connections from my bootcamp. This experience isn’t universal, but it can be a huge benefit if you pick a program that excels in this area.
If you’re sure that you want to go all-in on learning to code and getting a job, doing a bootcamp can be an excellent boat-burning exercise. Especially for those that take a loan in order to attend a program (like I did) the hightened stakes can provide further motivation to commit and push through the hard times. If you want to speed up your time-to-job, a bootcamp can be really helpful in that regard.
Alternatives to Bootcamp
A lot of people without CS degrees or any formal training get developer jobs. The best online resource I know that catalogues these stories is No CS Degree. The Q&A there will show you that there are many different ways to become a developer. On that note, here are a few alternatives to a formal program.
1. Self Teaching
Many people self-teach and end up getting jobs. Take Ben, who taught himself to code while on a naval ship. Or Tae’lur Alexis. Or Marc Kohlbrugge.
This path is not for the faint of heart, and it will probably take longer this way than dropping everything for a full-time program. The major benefit is that along the way you’ll develop the self-teaching and problem solving skills that are necessary for a successful development career. And you’ll build self reliance, which builds confidence, which is maybe the most important element of success in the field. I think bootcamp was the right call for me, but I wish I’d more strongly considered this route.
2. Learning on the Job
I recently heard a story about a guy at a local pharmaceutical company who taught himself to code and made an internal tool using MySQL and Python to help his team manage their processes and data. This person was able to make his full-time job devleoping and maintaining the tool. He then used his skills to get a job at a software company.
To me, this is an ideal path. Learning on the job has the twofold benefit of getting the skills you need while getting paid. Typically you have to choose one or the other. So, are there developers at your company? If so, can you start to hang out with them? Ask them questions! Making an internal transfer at your current company may be easier than hitting the job market cold.