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.
Latest comments (47)
Really great article! 👏🏼 congrats!
It's more like Web Tech Industry than Tech Industry in general.
Bless you 🙌
Along with @bekahhw 's great advice, try to document your learning journey here or elsewhere. It's good for hiring managers to see the personal development and communication skills.
I also see a lot of recommendations to wipe out your smaller boot camp repos on GitHub. DO NOT DO THAT. You'll be wiping out all those green dots on your contribution graph, unless those repos were cloned from and got merged back into others. If you need better organization, pin the more significant repos and archive the ones less important.
Love this. I may be the crotchety old fart who's been doing this for a while, but I definitely still recall a great deal of the pain you touch on.
There has been a disturbing trend in the industry the last several years to post "junior" roles requiring absurd amounts of experience (often in ridiculously specific or even obscure tech), wherein "junior" really only means "we're too cheap to pay for what we're demanding." Which ultimately comes out in the wash, because you get what you pay for.
And then there are those obsessing over finding the "10x" "unicorn" developer. Which often amounts to months or longer wasted on a fruitless candidate search, or a bad cultural fit if you find them.
I often tell my clients not to waste their time and money seeking unicorns, but rather to invest in creating their own. Many times I prefer junior devs, because they're hungry to learn and open to ideas rather than set in their ways, I don't have to spend time getting them to unlearn bad habits, and I can mold them into the sort of devs who not only benefit me, but themselves by getting an early education on keeping the big picture in sight rather than just banging out tasks.
I would be curious to know opinions about the purely self-taught developer seeking a junior role.
The discussion mostly appears to be framed around the university graduate vs. the bootcamp graduate, but there are also those who come from the rigorous path of "self-taught." (Self-taught in quotes due to points made below around community)
About 10 months ago now, I first began learning web development through resources like Udemy, YouTube, independent courses and content, as well as Googling and reading lots of docs. I feel the biggest struggle I've faced is finding and maintaining a steady direction (creating my own curriculum equivalent) of which I have been given the most insight and feedback from an online community of devs I am very active in. This has been absolutely indispensable for my growth.
From this perspective, I find that the community is the biggest shared and defining factor, whether it be college, bootcamp, or completely self-starting - there is a need for access and engagement with other developers who are able to provide feedback and mentor-ship, whether on an individual basis or as a collective.
These are the things I see as the differences from my path and both those of college and bootcamp graduates:
I have to constantly seek growth, knowledge, and feedback from peers of my own volition because I am not provided access to the environment and resources through an institution or independent program. I feel as though it is a real skill in its own right. I'm sure there are folks some of you work with who you wish would ask for or receive criticism better or didn't have to be pushed to take initiative.
I cannot provide a reference that implicates what should be expected of me based on the timeline of that reference . A university graduate has blatantly had more time and exposure in order to receive a 4 year degree, with a trajectory that assumes they have certain knowledge and skills at the end. A bootcamp graduate, although I get the impression most span from 4 weeks to 3 months, also has some implication of what they should know by graduation.
I am confident I am just as competent as any bootcamp or college grad, but likely a little "rougher around the edges" or less "specialized" due to having to create my own focus and exploratory trajectory. More importantly, I believe I have developed the kinds of soft skills that only come from experience - self discipline, seeking and receiving constructive feedback, learning how to communicate issues/concerns effectively, taking initiative.
With my wall of text having been said :] I would love to hear what others think about someone coming from this position.
edit - minor grammatical fixes
It's harder to talk about self-taught, bc when they decide to start applying varies for everyone. Depending on how they were self-taught, they might be way ahead of a bootcamp grad or way behind. However, most of the self-taught devs I know have been really amazing and knowledgeable. They've been able to teach themselves bc of their drive. But for me, I think the categories fall more into traditional (CS) and non-traditional (anyone who applies based on their portfolio).
Interesting. I appreciate you taking the time to read my reply and respond :]
I love the discussion especially point #1. I firmly believe in selecting a project over a company.
Meaning that Developers should find a passion for certain technology products and be able to articulate and identify with its merits. I highly recommend for junior developers to explore their options and not just follow the mindset, I work in a specific technology stack because someone else said so and I do not know why.
Hi, Bekah,
Nice article, may I reference your article in mine?
I am a bootcamper or learn to code newbies, but I do have a lot of experience in IT and understand the basic concepts before a career change. I mostly agree with you on how the market behaves right now for junior dev, but I do think if we expand the "junior dev" definition a bit, the situation would be different.
Many "junior dev" come from different backgrounds with experiences in other industries ("career changer" I would call that), so they are not necessarily a deficit for a company. For example, if they already have many experiences in project management, negotiation, and leadership, for the jobs in the industry they are not necessary only need people who just can code, but in other aspects as well, right? like the content creator job you got here or technology advocate, documentation creator etc, they are perfectly fine with less experience on code, I guess.
We defeat ourselves. Adversity makes us stronger.
Thanks a lot for talking about this. I have felt this way for a long while