A few months ago I attended an event for women in tech. A lot of the attendees were new developers, graduates from code schools or computer science programs. Almost everyone told me they were having trouble getting their first job.

I was lucky. My first “real” job out of college was “Junior Application developer” at Columbia University in 2010. These days it’s a rare day to find even a job posting for a junior developer position. People who advertise these positions say they are inundated with resumes. But on the senior level companies complain they can’t find good developers.

Gee, I wonder why?

I’m not really sure the exact economics of this, because I don’t run these companies. But I know what companies have told me: “we don’t hire junior developers because we can’t afford to have our senior developers mentor them.” I’ve seen the rates for senior developers because I am one and I had project managers that had me allocate time for budgeting purposes. I know the rate is anywhere from $190-$300 an hour. That’s what companies believe they are losing on junior devs.

I don’t believe that because no senior developer is working a full day on that $300 an hour rate. Also their hand wringing about the costs seems like crocodile tears knowing all the time they waste (at least in my opinion) on things like meetings.

But let’s say they do start sticking junior devs back into teams again. You have the additional issue which is now senior developers have no experience working with junior devs or training people at all. When I first started working with junior devs I had no idea how to do it. I felt lost and confused. My company was just like basically “give these people something to do so they can learn something.” But that’s really not a lot to go on.

I looked around for resources and found none. If you know of any please let me know in the comments. I eventually cobbled something together with pieces of various courses and different assignments.

But the amazing thing is how much I learned while doing it. I don’t think I really understood Javascript language features on a deep level until I had to explain them. Some of the tools I developed for teaching I ended up using on projects.

Now there were times when it was frustrating. Especially when project managers or other types of managers didn’t understand the realities of the situation. When they didn’t understand there would be a lag as I taught these people.

I guess what I’m trying to say, is the entire software development ecosystem NEEDS junior developers to stay healthy. Training them has costs, but it also has benefits.

I’d recommend companies that want to start having junior developers again invest some time in developing a program that helps senior developers and anyone people working with them how to effectively mentor. And also account for more grim realities.

Like that not all junior developers become successful developers. What are you going to do about that? Are you going to blame your senior developers? Or track the people struggling with development into a place where they can succeed like project management, sales engineering, or other non-development roles where software knowledge is valuable.

And not all senior developers become successful mentors. There are plenty of awesome developers who just don’t have it in them. They should be able to step away. And the ones that fill in should not be punished for doing so. On one team I did most of the mentoring of a junior dev and I felt it was considered less-than the “real” work the other developers did, which later made me reluctant to take on these roles. Yeah, I’m gonna bring gender into it, because I’m a woman and when women take on roles like this they often get pigeonholed into “den mother” stereotypes. That means less prestige and less prestige usually means less pay.

I can’t write this though without mentioning some other economic issues that are obstacles for junior devs. I visited one company for an event recently and they basically said all the “easy” work was outsourced to another country now. This is stuff that junior devs once did. Then there is automation. A lot of the work I did personally as a junior dev is automated now.

For the junior devs out there, it’s going to be hard to land your first job. You might have to do things I really hate recommending, like working for free on various projects. if you do pick a really great open source project that you can stick on your resume. I’m less inclined to recommend working for a “startup” for free.

Also you’re going to have to hunt for your own mentors. In-person meetups are the best place, though I understand it’s not an option for everyone, so you might try private subject-related Slacks and Discords. And it’s going to suck about as much as dating does. You’re going to get rejected a lot. And you’re going to be on projects that suck or completely fail, because people working for free tend to be a bit more flaky than in business. Like one junior dev told me they stopped going to a particular meetup because the project they were on fell through. I had to tell them they need to keep going and picking projects up, knowing a lot of them are flake city.

For my own part, I’m happy to mentor folks that come to meetups that I also attend and I’d also like to work to develop more formal mentorship programs in these settings.

I’m not sure what the industry-wide solution is. I’m not sure whether companies that lack junior devs are unbalanced or smart. The reality is that most software developers don’t stay one place very long, so maybe it doesn’t make sense to invest a lot in training someone? Or maybe the industry should ask itself why people keep hopping jobs? Maybe it’s because a lot of them suck, or for a lot of us it’s the only way to advance our salary. I can either wait for a stupid, meaningless yearly “performance review” to bump me up 1% or take my resume and interview elsewhere and get 10% or more.

It’s not just a sign that an individual company is broken, it’s a sign the entire industry is broken.