I’ve decided to write this post mainly to remind myself in a few years time of what it’s like to be a junior and how I felt I was best taught, the problems I faced and how I was helped to overcome them. I’m also hoping it will help to give others a guide of how to deal with Juniors and to maybe give other juniors a post they can identify with and to leave them feeling that they are not alone in the issues they are facing. That’s not to say that what I have to write will be the correct way to deal with every junior nor will my feelings reflect every junior developer out there, this is simply me and my experiences. That said I don’t think I am alone in these experiences so maybe I’ll be able to help at least one person .
It’s hard to teach someone something you have been doing for years. I know this because I tried to teach my younger cousin how to horse-ride some years back and I failed miserably. I just couldn’t understand why even the simplest fundamentals she could not grasp, but that sentence there is exactly where I went wrong “the simplest fundamentals”. What I meant to say was “what I THOUGHT were the simplest fundamentals”. Like many things if you don’t know it, it’s simply not simple! I ended up going into over complicated explanations, then losing my patience when she still didn’t understand, which in turn led me to begin correcting her in a harsh tone at every mistake she made, when she couldn’t grasp one aspect I’d dart to another and I even resorted to jumping on the horse myself to show her how it was done. After that she didn’t want to try again for a month as I’d knocked her confidence so badly. Clearly I was not teaching her correctly and so she started learning with a trained instructor and you’ll be pleased to hear she recovered from my disastrous attempts and is now extremely competent!
So teaching someone to ride is not the same as teaching someone to be a developer. However I do think the underlying principles apply. From what I have experienced most companies don’t have trained teachers, they have very knowledgeable and experienced seniors whom they get to mentor their juniors. On the surface this should work, but I feel *some* seniors forget what it’s like to be a junior, much like I forgot what it’s like no to be able to do rising trot. So I came up with a few pointers that may help to strengthen the mentor mentee relationship.
Confidence - This is a very delicate little cookie, it’s something I’ve personally struggled with in the past and I’m sure I will in the future. It must be handled with care. I’m not saying pussy foot around them, just don’t come down on them like a ton of bricks if they get something wrong. When I harshly corrected my cousin she just became even more anxious and nervous, made even more mistakes and it all just went downhill from there. Show some compassion, guide them in the right direction one step at a time and empathise with their situation, it’s highly frustrating feeling like you don’t have a clue what you’re doing.
Simplicity - Don’t get all caught up in the technical spiel, sure it’s good to know why something behaves like it does or why you can’t call that particular method at that point but ask yourself “Is this something they really need to know right now?” If the answers No then don’t overload them, what they are taking it at the moment is enough to contend with without over complicating the issue.
Break things down - One of the things I’ve found hard to do as a junior is break a large problem down into many smaller problems, I’d get all caught up in how I was going to solve this bigger problem that I missed key parts and it all felt a little bit too daunting to approach. My mentor at work asks me to talk through the big problem, then asks me to talk through again stops me when he identifies the first problem I should be addressing and outlines it to me. We then make a list of the all small manageable problems and I feel like I can solve the big one.
Do not take over – One of the things I think senior members find the hardest is not to take control of the mouse and keyboard and show them what to do. I’m sure some Juniors would relish a mentor completing the problem in hand for them but then what have they learnt? Let them make the mistakes, if they begin to write something and delete it encourage them to continue or talk through what they were going to do. When it doesn’t work they will have to fix it and then they will understand why it didn’t work. Understanding why something didn’t work is great. You get a better understanding of, say, that particular method and what it actually does.
All of these points are subjective to someone’s personality type and their own aptitude, i.e. you may be dealing with a very confident junior whom doesn’t need you to simplify things in which case most of my points won’t apply, however I don’t believe all juniors to be like that and so some of the above may help.
It would be interesting to know what are your experiences are as either a mentor or mentee? What works for you? How can I be a better mentee?
A thanks to my mentors for putting up with me!