Cracking the Coding Bootcamp: How to Succeed After the Hurricane
Now that I’ve been in the tech industry for a few years since completing the Code Fellows program, I’m often asked for advice by others who want to take a similar path. Many people said my ideas were helpful, so I wanted to share them with a wider audience.
This article specifically covers looking for a job after completing an advanced-level bootcamp.
A Bit About Me
Before starting Code Fellows’ Python course, I had no prior professional coding experience, but had taken a few Python classes online where I built some basic web apps. I moved to Seattle from Philadelphia just a day before the class was set to begin, so I came in without any knowledge of the Seattle job market. A lot of successful alumni I know have a similar story, so I can say with confidence that if you made it through a bootcamp, and you’re willing to put in a similar amount of time and effort afterwards, you’ll find success in this tech market.
Arrange Your Priorities
Once you’ve finished the bootcamp, it’s time to start looking for a job. But you may feel uncomfortable putting Software Developer at the top of your resume (note: you shouldn’t). Not only did you just learn an ocean of information, but now you have some solid projects on your GitHub and know the latest technology and best practices of your stack.
To successfully land a job, there are many tasks ahead:
- The dreaded technical interview
- Mastering the skills you just learned in class
- Shoring up your fledgling professional network
- Continuing to learn and grow as a software developer
The number of must-do priorities can quickly feel overwhelming. The most important thing is to make sure you are making progress every day in at least one of these areas. The worst thing you can do is to try everything at once, but accomplish nothing. With that said, I found it helpful to limit myself to three areas of focus. Here are the three tasks I focused on and how I prioritized them:
1. Figure out what kind of job you want and practice the skills you need to get it.
In my experience, this is the most important thing to get right. Consider the type of job your education prepared you for, and at minimum be fluent in the skills that job requires. This sounds simple, but I’ve seen a ton of people miss it!
For me, the Python course at Code Fellows aimed at fluency in the art of building web applications with Python. The curriculum included other subjects, like machine learning and data science, but I found companies were much more keen to hire junior developers with web app skills, so that is where I put my focus.
How do you become fluent? A portfolio filled with web apps written from scratch is a must, and you should feel comfortable explaining how each line of code works. Now that I administer tech interviews, one of my biggest pet peeves is an engineer who can’t explain their code. You probably made a few apps during your bootcamp, and that’s a great start. Consider spending a week honing your skills by writing a new app from scratch. If you’re switching careers like I did, keep in mind that when a hiring manager looks at your resume, they’re looking for a solid junior engineer who can grow. It doesn’t matter if your portfolio apps are new or unique. What matters is your execution and your understanding of the code and the architecture.
Also important: use coding best practices, even if they slow you down. Take the time to work through new concepts until you understand them completely. In an interview, being able to explain a handful of very technical topics is much better than half knowing everything. Keep your GitHub up to date and, if possible, keep your projects deployed, functioning, and publicly accessible. Heroku is fine, but if you have an interest in DevOps, try to understand how to deploy a web app using tools like Ansible, Docker, or another tool you want to learn.
2. Improve your whiteboard skills.
This is probably the thing that stresses bootcamp grads out the most. I hadn’t seen algorithms or data structures at all before Code Fellows, and I hardly felt confident in those skills afterwards (and my teachers were fantastic—it’s simply hard stuff!). Some people spend their entire career focusing on algorithms, but as a recent grad, your priority is getting up to speed fast.
I found that you should spend, at minimum, one hour per day working through whiteboard problems. Since it generally takes at least a few weeks to get your first interview, those hours will add up. A good way to practice is to choose an online code judge that offers hundreds of problems, and work through a couple each day.
I recommend Codewars (free) and LeetCode (paid), both of which have great communities. Completing a few hundred of these practice problems made me a much better coder, and you’ll get even better after reading through other user solutions (I still learn something new every time I sign on).
In addition to using an online judge, you should pick up a copy of Cracking the Coding Interview and at least familiarize yourself with most of the chapters. Everyone in the tech world knows this book, and a lot of interview questions either come from it directly or are variations of the questions inside. The book’s examples are in Java, but the author maintains a GitHub repo with implementations in many languages.
Once you have secured an interview, prioritize whiteboarding for a few days (and I mean physically writing solutions on a whiteboard). If possible, getting help from a practice partner or mock interviewer is even better! Your bootcamp may offer this as a service to alumni, but there are also online mock interviewers you can try.
If you really can’t fit whiteboarding in, at minimum make sure you understand the commonly used data structures in your language of choice—specifically, when to use one data structure over another and the Big(O) space and time consequences of those decisions.
3. Expand your professional network.
Finally, you need to actively expand and maintain your professional network. I’d recommend spending 2-3 hours on this per day. Here are a few strategies I employed:
Attend hackathons. I found this to be incredibly useful. As someone who fails at meetups, hackathons were a much more effective networking tool. Why? Because you closely work with a small team for two days. After that, your network will suddenly gain three to four people who can directly vouch for your skills. And you may even make a few friends!
Check out the monthly Hacker News hiring thread. You’ll see the exact skills companies are looking for, and I found that directly emailing people in the thread yielded a reply more often than not.
Cold message people on LinkedIn. This may feel uncomfortable at first, but this is how I got the lead for my first job. LinkedIn has a paid option that lets you message a finite number of out-of-network members each month. Take advantage of this! Search for the job you want and you’ll likely find a few recruiters looking for people like you.
Keep up with bootcamp alumni. This is one of the most important things you can do. At my first job at OfferUp, we hired a number of Code Fellows graduates, most of whom were referred by another graduate. This isn’t uncommon at all. I found it helps to continue working at your bootcamp’s space if possible, and organize ways to keep in touch with your fellow alumni.
Talk to recruiters. I was lucky enough to get coffee with a number of great recruiters in Seattle, and their help was invaluable. Even if they don’t have any directly useful leads, it is a recruiter’s job to have a great network, so they can likely point you to a senior engineer in your field, or other professional contacts who can expand your network. I found that people generally want to help junior engineers, and it never hurts to ask.
That is how I spent my post-grad time before starting at OfferUp, and these techniques led to a number of interviews before I was hired. And that is what I want to end with: interviewing is a numbers game. No matter how awesome your engineering skills are, there are many factors out of your control. The only thing you can do is trust the process and recognize that you’re getting better. The more you interview, the better you will get at interviewing. If you keep at it, the odds eventually will fall in your favor. :D