loading...

The Tech Industry is Failing Junior Devs

bekahhw profile image BekahHW Originally published at bekahhw.github.io on ・4 min read

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?

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Posted on by:

bekahhw profile

BekahHW

@bekahhw

Hey! I'm Bekah. I'm a career-changer. Bootcamp grad. Dev. Writer. Mom to four kids.

Discussion

markdown guide
 

In my opinion, teaching and mentoring is a vital component of becoming a "senior" or "lead" developer.

If I need to trust my senior developers to be able to prove to me that an idea or technology is worth pursuing, then I need them to be able to explain it to a junior or newer developer.

If they can't, then they're not ready.

Mentorship is a huge part of what I expect from my senior and intermediate devs, and I've seen amazing results since adopting the philosophy.

 
 

I'm more senior at this point, but its kind of galling to hear juniors described as a "net negative" by whoever the person is referenced in this post. Outside of a training phase, juniors are contributing work deliverables within their first 90 days, or at least the juniors I've been aware of have (including myself back in the day). Its kind of mindblowing to hear them discounted so heavily.

I also always feel like there should be some kind of cosmic law that the only people allowed to complain about how hard it is to find Senior Developers are places actually DOING the work of developing juniors. For the places who aren't, I always feel like "cry me a river" when I hear them complain about hiring lol.

 

... I always feel like "cry me a river" when I hear them complain about hiring lol.

The couple of times we have hired devs, the position required no prior experience. Both times, we received so many resumes we had to take the listing down after only a few days. And my work is in a nearby town of only 55k people. So yeah...

 

Love that you took time in writing this! I'm a career-changer currently attending Bootcamp so hopefully this message gets out soon!

 

Network as much as you can through bootcamp. I got my job through Twitter and it's been maybe the best job I've ever had.

 

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.

 

Thank you so much for talking about this.

 

You're welcome! I'm looking forward to writing another post on ways to mentor jr. devs.

 

That would be cool.............We need More discussion on this. @bekahhw

 

Crowd applauding

Bekah, this is absolutely amazing. Thank you for writing this.

 

As a company who mainly hires devs with no prior experience and trains them, I will say there is another factor. And that is that companies often paint themselves into a corner with their tech. Then they feel like they must hire a seasoned person to tame or even make sense of it. Accidental complexity. Hiring experienced devs is a quick fix to keep things from grinding to a halt. They can avoid stopping the feature train to pay technical debt which has accumulated to eye-watering levels.

 

THIS. I gave a talk about avoiding and eliminating unnecessary complexity (at a con dedicated to a very specific stack, in which I said "and you might not even need this stack at all").

I've made it a point in recent years to architect with as much simplicity as possible for not only managing costs and minimizing infrastructure, but also so that I can plug in any junior dev and very rapidly bring them up to speed.

 

This is 100% the case with most companies that hyperfocus of hiring senior talent. And the complexity isn't always accidental either. Lots of resume-driven-development out there 🙄

 

RDD is definitely what keeps the Houston talent pool mired in .NET and Angular (in far too many cases STILL stuck on AngularJS 1.5, because migration is such a beast), particularly because it's dominated by two industries that leverage them heavily (O&G and medical).

Houston is also extremely cheap when it comes to tech salaries, which is one of many reasons I opted for remote a decade ago and seldom can help but laugh when someone approaches me for an onsite in Houston outside of those stacks (especially how little they're willing to pay one of the few people in Houston with 10+ years of Drupal, even if I rarely use it anymore).

 

I'd love to talk more about this. What kind of mentorship structure do you have? If you continually have to hire a seasoned person, are the jrs who level up not staying on?

 

For the painted into a corner scenario, I wasn't talking about my current work situation. Although I have previously tended to get hired as an experienced dev to plug into those scenarios. So I can't really answer your second question.

For mentorship structure, we are pretty small so it is mostly informal unfortunately. We have some resources and exercises that we tend to give the new hire. HTML and CSS first since we mainly do web. Then we teach them basic functional programming. It depends on the person, but it tends to be a few weeks of learning at their own pace before they get started working on a new UI app -- a real product that we are beginning. It starts as an empty app so they get to grow with it. The UI is convenient place to start because we use MVU, and it tends to reinforce the simple functional programming that we do. And it is easy to correct those inevitable early mistakes. It also has a quick and visual feedback loop, important for learners. When they decide they are ready, we introduce them to back-end stuff. Eventually they will implement features end-to-end. We've done this for a couple of products now, so we have also iterated on organization strategies for front and back that makes it easier to plug into.

Our initial reason for hiring devs with no experience is budgetary since we are a not-for-profit organization. However, even if that changes I intend to continue in this strategy because it has been quite rewarding. And because bringing in new people is a great way to test / improve the resilience of your development process / tools / paradigms.

Our company sees itself as an ever learning organization where people need to grow.

We give courses in high schools, then give scholarships in the University (we're not in the US so it's no so expensive), then we recruit university students and graduates and train them for several months (free).

After all that process we hire the best.

We've found that "growing" our own human resources has been very effective. We also hire people with experience elsewhere so that we get some cross-pollination, but incorporating training in your corporate mindset makes for an ever improving organization.

We also have very very low attrition.

@aminmansuri This is taking what I advise my clients ("Don't waste your time chasing unicorns; invest in creating your own") to a whole other level. Great job.

 

I think you might be mistaken.
It's actually not so much about juniors. It's about bootcamp juniors.

I lot of bootcamp juniors can't compare to a junior that is coming out of a master or even a license in IT.

That is because a lot of IT concepts can't be teached in a bootcamp. And even then, there's not enough time to digest it all.

So yes, a junior getting out of a bootcamp will be on competition with master graduates, and for almost the same salary no one can blame recruiters to take the one that will require less mentoring.

This is not to say that some junior bootcamp graduates can't effectively be really skilled, and some master graduates can't be really unskilled.

 

Look, I've taught in higher ed in the English Dept., and I can say for sure that I knew more about coding after 6 months in a bootcamp than most of my students did after 3.5yrs of a comp sci degree. Yes, they were probably better at algorithms, but I'm not using that skill in day to day work.

Go search for junior dev jobs. They are not there. Not nearly at the same rate as mid to upper level devs. So it isn't about bootcamp or CS degrees. It's about no one wanting to hire jrs.

 

Bekha,

I have 20 years of experience in this industry. Give me the benefit of the doubt for a moment please. Suspend your skepticism and try to see the Big picture.

I know for sure there's a difference between the average junior licensee and the average bootcamper. And to make things clear, I'm not talking about you bekha. You might be the exception, i juste can't know and i will never juge your abilities here on a blogpost.

The fact is, a university diploma will get you a job in about 3 month in IT and about a year for bootcamp profiles that did not gave up searching.

I Hope that this reallity is told in bootcamps before the students start the training and paying for it.

Juste to give you an insight. I work with about 25 developpers, and 8 of them where hired as fresh juniors at one time here. One is a bootcamper.

That's 3 years the bootcamper is working in this team. I mentor him. He's still trying to catchup, and as much as i like him, because he has some other skills, i see the difference in his ability to be autonomous and to abstract things. He still needs a lot of my attention. In comparison the master Junior we just hired is already helping him understand things and i don't need to mentor him has much.

Is it worth for a recruiters to hire juniors. Yes. You Can make him learn and understand your business
and processes better than someone with prior experience.
But like you said, it takes time and dedication to mentor a junior. So in practice, i can only mentor one at a time.

In All my time in software industry, i always worked at places where we mentored juniors. I don't see why it would have suddently changed. And around me, my friends in IT have the same experience with bootcamp profiles that we shared.

Agree with this, but for me the point of having a diploma is only useful to get first job, as you said Its much easier to get a job in 3 months with a university diploma.
As an example I dont have a university diploma, I did a bootcamp, but in order to be able to get offers after my first internship I had to do a lot of side projects, and now after 2years I get a job outside of my country. Every interview that I had never asked for what I studied. What matters after your first job Its what you do during your career

 

University is not only about general knowledge. It's much easier to judge persons commitment to the profession, when they spend 4+ years in the university, rather that 3-6 months in bootcamp.

All this hype with bootcamps (mostly fueled by their own commercials) brings a lot of people to IT with unreal expectations about the possibilities and the actual profession. Also there is the question of motivation - for most it's money and it will only get you so far.

For now IT is an easy choice. It's a good choice, but some people would much happier and successful somewhere else. This is coming from my personal experience - bootcamper, career-changer.

I think you're making a lot of assumptions. My experience both as an instructor in higher ed and as a bootcamp grad, and as a person who is involved in a lot of communities of people with a variety of backgrounds has given me a very different understanding. I don't necessarily think that happiness in a job is a good indicator either. Some people want stability or money. I like the problem solving aspect and it does make me happy. But not everyone is seeking happiness through work.

 

Perhaps @ecyrbe , your difference in perspective is a regional observation. Here in America, it's the reverse. Often times, the college graduates are the ones ill-prepared for the roles we have open, and it's the bootcamp graduates who are able to more-quickly get up to speed with our junior responsibilities.

 

I have 20 years of experience as well, and my experience (personally and in hiring others) has been that those 4 years and tens of $1000s committed were all but a complete waste. As a rule, I've seen boot camp grads perform better out of the gate and in the long run than grads from some of the best CS programs in the nation.

Who fares even better? The self-taught, whether or not they spent a even day in university or boot camp.

Formal education (and certification, a complete racket in tech) is so irrelevant to what makes a good dev that I replaced my education and certs sections with this to push back against the obsession:

Education and certifications

 
 
 
 

I think it's tough for a lot of companies. Unless they're in a position where they don't need to worry too much about getting a new hire up to speed, they're going to prefer someone that already has experience figuring out a completely new codebase, following standards, etc.

Plus with so much competition out there where experienced devs might be willing to take a paycut just to afford rent or put food on the table, deck is stacked against juniors.

 

It is definitely tough. However, there are a lot of jobs out there. I'm actually surprised to hear you say experienced devs are taking paycuts. Is this a COVID thing? My husband is a senior dev and has never had trouble finding work. And he went from new dev to senior in under 5 yrs.

 

The worst example I saw was a contract gig with Apple. Recruiters hit me up for months because it required not only senior level Drupal architecture experience (with Drupal 9, which was just released last month), but senior level technical writing chops. After lockdowns, they expect the contractor to relocate to the Bay Area. And they're only willing to pay at least $40k less than EITHER a Drupal architect OR a senior technical writer (let alone both) could net, in a market that doesn't have an insanely high cost of living, in a salaried full time position rather than a contract that could be yanked at any time (which you would expect to pay even more because of the lack of security).

Each time I wasted my time hearing them out, I laughed at them for the rate.

 

Friend took a paycut at a new place after getting let go cause previous company got hit hard. Probably not the norm though.

 

I'd prefer a junior dev I can mold than a senior dev who's likely to jump ship when a better offer comes along, who's likely to be disgruntled about the pay cut at the very least.

But that's me. A lot of people don't factor in that you get what you pay for.

Also, the amount of handholding you need to do says a lot about your architectural decisions. Whenever I hear about something in a stack that sounds like it adds a lot of complexity, I immediately question it.

 

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.

 

The premise that junior developers are a cost center for the company is bad, tbh.

Every developer needs onboarding time. Every developer asks for help and has communication needs. It is not the case that senior developers clam up and cost the team less in some abstract way. Or else, it should not be. That's a bit of a red flag, to say the least. Not to mention that, as you allude to, a bad senior developer can do things that make the workplace less welcoming to juniors. That's a massive material cost exacted against the company's (and the industry's) future. The only reason that cost is invisible is that the person actively causing harm holds a position of more power than a junior, which is often allowed to shield them.

Like, to be real, the only reason we talk about junior developers this way is to condition them to accept workplace abuse (of whatever kind). If they think they are "lucky" or "fortunate" to have a job, or that the company is doing them a "favor," then they'll be less likely to advocate for better working conditions.

 

I think an issue that I noticed after month of interviewing junior and interns is that all those people coming out of bootcamps sure have a better knowledge in javascript than an intern but their is an extroardinary lack of knowledge in terms of general knowledge. How to use command line, how a dns request works, how a web request works and more.

Thus for the company it is sometimes more profitable to recruit interns that in the end will adapt better to the larger scope of work and be cheaper in terms of cost for the company.

I do agree on the part that not enough junior build a portfolio. I see so many people who have been "looking for a job for a year" but didn't create one repo or project in that year. It gives me the simple impression the person doesn't enjoy IT.

 

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.

 

I love comparing companies with soccer teams.

Guess where do most performant soccer teams in world get most of their players. That's right, their juvenil team where they train "jr players" from young age. Some of them even have more than 1 juvenil team.

That also might be the reason that top companies around the world have Intern and jr engineers programs.

Sr. Engineers aren't born, they are built.

 

Interesting perspective and one that i can relate to in some fashion, over the last 3 years as a dev manager i have hired, trained and shepherded over a dozen Bootcamp juniors through to what many consider mid-level developer positions. I spend a lot of time finding the right candidates for our team and it is a difficult balance between finding qualified talent to fill the role and someone with the right attitude to make it through our level of workload. We are just a small team but we take the chances since the mid-level and senior developers are almost non-existent in our area due to so many competing companies. In all honesty i have to do more work to make sure those team members are supported through the early phases of this activity and keep in mind the expectation that those same junior devs may not stay for more than a few years before they want to seek new opportunities. I will say while it is not novel in our company to do this approach, it is one that we have been very fortunate to find really great developer potential and that is definitely paying dividends for us over time. One trait that i have found that all of the more successful ones express is the desire to continue learning regardless of the avenue, that desire is imperative.

 
 

Thanks a lot for talking about this. I have felt this way for a long while

 

We defeat ourselves. Adversity makes us stronger.