More Software Companies Should Offer Apprenticeships For Coding Bootcamp Grads

Here's how I envision it: Companies offer 3-month-long apprenticeships to new coding bootcamp grads. Companies pay the coding schools a 'referral fee', and each apprentice gets an $8,000 tuition refund for completing the internship. The environment is fully agile with daily stand-ups, pair programming, pull requests, code reviews, and retros. At first engineers on staff will pair with apprentices, but as time goes on, apprentices will start pairing with each other. Each apprentice gets a full time employee as a mentor, who they have weekly 1-on-1 meetings with. There is also a highly structured learning aspect modeled after the Flatiron School's post work curriculum that all the apprentices must complete, as well as a 2 blog post per week minimum. Apprentices can casually start interviewing with companies for full-time jobs during the program, and hopefully will line one up starting right after they finish.

1. N00bs are more capable then they get credit for

It's amazing how many short-sighted companies there are who both have a hard time hiring, and refuse to hire brand new junior developers. These people dropped everything, and spent the better part of the last 4 months of their lives immersed in code, all day every day. They make amazing projects and even go on to start companies. They learn fast, and if put in the right environment will quickly add a lot more value than they are paid.

2. Good value for employers

The demand for engineers far outstrips the supply, thus driving up engineers' salaries these days. Let's say one junior programmer costs a company $100k in salary, benefits and taxes. These people work 50 weeks per year, and 40 hours a week for an average hourly cost of $50. Contrast this to an apprenticeship program where people might work 40 hours a week for 12 weeks for a total salary of $8000. That's an hourly rate of $16.67 - only a third of what the junior programmer costs.

3. Small, Short-Term Financial Benefit For Apprentices

In the best case scenario a coding bootcamp grad goes on a bunch of interviews and starts a new job about month after graduating. Sometimes it can take two or three months though, which can be really nervewracking. It took me 5 weeks from when I finished classes at the Flatiron School to when I started my first development job. If you spend 5 weeks looking for a job making no money, and then work for 7 weeks you'd end up taking home about $7,666, assuming an average salary of $85k, and 1/3rd taken out for taxes. This is actually less than an $8000 tuition refund would have netted you.

4. Apprentices Will Learn A Ton

Most companies just don't know how to handle junior developers. In my first developer job it was just me and one other engineer. There was no structure, no management, no branching, no pull requests, little pairing and code reviewing, and inadequate test coverage. In short, I learned, but not the right methodology, and not nearly fast enough. Many of my friends experienced similar situations, and have thus not progressed very far as developers.

Having a fully agile environment, lots of pairing, and an expectation to do a lot of reading and blogging is the perfect environment for coding bootcamp grads to get to the next level. Jeff Casimir thinks it takes 6 months to 'build' a new developer - and I think he's pretty much right. So if you don't got to the Turing School and instead attend a 9 or 12 week coding bootcamp, then a 3 month apprenticeship is really what you need.

5. Increased Job Prospects After Apprenticeship

I can't tell you how many times I heard "you're awesome, but we're looking for someone with 6 months more experience than you have". I think that's hogwash. It's really hard to find good people, and if you find someone who you get along with, is smart, has a good track record, and is on a solid learning trajectory - you should totally hire that person.

While I hope this idea of apprenticeships catches on like wildfire, I'm sure that many companies still won't be converted. A junior dev is much more likely to get hired at one of these companies if they have 3 months of professional experience, 24 blog posts, and a dozen programming books under their belt. Thus a programming bootcamp grad's options and potentially salary will be greater after the apprenticeship is over than if they had just focused on finding a job immediately after the bootcamp.

6. Helps Companies With Recruiting

Let's say your company does 3 apprenticeship programs per year with 5 apprentices in each program. This means that you've had extended time getting to know 15 junior developers each year. You know which ones you enjoy working with, their strengths and weaknesses as programmers, and how they could fit into the team. Maybe you hire some of them right away if you have the capacity. Even if you don't, if you both enjoyed each other, chances are that a year or two from now when you need to hire, you can call up quite a lot of people, offer them a raise and get them to join your company. Building a solid network of developers you can hire sure beats paying a recruiter's fee, or leaving a role unfulfilled for months.

7. Helps with Code Maintainance

The largest cost of building a software system is maintaining it. Having worked with a lot of smart and experienced engineers, I notice that they tend to be a bit removed from beginners. They write code that is very abstract and efficient, but not necessarily accessible and easy to understand. They also don't feel a need to document things that are seemingly 'obvious'.

Eventually these senior engineers will move on, and the company will be left sorting through their old code - chances are with less experienced developers. By having a large portion of your team experienced enough to write code, but new enough to want to do things in the most straightforward and well-documented way, it will hopefully make the process of maintaining the code base easier and less expensive.

8. Helps the ecosystem

Companies don't exist in a vacuum. Most software companies are built on top of open source code, using advanced microprocessors and the internet (both made possible by large government R&D). No matter how successful companies are, there is a very cogent case to be made that You Didn't Build That.

When it comes to engineering talent, which is the lifeblood of a software company, it's not enough to just sit there and hope that talent appears. Companies have a responsibility to help mentor new talent and make the entire ecosystem function better. I can't think of a better way of paying it forward than to give n00bs a chance, and bring them on as apprentices.