Live data from Hacker News

Ask HN: Strategies for mentoring junior developers?

news.ycombinator.com

61–70 of 74 posts

Re: Ask HN: Strategies for mentoring junior developers?

#61

Earlier quoted context omitted.

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)

A buddy of mine did a 3 month training program at BBG after undergrad, so I can confirm that they have a program of some sort, complete with an independent project. He also said that his class wasn't all on the same level when it came to experience, so the collaboration with others learning new technologies with x years in the industry was invaluable.

Re: Ask HN: Strategies for mentoring junior developers?

#62
post #34

Don't write code. Break down a feature into tasks that you would take 30 mins or less to accomplish. Have them build each task one by one. If they take longer than 1 hour, you know that they are stuck on something so you can go help them. While they are working on 1 task, you are figuring out the next 2 tasks. Your job becomes quick prototyping to make sure the tasks are feasible. Eventually, after many small merge r…

Sounds super interesting, though it's not something I've heard of before. Is this a common practice I haven't heard of or a process unique to your company?

Re: Ask HN: Strategies for mentoring junior developers?

#63
post #62
post #34

Don't write code. Break down a feature into tasks that you would take 30 mins or less to accomplish. Have them build each task one by one. If they take longer than 1 hour, you know that they are stuck on something so you can go help them. While they are working on 1 task, you are figuring out the next 2 tasks. Your job becomes quick prototyping to make sure the tasks are feasible. Eventually, after many small merge r…

Sounds super interesting, though it's not something I've heard of before. Is this a common practice I haven't heard of or a process unique to your company?

It's not a practice we have read anywhere, it's something we experimented with and worked

Re: Ask HN: Strategies for mentoring junior developers?

#64
post #16

Earlier quoted context omitted.

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 to…

You’re speaking rather matter-of-factly about the effectiveness of pair programming. Were there studies done that you’re referencing, or is this based on your own experience?

Re: Ask HN: Strategies for mentoring junior developers?

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

I would leave, if someone made me do pair programming.

Have you ever practiced it? What’d you dislike so much? I’ve had great experience with it, and less than stellar ones too. It isn’t easy but it can be quite fun.

Re: Ask HN: Strategies for mentoring junior developers?

#66

I've seen several people mentioning pair programming, which I haven't found useful (too much time wasted while one person is coding the "easy" parts, and not enough time for the more experienced person to think about the difficult parts. YMMV.) In my experience, the most helpful way is 1) code review. Several iterations of all new code. Efficiency, style, correctness, smaller functions, don't repeat code. This takes…

one of the pair can tend to other things while the other is hammering out the “easy” parts... as for the “not enough time for more experienced person to work through the hard parts”, isn’t the point that it’s a partner activity? the idea being together, you’re going faster

Re: Ask HN: Strategies for mentoring junior developers?

#67
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…

> anything they ask, tell them it’s now their role to document it.

Depending on how you interpret it, this advice is either great or terrible. If you read this to mean that the new person to a project should start out by documenting the things they don't know, then this is bad:

- There are definitely Open Source projects which have this attitude and don't write user-facing documentation, expecting new-joiners to write it. This makes it both hard for a new person to join a project and hard for the project to market itself.

- If you are just starting out on a project, it can be hard to know what are the key concepts that a person should really know in order to be efficient and what is incidental. It may or may not be a good idea for them to spend a bunch of time documenting ways in which your test setup uses selenium after running into some really weird end-to-end test bug.

- If you don't know something, it is really hard to write a coherent explanation of it. You have to both empathize with ignorance and have the knowledge. Otherwise, you can just end up stuck/lost. If you don't have anyone willing to help you un-stick yourself...

But that doesn't sound like the interpretation you mean.

From the rest of your post, it very much sounds like you mean that the new person should turn a vocal explanation into a written one as a way of both confirming their knowledge and passing it on to others. This sounds great. It will generate lots of draft docs though, so you probably need some habit or person to keep them organized and keep them from getting stale.

Re: Ask HN: Strategies for mentoring junior developers?

#68
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…

> anything they ask, tell them it’s now their role to document it. Depending on how you interpret it, this advice is either great or terrible. If you read this to mean that the new person to a project should start out by documenting the things they don't know, then this is bad: - There are definitely Open Source projects which have this attitude and don't write user-facing documentation, expecting new-joiners to writ…

I certainly try to structure their documents a lot, and point them at the people who can answer their question -- although most of my energy is spent not assaulting anyone refusing to document properly with ”but I know it, so it's fine, you just have to ask me” or ”but it’s on an email somewhere, is that not enough?”. The best audience for the document is “who you were two days ago” and they generally have some empathy for that person for a day or two.

Re: Ask HN: Strategies for mentoring junior developers?

#69

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.

I can confirm Bloomberg does this, u/quackware is correct. I went through the program myself recently, and it's actually a very nice dive into a unique full stack -- and because you take the training with a large group of peers, it's a good way to network as the company/make friends in a new location, especially if you're fresh out of a grad or undergrad program.

I know there were some issues with the program in the past (for instance, at one point you had to maintain at least an 80% "grade" in the program or you'd be cut loose from the company) but Bloomberg has really invested in the program recently and it's much more trainee-friendly these days. Lots of emphasis on cooperation and teamwork, and even though there are some solo timed "assessments" they're about the right level of challenge, and the goal is understandable -- they're there so the trainers can get a feel for what lessons work and what lessons need fixing.

Anyway, it was invaluable to me. I can't imagine jumping straight into a dev role at a company fresh out of college.

Re: Ask HN: Strategies for mentoring junior developers?

#70
Make sure you foster a culture of asking dumb questions. It should be clear to all of your developers that they should ASK whenever they are stuck, or don't know something, or when they need a rubber duck.

We have a "stupid questions" chat channel at work, and juniors and seniors alike are expected to use it when they need advice. If new developers see everyone putting their egos aside and asking for help, they are likely to follow suit.

Post reply on HN