Coding Boot Camp. Check. Now What?

Kim Burgaard
Nov 7 · 10 min read

I love that we live in a world where everybody has access to free and high-quality online training materials, and access to coding boot camps for people who want to make a career change, but aren’t able to commit the time and/or money required to complete a formal computer science education.

Software engineering hiring managers have begun to recognize people without a formal computer science education are a diverse and rich source of candidates who often bring many other valuable experiences and skills to the table — I know, because I am one of those hiring managers.

That said, I also think it is important for coding boot camp graduates to develop some perspective on what to expect the boot camp will do for their career. Yes, it’s intense and rigorous, and you get exposed to a variety of technologies and concepts. But realistically, 9 to 12 weeks of training can only be the beginning of a life-long journey of learning and growing.

Coding boot camps typically introduce students to a variety of technologies centered around a technology stack like MERN (MongoDB, Express, React, Node). After some general introduction to programming languages and concepts, students are typically given group project assignments that either mimic existing web applications, or create web applications for small businesses and non-profits.

Perspective

Consider this, there are a lot of people who can and will commit a couple of months to learn something new, and given the popularity and explosion of coding boot camp options, the number of boot camp graduates is swelling. Course Report estimated more than 20,000 in 2018.

At the same time, the number of computer science graduates is also rapidly increasing. Code.org estimated almost 50,000 newlygrads in the US in 2015 with a growth that is clearly accelerating year over year.

In other words, you’re facing a lot of competition. As if that wasn't enough, a lot of employers are not well equipped to take in new hires that require extensive training, coaching and mentoring to become productive.

But don’t despair, let’s analyze the problem and engineer some solutions with steps you can take to get ahead.

Role Definitions

Everything that follows hinges on the notion that there is work that is defined by carrying out finely detailed tasks, and work that is defined by solving more abstract problems and engineering solutions. Those definitions are based on my personal experiences working in companies ranging from small startups to corporations with tens of thousands of employees.

A programmer writes code. A good programmer applies best practices for the programming language, frameworks and libraries utilized, and is diligent about writing code that is clear to understand, well tested and meets the requirements.

Programmers understand how to implement a solution.

A programming task might look like this: Implement an input form using React and submit the form data to a RESTful endpoint. You would be responding by writing JavaScript code that results in one or more React components running in a web application.

A software engineer solves problems and engineers solutions. Frequently that involves writing code, but that is usually the last step of a series of more abstract activities like analyzing the problem at hand, deciding on the the best approach, and weighing priorities like urgency, effort, cost, scalability, and maintainability.

Software engineers understand why a certain approach and strategy is better than another at solving a problem.

A software engineering task might look like this: Our product manager Mona has determined we need a survey form, and our product designer Dominic has come up with a UI. I’ll ask you to discuss the requirements with Mona, and have Dominic walk you through the spec.

If the team already has a technology stack in place, I would expect you to consider the effort and impact of implementing the survey form by adding new tables, endpoints and UI components using that stack. But I’d also expect you to consider if there are 3rd party solutions available that does everything we need. That could be embedding a form completely managed by someone else for a small monthly fee, or an NPM package that implements all the core functionality and fits all the requirements we have. Writing code isn’t always the best solution. Sticking with the existing tech stack isn’t always the best solution. On the flip-side, outsourcing critical functionality to a 3rd party isn’t always the best solution either.

Advice for Coding Boot Camp Graduates

You are hungry and eager to land that first job, but rejection is tough. Sending job applications to anything and everything you find might feel like meaningful progress, but there’s an opportunity cost — every minute you spend sending emails and filling out forms without considering role fit is time and effort that is likely wasted. At best you’ll get a polite canned rejection, at worst you just get crickets.

Manage your effort by considering the potential of each job opening: what’s the role fit, and what’s the likelyhood of the company to set me up for success? They are not easy questions to answer in general, but there are definitely jobs and companies where the answer is clearly a resounding no.

You can’t make employers give you a job, but you can take steps that will make you more likely to succeed. The technologies and languages you learned in the boot camp are a great start, but they are just tools in an area where there are many other tools to pick from, and with a few months of exposure, you’ve just begun to scratch the surface.

In my experience, coding boot camp newly-grads often do well on how, but frequently struggle with why. If the only experience you can draw on is the boot camp, then you’re more likely to get that first job by going after programming opportunities.

Here are some examples of different job opportunities:

Lone Wolf

Job opportunities where you will be the only developer, and you will be reporting to a manager that has no experience with software development. This is a sink or swim environment — either you figure out how to function as your own product manager and become productive as a software engineer by intuition and luck, or you fail.

This is not a programming opportunity, because there are no one to help break down business needs into requirements and tasks that you can tackle as a programmer, no one to coach you, and no one to bounce ideas off inside the company. You will probably fail a lot, but if you make it, and turn each failure into a lesson learned, those experiences will be seared in to your mind, and you will likely have accelerated your personal development and growth many fold.

If you think this is your only or best chance, by all means, go for it.

Many years ago I was the sole programmer in a company whose primary business was reselling 3rd party software to other companies. Some of their customers occasionally asked for help with miscellaneous software development needs too. Seeing a business opportunity, the company hired me as a part time developer while I was still in school. Soon after I started, a small book publishing company asked if we could implement an online bookstore for them. This was way back when Amazon had just begun selling books online. I dove right in, worked crazy long hours, and hired a friend to help me. My living room was our office, and we spent many long days and nights trying to meet unrealistic goals and deadlines. I made a ton of mistakes and bad design decisions along the way, but we quickly iterated and came out with a better version each time. I learned so much from this, but it was incredibly tough, there were plenty of moments where my luck could have run out, and I would’ve been taken off the project for sure if things had turned out slightly differently.

Small to medium sized business and non-technical early-stage startups are more likely to be in this camp.

Small Cog in a Big Machine

Job opportunities where the employer has technical managers and technical leadership roles, and advertises junior positions that emphasize programming. Organizations like these are more likely to break down work into programming tasks.

This might not seem like a very attractive option, but it’s probably the category that has the most job openings, and there’s a lot of really valuable and useful experience to be gained around technical matters, team dynamics and company culture from working in a bigger organization.

I spent years as a consultant and technical lead in such an environment. I was never involved in their recruiting strategy, but I saw fresh batches of new hires come in each year with little to no work experience so they obviously targeted such candidates. This was also way before the first coding boot camp saw the light of day. The work process consisted of business analysts writing requirements, managers assigning programmers to implement those requirements, and software architects handing down technology decisions to the programming teams. New hires with strong software engineering potential usually left after a few years to pursue more interesting job opportunities, but a good number stayed. Of those, some chose to stay because they liked the consistency of working through tasks in areas that rarely hit surprising challenges or needed adjustment to new technologies.

Large technology-related companies are more likely to be in this camp.

Startups

Startups typically live from funding-round to funding-round, and most startups statistically fail. Very few startups are flush with cash from gigantic investments, and in the post WeWork world, they will probably be even more rare.

In technology-related startups, paying salaries and benefits is likely one of the biggest monthly expenses, so keeping salaries and/or the number of employees low is an obvious way to manage the cash burn rate, regardless of how much the startup needs to be done.

I have limited experience with startups, but my previous job and my current job are both at early-stage startups, and at both places we chose to pursue experienced software engineers because of the demands of the business and the opportunity cost of training raw talent versus building out a lot of things very quickly. As the team grows, we will gradually be capable of taking in less and less experienced candidates and provide rigorous training and coaching to help them succeed. We’re not quite there yet.

Coding boot camp graduates often have other education or work experience.

A few months of exposure to a particular set of technologies tells me you were able to work with specific aspects of a small set of technologies. However, solving problems and engineering solutions is only partly about technology. Look for experiences you’ve had that highlight other skills that relates to problem solving, people skills and perseverance:

  • Identifying opportunities for improving the way things are done and championing changes, especially in organizations that resist changes can really get you noticed.
  • Demonstrated deep subject matter knowledge relevant to a job opportunity. For example, you might have worked with supply chain logistics for a number of years in a non-technical role. Deep domain knowledge would probably be a big advantage for a software job that relates to supply chain logistics. Other examples: educator → educational software companies, accounting → financial software companies, etc.
  • Graduating with a bachelors or masters degree in any topic can show you’ve learned how to be an efficient learner. Find examples that demonstrate how you were able to quickly get up to speed in new areas.

You can turn such experiences into value adds as a candidate, but only if you’re able to talk about how they relate to a particular job opportunity.

Once you’ve landed that first programming job, it’s time to buckle down and extract every learning and experience you can from the opportunity. However, after a while, it’s easy to get stuck in a programming job. In the beginning, everything is new and challenging, and you’re learning a lot. Hopefully you’ll feel like you got the hang of it after a while. Then you’re fortifying your experience by doing the work and walking the miles for a while. At that point you’re on the path toward diminishing returns if you’re still being spoon fed the same kind of programming task as when you started.

If you’re lucky, your manager and the company you’re working at will encourage you to take on bigger challenges and more responsibilities. Otherwise it’s time to consider looking for new opportunities elsewhere.

How do you grow from programming to engineering solutions? In my experience, by programming. A lot. And by seeking out knowledge, reading about technology, and constantly asking questions like what’s the difference between React and Angular, how do they work and what problems do they solve, and realizing React is focused on solving certain kinds of problems, Angular others. There are academic answers to that, but your insight from walking the miles and working with these technologies in depth is what makes you a valuable engineer.

Advice for Hiring Managers

Coding boot camp graduates are a firehose of raw talent and diamonds in the rough for you to find and nurse into valuable contributors before anyone else does without paying rock star premiums, and to develop lasting gratitude and loyalty of employees who recognize your business grows because they were empowered to grow.

If you’re looking for candidates who can churn detailed requirements into code, coding boot camps got you covered.

However, if your organization is more set up on depending on software engineers more or less autonomously tackling complicated problems, you’ll need to invest plentiful of nurturing, coaching and mentoring along the way to ensure new hires succeed. Otherwise you will end up with employees who feel under-appreciated and frustrated they aren’t able succeed and grow.

Software Engineering Coaching?

I’m thinking about putting together some kind of coaching program that will help coding boot camp graduates expand on the lessons they learned and make meaningful progress towards thinking about systems design, understanding the why and what of the technologies we use, and be able to break down requirements into thinking about mitigating uncertainty, managing risks and respecting challenges with humility and competence.

Let me know if you’re interested and/or have any suggestions for format and topics.


We welcome thoughts, comments and counterpoints to help us learn, evolve and grow. Participate and let us know what you think!

fernish-tech

Learn how the engineering team at Fernish applies cutting edge technologies and ideas to solve interesting product challenges

Kim Burgaard

Written by

I’m the head of engineering at Fernish, technology enthusiast, doting dad, and of the firm belief many things are better with more bacon.

fernish-tech

Learn how the engineering team at Fernish applies cutting edge technologies and ideas to solve interesting product challenges

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade