There is a saying amongst upcoming programmers: “you need to start coding by age 5 so that by the time you are done with college you have the experience for an entry-level job.” That would be a joke if it weren’t for the fact that it’s painfully true. Being hired as a young software developer is about as easy as fighting a raging gorilla with your hands tied to your back. This is what we call “the young programmer paradox”.
I could point to hundreds of examples of companies that place job ads for entry-level positions asking for the experience of an average or seasoned programmer but looking for people in their early 20s. In turn, a young and talented candidate ends up discouraged and passing up opportunities that would have been perfect for their skill level.
But why are companies so obsessed with overqualified candidates? The question isn’t that simple to answer. As a person who’s worked in recruitment as well as a friend to many developers, I’ve seen both sides of the argument first hand and, to be quite honest, both sides have very compelling points. So, instead of defending one or the other, I want to try to present both arguments and then try to find common grounds. Think of it as a “Hegelian dialectics for programmers”.
Thesis: The Case for the Young and Experienced Profile
In the past, I’ve worked both as a recruitment consultant and as part of the recruitment department of a middle-sized company. For those who aren’t aware, recruitment is more than reading resumes and prying on people’s private life with questions. The first step is understanding what your client (or company) is looking for in a recruit.
To be quite frank, many companies begin their hiring process when it’s too late. For example, they start it when they realize a project is bigger than they expected, or after someone has already turned in their resignation. This is like training a new firefighter when the city is already on fire. They want a recruit that can finish the interview and immediately sit on their workstation and get to coding.
On average, people with experience acclimate to their jobs quicker and require less training. Obviously, that’s not a guarantee, but it happens often enough that decision-makers like to bet on those odds. We as recruiters have to keep that in mind when we build the profile.
On the other hand, IT is one of the biggest business trends, with thousands of new aspiring developers entering the market daily. For recruiters, this is quickly scaling to become an insurmountable challenge. Not only is the landslide of resumes massive, but the skill levels between candidates vary wildly. You can have a young programmer with plenty of knowledge on Java and then the next one will call themselves a programmer because they use HTML (don’t laugh, this happened to me).
Asking for experience is a quick way to separate the wheat from the chaff. I will be the first one to admit that I’d hardly call it efficient, though, since many young talents get discarded when they would be even better for the position than an experienced candidate.
Finally, there is the matter of how a candidate will turn out as a team member. There isn’t a clear cut way to assess if a person is a good fit for the workplace, or if they are a team player. Experience in other jobs (especially those that last more than a year) is usually a good indicator that the person is both consistent and sociable. Once again, not the most accurate, but it works often enough.
Antithesis: The Case for the Young Talent
Some of my best hires have been young up-comers with almost no experience that I’ve fought tooth and nail to give a chance. A resume, like a picture, is only a partial account of reality. Sometimes, that account is good enough to make a judgment, but most often than not there is a richer story waiting to be told.
Measuring programming and problem-solving skills with years of experience is akin to figuring someone’s weight by measuring their height, there might be a correlation, but it’s not really a strong one.
A lot of great programmers have done a lot of work as personal projects or as part of a community, but they haven’t had the kind of experience that would look well on a resume so they don’t write it down. Unfortunately, not every recruiter is aware of this, and they don’t know what kind of questions to ask to gain insight into their skills in coding or their ability to be part of a team.
On the other hand, a young programmer with little experience isn’t set in their ways yet. Experience comes with habits, heuristics, tricks, and styles that may or may not mesh well with other developers in-house. To paraphrase that Buddhist proverb, in order to fill a cup, it cannot already be filled.
Synthesis: A New Approach
A synthesis means meeting halfway, so, how can we reconcile the needs of a company with the fact that not every great talent gets a fair chance? On one hand, more and more companies are adopting non-traditional hiring practices.
For example, instead of giving practical tests after the first round of interviews, many companies have instead opted to present candidates with a preliminary at-home test that helps recruiters measure their abilities. Instead of manually grading hundreds of tests, this first round is evaluated with the help of an AI, so one can quickly assess who are the best candidates with rubrics like code efficiency.
Other companies have opted to use a points system for the first round of resume assessing, with job experience being a percentage of the score. This is, in my opinion, the best of both worlds: people with experience still have an advantage, but newcomers don’t get discarded right away.
On the candidate’s side, keeping a portfolio with some nifty projects is a great way to show off what they can accomplish. Also, I wish we could finally move away from resumes, and instead have detailed surveys in which people can tell us more about themselves than what language they know and how long they spent on a job.
The young programmer paradox is a byproduct of trying to apply regular hiring practices and theory to a market that is decisively very different from other areas. As such, companies often have to rely on specialized IT staffing services to fill their positions. As we develop new technologies and techniques, I’m pretty sure that eventually, the hypothetical young experienced programmer will be a thing of the past.