Live data from Hacker News

Ask HN: Strategies for mentoring junior developers?

news.ycombinator.com

41–50 of 74 posts

Re: Ask HN: Strategies for mentoring junior developers?

#41
post #40

Junior developers and newbie in general have one incredible quality: they don’t know and they are not supposed to. You absolutely want to tell them that their role is to criticise and occasionally write the documentation. Start from things that are obvious and leverage their question: anything they ask, tell them it’s now their role to document it. How the business makes money, what that metric means, what is TDD, wh…

> ...make sure to point out one or two issues in each very small PR...

And try to bring up one or two improvements or good ideas. Being a proper critic involves praising things as well as panning them. If they weren't good at something, you wouldn't have hired them.

If the entire review is straightforward an unsurprising, that's actually a good thing. Say it's very clear and easy to work with.

Re: Ask HN: Strategies for mentoring junior developers?

#42

Earlier quoted context omitted.

My employer does a 3-month training program that covers our full development stack, which is rather specialized for our industry. My first team didn't use any of those technologies. But the 30-some fellow students in the training program have become some of my closest friends and, in some cases, trusted teammates and mentors/mentees with various technologies. Peers are an absolutely underrated part of the mentorship…

3-month training program by a company in US is unheard of. I would greatly appreciate to know the company's name.

Not the parent, but the US-based Financial Services company I work for also does a 3 month training scheme for their new graduate hires. Better yet, they brought all of their graduates worldwide out to the same place - so we've now got a worldwide network of people who started at the same time as us and that we've spent months with together.

Alas, due to cost (airfare and accommodation for everyone for 3 months adds up to a lot!) they've now scaled it down to just within each region rather than globally - so all of the NA graduates will train together, all the EMEA ones etc. Not quite globe-spanning as before, but still 3 months long and with people from other locations, just not all locations.

Re: Ask HN: Strategies for mentoring junior developers?

#43
post #38
post #33

Out of curiosity, how many years of experience categorize a developer as "junior"?

I don't think it's about years of experience -- someone who does the bare minimum for five years and never provides input could very well still be categorized as "junior"

Would that also work the other way? Someone providing a lot of input within 2 years is to be considered senior?

Re: Ask HN: Strategies for mentoring junior developers?

#44

"Software development companies are often willing to hire developers who need a lot of guidance and direction." Is it in US? As a developer with 1 year of experience I find most of the companies are looking for only junior(3-5 years) or mid(5 - 7years) or senior(7+ years) of experience.

Where are you located? I am in Europe as well and we consider Junior 0-2, Mid 2-5 and senior 5+.

Re: Ask HN: Strategies for mentoring junior developers?

#45
post #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…

This works, but guidance is needed otherwise frustration and demotivation could occur. New developers need to be told that it is ok to not figure out everything right away and asking for the solution is not "failure" but rather part of the learning.

Re: Ask HN: Strategies for mentoring junior developers?

#46
post #40

Junior developers and newbie in general have one incredible quality: they don’t know and they are not supposed to. You absolutely want to tell them that their role is to criticise and occasionally write the documentation. Start from things that are obvious and leverage their question: anything they ask, tell them it’s now their role to document it. How the business makes money, what that metric means, what is TDD, wh…

In my experience, pair program is especially valuable for learning workflow, tools, debugging tricks, etc. For instance, I remember learning how to efficiently navigate a project with an IDE through pair programming. For ramping up on codebase/architecture, I prefer a brain dump then go off on my own and ask questions as needed. Every person has their own method and preferences of course.

Re: Ask HN: Strategies for mentoring junior developers?

#47
post #16
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.

Pair programming works for specific people, for others it's an exercise in anxiety. Especially in the scenario you're suggesting with a senior watching a junior write code.

Yep. Pairing a senior with a junior has showed that it does not often help juniors beyond the rate they'd normally grow at on their own. It appears like pair programming is accelerating learning when in reality it can actually hinder progress.

However, pair programming has shown to accelerate growth when both peers are roughly at the same level. For some companies this means hiring two juniors and having them work together, but this isn't as common of a practice as it could be.

One solution I've found to this is to subtly pretend to be forgetful and or anxious when pair programming with a junior. This lowers my level down to their level giving them growth potential. If the junior is anxious, showing anxiety about myself in a subtle way will lighten their anxiety. This works during interviews too. Being non-judgemental and friendly work too to melt anxiety away. If I am randomly forgetful from time to time, it gives them an opportunity to shine and help out leaving them feeling good and accelerating growth. Studies show that optimal learning has roughly 75% failure and 25% success. Is your jr helping you 20-25% of the time? How I encourage this growth is I start with forgetting a bit of language syntax, then a language idiom or two, then library syntax, then parts of the framework, and so on. The key here is to not show any sort of judgement. It's 100% okay if they do not know. That's part of the point. They have to look it up and figure it out and help out and grow. By doing this their level increases. My back story usually is, "Oh Python? I don't know that language. We'll have to run through it together." works like a charm as long as I start low and find their level, instead of overwhelming them.

When pair programming with a junior I find 30 minutes to 2 hours at a time works best. It's slow going at first, but by giving them something to grow on, the second you leave them to their own devices they will continue to grow in that area. You can leave them alone sometimes for a week at a time and watch the results from a 30 minute pair programming session.

Re: Ask HN: Strategies for mentoring junior developers?

#48

Earlier quoted context omitted.

My employer does a 3-month training program that covers our full development stack, which is rather specialized for our industry. My first team didn't use any of those technologies. But the 30-some fellow students in the training program have become some of my closest friends and, in some cases, trusted teammates and mentors/mentees with various technologies. Peers are an absolutely underrated part of the mentorship…

3-month training program by a company in US is unheard of. I would greatly appreciate to know the company's name.

Most likely Bloomberg, as their tech stack is a bit unique and requires some specialized training (in addition to general C++ and JavaScript training)

Re: Ask HN: Strategies for mentoring junior developers?

#49

I very much struggled with training a junior developer that cane out of a boot camp. I couldn't teach him how to logically find an issue just by tracing the data flow. While I stagnated for years and became an "expert beginner" ( https://www.daedtech.com/how-developers-stop-learning-rise-o... ) at one company, I've never been a "junior developer". By the time I got my first job at a small company, I already had 10 ye…

It's rather easy to teach these basic skills. Breaking a problem up is as easy as that: your description of it teaches it.

The trick with newer programmers is to take an abstract concept, such as that, and then bridge it to a concrete pattern that can be visibly seen and explored. You have to demonstrate, often out loud, your thought process while you're working through a problem, much like a job interview. Also, you'll want to go slow enough they're comfortable asking questions, taking notes, and doing google searches and what not, or only having very small talks at a time like 5 min at a time small slices.

Usually you'll want them at the keyboard to learn debugging with you over their shoulder, but if their skill level is absolutely basic, then you might want to be at the keyboard, and just run over problem solving of a easy 5 minute problem. By watching you run through a debugger and watching you google search for help (bonus) will give them enough idea to start doing it themselves, then in a couple of days you can switch and have them at the keyboard.

Re: Ask HN: Strategies for mentoring junior developers?

#50
post #12

One of the best ways I found is to hire in pairs. Don't just hire one junior (or entry level) at a time. Hire two or more at once so they can help each other learn your stack. At the university I work at, this is how we handle it. We hire a lot of students to help develop our application. These students are far from entry level when we hire them. Most have taken maybe one CS class at the university level. It takes a…

As somone who started the same day as another junior developer in my first job, I second this. Just having someone who's also junior who you don't feel any shame about asking stupid questions to is killer. You shouldn't feel any shame either way, but that's sort of one of the things you learn transitioning out of a junior role.

I also had the experience of starting out a job with someone with almost the same level of knowledge as me and I can testify it was a brilliant idea. The integration into the team/company/stack is much smoother when you have buddy that is at the same position as you.
Post reply on HN