A Code Mentors Handbook
If you’ve ever had the joy of sharing a bit of knowledge with a peer, and seeing their face light up when things start to click into place, then you’ll definitely enjoy a career in mentoring.
A lot of my working career has involved being the sole developer in a team. I found a great quote that definitely rings true, and shows that even when you are not being actively mentored, you are still in-fact being mentored:
My mistakes have been my greatest mentors — Steve Maraboli
I consider mentoring to be quite different from training. With training you are being taught how to do a particular task. However, with mentoring you are taught how to improve what you have been trained to do. So the vast majority of you will have been mentored by your teachers, and this would have been during your school years.
How do I start mentoring?
Mentoring isn’t easy! To be able to communicate different concepts and ideas is hard enough. But to be able to relay these to people with differing levels of knowledge about the subject and different ways of learning is the real challenge. You don’t need to be an expert developer (although that would be an added bonus), but you do need to be able to point out improvements without being too overly critical. That could lead to the developer doubting their ability, and you don’t want to start explaining Imposter Syndrome during the early years of career development 🙈
There are a few different website that can help you when you want to get into mentoring other developers.
Try your hand on code challenge websites. On these websites you are given a set of requirements that you have to fulfil in order to get a set of unit tests to pass. This is good practice to see different ways in which you can solve problems. Once you have found a solution, then other developer solutions will be available for you to look over. You may find methods you never knew existed, or some clever implementation that you wouldn’t have thought of in a million years.
Here are the sites that I use:
I’ve found that it is great to practice code challenges, and once I have found a solution try and explain it in different ways according to the audience. For me these audiences will be:
- Junior developers
- Senior developer
- Project managers
Each of these different roles require the information in a particular format.
Junior developers will find it useful to know how the solution went from an idea to implementation. This may include research you had to do in order to overcome obstacles, or reading documentation on specific language features. With this knowledge the junior developer can follow similar patterns to develop their own solutions.
Senior developers sometimes mirror the requirements of the project manager. They are aware of what risks may arise from a solution, and they will want to know if you have considered them. We can all write code, but writing secure and stable code is an art. Communicating potential risk factors increases the level of awareness so that you don’t end up deploying potentially exploitable code 😅
Project managers and stakeholders may not be interested in the actual implementation of a solution, but instead be more interested in how it solves the problem, and if there are any risk factors.
It is a good idea to work out your own solution to a problem before mentoring others. Although this can make you biased when suggesting changes, it means that you are improving your problem solving skills at the same time as trying to improve someone else’s.
Also, don’t assume that the solution that you came up with is the best.
There’s more than one way to skin a cat
The role of a mentor is to guide your student to an optimal solution. You don’t want to hold their hand and tell them the solution that you implemented. Lead them towards relevant documentation that you think will help them solve the problem. Tell them about previous experience you have had which echo the problem you are trying to solve. And be mindful that you may be communicating with someone that has not been through the ups and downs that come with working as a developer.
As I said previously, mentoring isn’t easy. But once you get to a certain level in your developer career, I think it is essential that you start sharing your experience and imparting your knowledge to others. This will encourage more people to get into this exciting line of work.
And perhaps you’ll see your student one day, and hopefully they’ll buy you a drink to say “thank you” 🍾