Live data from Hacker News

Ask HN: Strategies for mentoring junior developers?

news.ycombinator.com

1–10 of 74 posts

Ask HN: Strategies for mentoring junior developers?

#1
Software development companies are often willing to hire developers who need a lot of guidance and direction. (Developers who can’t excel without help.) But a large segment of these companies have no strategy or program in place to help such developers reach proficiency and independence.

What are some good, holistic approaches for helping train up-and-coming developers all the way to “senior developer” skill level?

Re: Ask HN: Strategies for mentoring junior developers?

#2
Pair programming for sure. Senior designs the code, junior writes it. Senior doesn't touch keyboard. It's real time code reviewing.

The senior's time is rarely wasted. They can always do time consuming high level work like designing test cases, planning out the next part of the work, seeing if the API supports stuff.

Re: Ask HN: Strategies for mentoring junior developers?

#4
post #2

Pair programming for sure. Senior designs the code, junior writes it. Senior doesn't touch keyboard. It's real time code reviewing. The senior's time is rarely wasted. They can always do time consuming high level work like designing test cases, planning out the next part of the work, seeing if the API supports stuff.

Your company has to have the right culture for this. Companies like this are rare. Most just assign whatever's in the queue to whomever's going to take it, meaning that everyone has "something" to do at all times.

Re: Ask HN: Strategies for mentoring junior developers?

#5
As a junior dev, keep us on the edge of just enough work and too much work. Too little work seems to cause disdain of the company (questioning why we were even hired) among my other junior peers. On the other hand, too much work causes us to burn out too quickly since we are still solidifying our time management and prioritization skills.

Re: Ask HN: Strategies for mentoring junior developers?

#6
The best thing to do is teach them to dig into problems, learn on their own, and think for themselves. They will have to learn how to deal with missing documentation and unclear/messy code. They will have to learn how to unblock themselves when they are blocked, rather than just getting stuck. They will have to learn how to work around obstacles and think outside the box whenever the immediate initial solution that comes to mind turns out to not be a working one.

Coworkers shouldn't be treated as StackOverflow unless absolutely last resort because it is incredibly distracting to answer mentees' easily-Googled questions about built-in language API calls every 15 minutes or so. A lot of programming is just professional Googling. Once they can function independently, they are no longer junior developers IMO, but this is a learned skill.

When I started programming, I had enough people on IRC berating and insulting me for asking about standard C library calls that I learned how to research and solve my own problems the hard way (the acronym "RTFM" is toxic). It felt awful, and I can imagine a lot of people getting discouraged and just giving up.

I was in high school trying to write my own malloc just for fun, and random strangers on the Internet kept calling me an "idiot" because I was still learning pointer arithmetic and needed help (and nobody IRL could help me).

Re: Ask HN: Strategies for mentoring junior developers?

#7
I've always been a fan of assigning maintenance tasks to junior devs (or anyone who's new to an existing codebase.) These are tasks that are often lower priority so there is less time pressure to get them done right, and they give the devs the opportunity to learn the codebase. Working on existing code you don't know yet is also a lot easier than new development on code you don't know (and coding standards you don't know), so that makes it a better introduction for the new devs too.

Re: Ask HN: Strategies for mentoring junior developers?

#10
post #4
post #2

Pair programming for sure. Senior designs the code, junior writes it. Senior doesn't touch keyboard. It's real time code reviewing. The senior's time is rarely wasted. They can always do time consuming high level work like designing test cases, planning out the next part of the work, seeing if the API supports stuff.

Your company has to have the right culture for this. Companies like this are rare. Most just assign whatever's in the queue to whomever's going to take it, meaning that everyone has "something" to do at all times.

Ugh, yeah, this is horrible. Especially if you're at a company which doesn't have any documentation, and the rest of the team is in another country with 3 hours of time difference, so you're on your own after 3PM.
Post reply on HN