There are lots of senior developers out there who wonder what to do with their career after many years of experience.
They could go into management and their day would typically consist of lots of meetings with key stakeholders across their company.
They could consider consulting if they want to keep coding the majority of the time. There are many other alternatives too, but for now let’s focus on these two broad cases. The first being management and the second being programming as a consultant.
I would argue that in both these cases, mentoring more junior engineers will be required.
As a manager, you might not be getting involved in detailed code reviews but you are likely to be coaching your team on how to navigate their career trajectory, you’ll be keen to understand what motivates them in order to incentivise their best work on your team, you’ll also advise them on how to support junior members of their own teams.
As a consultant you might be working with various engineering teams to support them with actual coding, upskilling their team or more broadly technical direction. Ensuring that your client is successful will mean having an awareness of the team you’re working in, including junior members of staff.
I want to argue that mentoring and supporting more junior developers is key to being a successful senior developer, manager and consultant.
I also assert that it might be challenging for engineers with many years of experience who have been working largely by themselves to suddenly be expected to hold expertise about nurturing more junior talent.
As a hobbyist programmer myself, having started teaching myself how to code just 9 months ago and aspiring to become a junior developer, I understand how it feels to be in a position where you are seeking mentorship. I also have direct experience of joining a company as a junior developer only to realise that there was little means to grow in this role.
I would like to offer my humble advice to more senior developers who feel unsure or unconfident about how to mentor juniors.
When it comes to mentoring, the first thing I would ask is what kind of work I aspire my developer to do. What kind of problems should they ideally be able to solve independently? Once I have an idea about this, I have a clear goal in mind about the kind of things they will need exposure to in order to build both their expertise and confidence to one day independently fulfil this role.
The close second question I would ask is, what kind of learner is my mentee? I myself like self directed learning where I am given a lot of freedom and independence to forge my own learning journey. Someone like me needs a mentor who is available to answer questions and pair programme with when they get stuck. Apart from that I feel like this kind of person, who tends to be highly self disciplined prefers less structure than more. Instead of telling them what to do, you can give them problems to solve. These might be actual business problems or side projects.
Others may prefer a more structured plan. This is where understanding how they learn best is wise. Are they visual learners? Therefore will YouTube tutorials and diagrams be best for them? Do they prefer reading and writing? Can they learn how to read technical documentation, blog posts, books and potentially write about their learnings? Understanding how someone learns best will be most efficient to advising them on which resources to consume.
No matter the un/structured nature of their preferred learning style and means by which they learn, I would contend that every junior needs pair programming. And frankly I think the more the better. There are effective ways of doing this.
I prefer leading when pair programming. That means that as a junior I am in control of the keyboard and mouse. As a mentor, making sure your junior feels comfortable to make many mistakes is essential. It might be frustratingly slow for you, but take a deep breath and try and empathise. You will see progress within a matter of days and weeks which will show you that your pair programming with them is having a really positive effect.
Lots of praise is important. Reminding your juniors of the great progress they have made, even just one improvement compared to the week previous, will help keep both yourself and them motivated.
Encourage questions, no matter how stupid to be asked. You could volunteer your own very basic, if not outright silly questions and try and find the answer out together, in order to make them feel more comfortable.
Building a relationship of trust where both you and your mentee feel you can openly and honestly express yourselves is pivotal. If you’re not sure where to start, you could try by asking them a few questions and taking the time to listen carefully to their answers.
Questions could include:
- What are you finding challenging?
- What are you proud of?
- What are you enjoying the most?
- What would you like to improve?
- What are you most excited about for your future learning?
- What can I do to help?
Asking these questions regularly, perhaps even at the end of every week, will give you the information you need to iterate and improve upon every week spent supporting them. Soon it will become clear what their formula for learning success is and the kind of optimal support they need on that journey.