How would you mentor new entrants into tech in general and programming in particular?
So on a different platform, I came across heated conversations about more experienced tech workers being unwilling to mentor new entrants. While I thought that was an unfair accusation, I thought to ask a wider audience their views and thoughts on mentoring upcommers. Do you mentor anyone? Were you mentored? How much impact does mentoring have on career growth?
So I come from a 3rd world country where many people lack the basics. Covid-19 and remote work opened a lot of opportunities for local tech folks such that $15/hr immediately made you very comfortable here. This was after years of earning about $2k/yr from local employers. A lot of young locals are now rushing into tech with the aim of earning such "mouth watering" pay. However many are not willing to put in the work. They literally want you to plan a learning path for them, teach them, get a job for them and in some cases work that job for them
I think mentoring is incredibly important-it's how the field.stays vital. I've done it in my career through code reviews, architecture discussions, pair programming, and for hobby stuff even just writing blog posts about how I got stuff to work.
In our company mentoring was done by selecting easy bugs and letting the new hires solve them. And doing pair programming if they got stuck on something. Also one dev is given the responsability and time to mentor them for the first few months.
This depends massively on the abilities of the person you're mentoring.
If they're brand new to programming, they're probably not going to be working on production systems. They might be given tasks to create tools and utilities that might be used by the team, rather than the customer, or they might be given exercises to help them understand programming. The most important thing is to get the right mix of training and programming. Following online tutorials alone is not enough to get someone up to speed - they need to be given software to create without following a guide. They need to have someone they can come to when they're stuck, and they will get stuck. They need frequent code reviews to check they're on the right track. It will take a fair amount of mentoring, and you can't expect them to be able to contribute positively to the team for a while - but when they do get up to speed, they will be extremely familiar with the team's tools, technologies and products.
If they've done some programming before, then maybe they can be let loose on production code. But they will still need frequent detailed code reviews, they will still get stuck and need someone to come to for helpl
When they need help, they do not need someone to show them the answer - that doesn't help them. They need someone to point them in the right direction. To do that, you need to understand why they've failed so far. Which part of the process have they got stuck on. Is it that they haven't understood the problem? They haven't understood the solution? There's a piece of code or a library function they're not familiar with? Work out where they're stuck, and then put them right on the specific thing they're stuck on. Then, ask them what they plan on doing with the new information you've given them, and make sure they know what to do next.