What's the real difference between a junior developer, an intern and an apprentice?
Junior, Intern or Apprentice
Time to Read: three minutes
As someone who spends a lot of time writing and consulting on apprenticeships, the biggest source of confusion I typically see from companies and learners is the difference between the various types of entry positions in tech. What is an apprentice? How do they differ from a junior dev? And why should we spend the time and energy on them, rather than the roles we’re more familiar with?
This confusion is pretty understandable, given we don’t have many standards around what we call an apprenticeship right now. However, there are some commonalities between most apprentice gigs, and they point to the reasons you should (or shouldn’t) hire an apprentice for your team.
What is an Apprentice, Anyway?
Remember that all of your entry-level developers are going have two major outputs upon which you can rate them:
- Production software.
- Learning and new skills.
And herein lies the difference:
A junior developer’s primary output is code, and secondarily learning. An apprentice’s primary output is learning, secondarily code.
In this sense, an apprentice is more like a traditional intern. They can produce software (some companies have a reasonably high amount of production work for their apprentices), but the goal and primary measurement of their success must be their improvement in skill.
Is That Good?
At this point, many smart folks will ask why they shouldn’t just hire high-potential junior developers and get more productivity out of them. As an industry, we haven’t done a great job of communicating why you might want to make this extra investment. And honestly, all things being equal, more experience is a benefit.
But all things aren’t equal. My experience dealing with entry-level developers has been that some of the most high-potential folks I’ve met have also been too inexperienced to deliver production level software. As a result, our traditional interview debrief usually sounds something like this:
I’d really love to work with her, but she’s just not technical enough yet. Let’s tell her to re-apply in six months.
But she won’t. By then she’ll have become much more in demand and you’ll have lost your opportunity.
Instead, if we admit that we’ll need to spend time training any new hire anyway, and we measure learning rather than raw code output, we can grab really great nascent devs and mold them into exactly the employees we’re looking for.
To put it another way, it doesn’t matter what their current level is, only their trajectory.
What About Internships?
If not junior developers, what about an intern? They’re easier to explain to management, and most employees already have a sense for what goes into an internship. And after all, we know that interns are primarily focused on learning as well.
In principle this could work; there’s no reason why an intern couldn’t do the same activities as an apprentice. But in practice the term intern has too much meaning already hung on it:
Interns almost always come from college, which ignores the best source of new high-potential candidates right now — folks with non-traditional backgrounds. Students are counseled to do several internships during their degree program and not necessarily to stick to one employer. And employers (including your mentors) will already have many of these expectations themselves. Culturally, internship is a temporary position.
Apprentices, on the other hand, are committed to succeeding and converting to full time employees. This is another commonality to all apprenticeships: both sides are going to do their best to bring the apprentice on as a junior developer. And because you can hire folks from non-traditional backgrounds with more life experience, it’s easier to find the kind of tenacious people who will fight to succeed. That means a much higher chance of success.
So Is The Higher Cost Worth It?
Maybe. It can be. If your business is predicated on building and maintaining software, and if you expect to be in business and retain your employees for at least the next few years, you should consider the choice.
If you find yourself unable to hire enough great developers in today’s market (and let’s face it, that’s nearly certain), you should consider it even harder.
Next time I’ll discuss some of the less obvious costs and benefits of an apprenticeship program. Until then, cheers.
Photo thanks to wocintechchat.com