Coding bootcamps are so hot right now. They come in all shapes and sizes though, but this article is based off my time at Flatiron School’s Access Labs. It’s a 15 week, deferred tuition program, with a focus on React and Rails. Also, I was one of the lucky ones who walked into a job 2 days after graduation (keyword: lucky), which gives me just a hint of real world spice to flavor these opinions. Without further ado, here are some of my overall thoughts and impressions of the experience:
Learn the languages, but don’t get attached
This is easily the most important piece of advice I have. A coding bootcamp will throw a ton of code at you in a short period of time, and there is a temptation to focus on mastering the specific syntax. However, this is a trap. Before you drive yourself nuts worrying about memorizing anything, be sure you understand the overall concepts. Whenever you think about a problem, solve it in pseudo code first, then worry about attaching a specific syntax.
Why? Because there is a good chance you won’t be using one bit of that language at your job. Perfect example, I learned Rails, React, Router, and Redux at camp. My new job uses exactly none of that. But they still use core concepts like migrations, the MVC pattern, single source of truth, etc. Obviously, learn the syntax to the best of your ability, but know that you will likely not be using that exact stuff after graduation. Just a friendly reminder that around 70% of the web uses PHP, so you know, be flexible.
That being said, here are the useful languages
I feel like when I was researching bootcamps, I skipped any articles that didn’t have tech stuff. So here are the languages that I think you should know since they’re used pretty much everywhere:
And not just the new stuff. If you wind up at a company with a legacy codebase, you might not get all the fancy bells and whistles. Yes, async/await is a beautiful thing, but that doesn’t mean you shouldn’t understand how basic promises and .then() blocks work. I’ve already had to use both, and convert one to the other. You should understand things like object destructuring and what the prototypes are actually doing underneath the new class sugar. JS is a language used basically in every web project out there, so getting fluent is a safe bet.
Querying the database was the first thing I actually did at my job because they wanted me to get used to the new terrain. You should be able to make actual queries and not just rely on a GUI either. I know most frameworks have tools to abstract away this layer, but make sure you fully understand the foundations. There are many flavors of SQL, but if you understand the underlying core or relationships, you should be ok.
– Bash (or really, the command line in general)
Get comfortable in the command line because you will be in there a lot. You’ll be modifying your
.bash_profile and adding aliases when your getting your system all setup, and you’ll need to configure your environment variables to use keys. You will have so many things to worry about when you get started at a new job, you don’t want to be worrying about what a
| actually does. (that’s called a pipe, and it’s neat.)
Pretty much every team out there will use GitHub. So get used to it. You should understand what Git actually is, its basic flow, what branches are, what merge and rebase do, and be comfortable using Git from a terminal. I know it will feel silly taking Git so seriously when you’re on your own or in a small group, but that practice is crucial. Ideally, every 10–20 lines of code should be a commit. You want to build snapshots of your project’s evolution. Plus, employers really do look at your profile’s commit history, so you want it to be filled with green.
Ask specific questions
There may be no such thing as a dumb question, but there are inefficient ones. To get the most out of your time at camp, ask focused questions. Do some exploring on your own. Use debugging tools and logs to understand exactly where in the process your program is breaking, and what specific elements are behaving strangely. So don’t say, “Why isn’t my page working?” instead ask, “The nav bar on my page is rendering, but the To Do List component isn’t. In the main initial state, I set four items, but when I console log them out in the component, it shows undefined. Am I passing the props wrong?” Boom baby, now that’s a question. And always ask the internet before you ask a teacher. The error might be common and the fix could be the first link on Google.
TEST. YOUR. CODE. Don’t just learn how to read tests (although that is good), actually push yourself to write tests. Most testing frameworks are similar, so getting one will give you a nice foothold in the others. Like I said, try to understand the concepts, and just Google the syntax. The reason I emphasize this is because all production code must be tested before it gets deployed. If you’re at literally any decent company, you will need to write and work with tests. Stacks change, frameworks come and go, but unit testing is forever.
A deployed project beats a bunch of files every time
I think your camp should be project driven. Mainly because those projects will likely be the only things on your resume when you go for a job. So when picking projects, aim for things that you will be able to finish in the few days you are given. A deployed but small project is way better than code in a GitHub repo. If you wanna go all out, budget in time to write up a nice README file for your code as well (maybe throw in some testing if you’re one of those over achiever types).
Bootcamps probably shouldn’t be step one
I say that with a pretty large grain of salt because a few of my fellow classmates basically started programming with the bootcamp, but I also noticed their stress levels were way higher. I’d been putzing around with code for about a year before I started camp and I have to say it really helped. While I felt challenged, I had enough experience where I never felt overwhelmed or uncomfortably stressed. And since I wasn’t using the camp to learn the absolute basics, I could spend my time thinking about higher order concepts like the Single Responsibility Principle or experimenting with my Bash profile to increase my efficiency.
Don’t try to do EVERY homework assignment
I don’t know what other bootcamps do, but at ours we had labs almost every night for homework. A lot of labs for homework. And while it might be tempting to try to get 100% completion rates on the assignments you get, it probably isn’t the best use of your time. In the crunched time frame of a bootcamp, it’s often a better use a survey approach. I had best results when I would do a few of the homework assignments, look for the core concepts, and then research those on my own.
Remember, a bootcamp isn’t about grades, its about feeling confident that you learned the material. Do that however you feel is best for you.
Please don’t compare yourself to others
We are all different. We are all coming from different backgrounds. Everyone will come into the camp with drastically different experience levels. If you only have 3 weeks of experience, it is flat out dumb to compare your “intelligence” to someone who is taking the camp after getting a CS degree. They are not smarter than you, they just have more experience. But here’s the great thing about experience, anyone can get it if they just start practicing. Bob Ross has a great quote, and I thought about it a lot whenever I felt like I wasn’t good enough:
Talent is a pursued interest. Anything that you’re willing to practice, you can do.
A bootcamp was the right choice for me because time, not money, was the biggest factor in getting my new career going. But there are plenty of other ways to do it. I don’t want to send any mixed messages here: I loved my bootcamp and feel like it was just what the doctor ordered, but I fully understand that will not be the path for everyone. Bootcamps, even if the tuition is deferred, cost a ton of money. So if you can’t afford one, do not for one second think that means you can’t become a programmer. Someone giving 100% outside of a camp will always do better than someone dragging their heels to graduation. It’s not important what path you take, it’s just matters that you keep moving. Happy coding everyone, Mike
Bottom Line: think about it
A bootcamp was the right choice for me because time, not money, was the biggest factor in getting my new career going. But there are plenty of other ways to do it. I don’t want to send any mixed messages here: I loved my bootcamp and feel like it was just what the doctor ordered, but I fully understand that will not be the path for everyone.
Bootcamps, even if the tuition is deferred, cost a ton of money. So if you can’t afford one, do not for one second think that means you can’t become a programmer. Someone giving 100% outside of a camp will always do better than someone dragging their heels to graduation. It’s not important what path you take, it’s just matters that you keep moving.
Happy coding everyone,