We talk a lot about how there aren’t opportunities for junior devs, about how we lure people into tech with promises of tons of jobs and good pay and without needing a degree. And then they graduate from bootcamp or have built enough projects that they feel confident enough to begin applying. And then it happens; they discover the life-sucking, existential-crisis inducing process of trying to find a job as a junior dev.
What happens to all those jobs? Why are there so many people championing juniors, but at the same time not jumping at the chance to hire juniors? Well, the things that no one tells you about juniors is that they cost the company money; as one company owner put it, they’re “a net negative on the company.” But why? Because as a new dev, juniors are kind of like a rookie or Smalls from the Sandlot. They don’t know how to throw the baseball as far as the other player, they need to be coached. They need to learn how to hit the ball with precision, the best way to hold the bat. They need to know where to position themselves in the outfield, what the names of the positions are. They have the general idea of what the game is and what it should look like, but frequently don’t know how to play as a member of the team.
As a result, another player usually needs to spend time coaching them. That means that not only are they slower than the other players, but that the player coaching them slows down too. That’s not necessarily a bad thing, and I strongly believe in learning through teaching, but the point is, it takes time and resources to condition the junior dev to become part of the major league. A junior developer is an investment. And with the way devs change jobs in this industry, it can be a risky investment. So what are some things that juniors can do to make themselves stand out?
I strongly recommend doing open source work. Open source work shows that you can look at and contribute to an existing codebase. It gives you experience contributing and communicating with a team. As a dev, you’ll likely be working on a team, and proving that you can, goes a long way.
Work on group projects. Depending on the project and the number of people on the team, this can be a good way to work on communication and level up your development skills. Sometimes this means working with a smaller codebase, other times you could be walking into something more complicated. IMO, the more uncomfortable it makes you, the more you’ll learn.
Build your own projects. Building communication skills is really important, but being a life-long learner should always be a goal. Someone once told me to create projects like this: Create a small project that implements a feature. Next, create a new project that implements that feature and something new. And then continue to do that. I think the equation is to practice what you’ve learned and add something new every time.
Find your community. I think I’ve put this in most of my blog posts. It’s that important. Having a network to cheer you on, to mentor you, to push you forward, and to recommend you will help you find your first job.
But the onus shouldn’t just be on the junior developers. Companies need to do a better job of creating workplaces that keep junior devs. If you create an environment that is empathetic, growth-focused, one where senior devs know they’ll be mentoring juniors, where they’re excited about helping someone to grow, junior devs will stay and eventually be the senior devs who take the time to bring in the new junior devs. Hire senior devs who aren’t afraid to tell junior devs that they have broken things. Hire senior devs who are patient enough to not make junior devs feel stupid for asking questions. Hire senior devs who know that institutional knowledge and cultivating relationships will help to make that junior dev feel at home.
I think one of the top things that holds junior devs back is fear. Fear of applying, fear of talking positively about themselves, fear of being told they’re not good enough, fear that instead of having their questions answered, they’ll be laughed at. But if you have junior devs who have good mentors and a positive work environment, they’re more likely to level up quicker.
I’m one of the lucky ones. I found a job immediately, and it’s been a really good one. Most juniors come into this tech journey with people telling them “there are sooooo many jobs.” What they don’t say is those jobs are for mid to senior level devs. What they don’t say is that they’ll cheer you on, but they won’t invest in you. What they won’t say is it might take you a year, a year, to find your first job. And it might be at a crappy place that hires you because you are a junior and they want you to do the work of a senior with junior level pay. It’s time to call bullshit. If you’re a junior and you’re looking for a job, keep working on your skills. If you’re a company thinking about hiring juniors or are currently hiring them. Invest in them. They’ll grow with your company. They’ll be an asset. There’s a scenario where everyone wins, we all just need to talk more openly about how to make that happen.