If we were in China, would the govt mandate the creation of 100K Ruby developers? This shortage is killing us. – Jeffrey Bussgang

There’s a shortage of software designers and developers. It’s not a potato famine; I think we’ll survive. However, it is a real problem for many tech companies.

Out of necessity springs invention. I’ve noticed lately a common solution to this problem has been independently created by multiple sources.

In the software world, when that happens, we call the solution a Design Pattern and give it a name. So, I’d like to suggest we name this solution a Software Apprenticeship Academy.

How it works

I’ve often thought “just give me 3 months with a smart person and I can have them running circles around the average developer.” Have you thought that too? I know a lot of my colleagues have. – Chad Fowler

The general idea is this: an existing team of designers and developers with expert-level programming skill and teaching ability open their doors for apprentices. The apprentices spend 2-6 months working with the team.

Each apprentice’s primary activity is pair programming with an expert mentor on the mentor’s current project. Each apprentice’s secondary activity is attending workshops and working through reading material.

At the end of the apprenticeship, the apprentices are often offered full-time jobs.

It does work

Books and workshops are still important. They fill baseline needs like cognitive learning and comprehension of facts. Apprenticeships fill higher-level (in the Bloom’s Taxonomy sense) needs: applied learning and physically manipulating tools.

Not an internship

I believe this is clearly an apprenticeship, not an internship, and I believe there’s a difference. I have to generalize to make the distinction but I believe the following is broadly true.

An intern is someone who usually wants to explore many options for their next job, may be unpaid, and is probably in school.

A company who hires interns often has special project work that is a good fit for part-time employees and knows it’s likely the intern will work or study elsewhere after their internship.

The apprentices

An apprentice is someone who knows what type of job they want next, or what kind of career they want, is almost always paid, and is probably not in school.

A company who hires apprentices has apprentices work side-by-side with expert employees on typical project work, usually hires them for craft work such as software development, and expects that the apprentice will probably work for them as a full-time employee after the apprenticeship.

In the context of Software Apprenticeship Academies, the ideal apprentice is someone who absolutely knows they want to be web designer or developer, and really wants to go deep into understanding the craft. That’s it.

Desire, intelligence, personality, and good humor are the prerequisites. Their educational and professional background is irrelevant.

The academies

The examples I’ve noticed are:

The similarities between them include:

  • They tend to be operated by people from consultancies like thoughtbot, InfoEther, Obtiva, and Hashrocket with agile/Extreme Programming traditions.
  • They tend to be sponsored by successful internet companies like LivingSocial, Groupon, 37signals, Braintree, and Techstars.
  • They tend to focus on the same technologies (Ruby on Rails, jQuery, Backbone.js, HTML5, Sass/CSS, SQL, git, Unix) and techniques (Test-Driven Development, usability testing).
  • They tend to recognize the importance of design, offering apprenticeships for developers and designers.

The major difference I can find is that some programs pay the apprentices (apprentice.io and Hungry Academy) and others have about a $6,000 tuition (Code Academy and Dev Bootcamp.

A more minor difference is that Hungry Academy is focused on having their apprentices work at LivingSocial post-apprenticeship. The others have multiple companies sponsoring the program and offering post-apprentice jobs to its apprentices.

Sew your varsity letter on your sweater

I just transferred from Yardale where I had a 4.0 grade point average. Let us jump the hilly brush. – Gregory

So, are you ready to apply? If you’re in Boston (or interested in moving to Boston) and are passionate about software, I’d love you to apply for apprentice.io at thoughtbot. We already have 7 apprentices lined up for early next year and we’re looking for more.

I’m extremely excited about the Software Apprenticeship Academy concept. I think it’s going to usher a new generation of peers into our community and I hope to see the model spread much further in years to come.