DEV Community

BekahHW
BekahHW

Posted on • Originally published at bekahhw.github.io on

The Tech Industry is Failing Junior Devs

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.

Top comments (47)

Collapse
 
brandinchiu profile image
Brandin Chiu

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.

Collapse
 
bekahhw profile image
BekahHW

Yessss!

Collapse
 
heyjtk profile image
JTK

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.

Collapse
 
kspeakman profile image
Kasey Speakman

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

Collapse
 
bekahhw profile image
BekahHW

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.

Collapse
 
nickytonline profile image
Nick Taylor

All the above. Great write up Beka!

Collapse
 
luisjoselopezd profile image
Luis José López Delgado

What a great article.

Collapse
 
kspeakman profile image
Kasey Speakman • Edited

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.

Collapse
 
stereoplegic profile image
Mike Bybee • Edited

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.

Collapse
 
bekahhw profile image
BekahHW

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?

Collapse
 
kspeakman profile image
Kasey Speakman

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.

Thread Thread
 
aminmansuri profile image
hidden_dude • Edited

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.

Thread Thread
 
stereoplegic profile image
Mike Bybee • Edited

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

Collapse
 
shelbyspees profile image
shelby spees (she/her)

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 🙄

Collapse
 
stereoplegic profile image
Mike Bybee • Edited

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

Collapse
 
anesabml profile image
Anes Abismail

Thank you so much for talking about this.

Collapse
 
bekahhw profile image
BekahHW

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

Collapse
 
akdeberg profile image
Anik Khan

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

Collapse
 
ecyrbe profile image
ecyrbe

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.

Collapse
 
bekahhw profile image
BekahHW

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.

Collapse
 
ecyrbe profile image
ecyrbe • Edited

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.

Thread Thread
 
bairrada97 profile image
bairrada97

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

Collapse
 
lkatkus profile image
Laimonas K • Edited

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.

Thread Thread
 
bekahhw profile image
BekahHW

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.

Collapse
 
theaccordance profile image
Joe Mainwaring

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.

Collapse
 
stereoplegic profile image
Mike Bybee • Edited

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

Collapse
 
torianne02 profile image
Tori Crawford

Crowd applauding

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

Collapse
 
mxldevs profile image
MxL Devs

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.

Collapse
 
bekahhw profile image
BekahHW

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.

Collapse
 
stereoplegic profile image
Mike Bybee

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.

Collapse
 
mxldevs profile image
MxL Devs • Edited

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

Collapse
 
stereoplegic profile image
Mike Bybee • Edited

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.