Software development is not an easy field. It’s fantastic, intriguing, engaging, and at times overwhelming and demanding. Dipping your toes in the field is enough to feel anxious and, at times, lost. And nailing your first gig is equal times exhilarating and panic-inducing.
Aside from knowing how to code, every developer has to know the basics of project management, have communication skills to assertively present information as well as understand what is asked of them, and have the resilience to work under pressure.
It’s a shame that many young talents with incredible ideas leave the field, disappointed with their first experience. In some cases, it’s to be expected, that their idea of what software development is doesn’t align with the reality of the business.
But in other cases, it’s because they got unlucky, bad managers and a lack of guidance can sour even the most optimistic talent, scaring them off from this wonderful world where creativity meets problem-solving.
The Don’ts of Mentoring
Don’t Leave Them Alone
Just because someone did an outstanding job in a coding interview doesn’t mean that they are capable of undertaking a project on their own. The question is, how much time do we allocate to train and help a junior developer?
Enough time, obviously, but what does that mean? it depends on the developer, some juniors revel in the opportunity to be independent and only need help when they are stuck. Others require more oversight and constant checkups.
The problem arises when their supervisor assumes that everything is going smoothly because the junior isn’t asking questions. While that very well may be the case, it could also be that the developer is afraid of getting reprimanded for asking too many questions, or they don’t know if it’s okay to ask.
Ask them how they are doing, ask them if they are having difficulties with anything, and let them know that seeking help is okay and that you are there to provide any support they may need.
Don’t be a Helicopter
Frustration is a really powerful emotion, a bit of frustration can motivate people to keep going. Anyone who’s ever lost in a game and said “just one more time” can attest to that. On the other hand, too much frustration is detrimental; it can lead to paralysis, stress, and outright quitting.
Some mentors feel the urge to supervise everything, even going as far as solving problems for themselves in the hope that the junior will learn vicariously. And that’s great. Feeling supported is important for someone who is just starting out.
But the challenge is important since it helps the junior developer think outside the box, question themselves, and search for answers, all skills that will help them down the road.
It took me a while to understand that it’s important to resist the urge to help people immediately. Sometimes you have to let things play out, even if it means waiting a bit longer.
As long as the junior is motivated, looking for answers, and trying out new solutions, you can let them be or provide some quick feedback. On the other hand, when you see them frustrated, lost, or paralyzed, that’s when you should definitely provide a helping hand.
Don’t Give Away The Answer
Questions are learning opportunities, either to acquire new knowledge or to develop problem-solving skills. Some questions, like “what’s the function for X or Y?” are straightforward. You either learn something or remember something.
Other questions like “I’m not sure which algorithm would be best” are great opportunities to help our junior developer grow. Instead of giving a straight answer, take a few minutes to explore their thinking process by asking the right questions.
What do you want to accomplish? Why are you doing it like this? What alternatives have you considered? Use these questions to facilitate metacognition (thinking about thinking). As the junior developer elaborates on the answers, they are reviewing their thinking process, which in turn fosters alternative thinking.
In other words, sometimes they already know the answer, but due to inexperience or anxiety, they get stuck. The more you engage them with this kind of question, the more you help them develop cognitive abilities that will help them reach answers. Some of you might already do something similar called the rubber ducking method.
The Dos of Mentoring
Do Teach Them The Basics
It should go without saying, that every successful work environment develops a culture with certain rules and traditions. Identify them, write them down and relate them to the junior developer.
For example, different teams might have different takes on how to comment code. A traditional team has a very different dynamic than a DevOps team. You might use a certain slang that might confuse outsiders. The more you focus on teaching them these idiosyncrasies, the faster they will be able to work with the group.
Do Give Support
Beyond technical knowledge, mentors are there to provide emotional support and guidance for junior developers. You aren’t a therapist or a coach, but you’ve probably felt frustrated, stressed, and worried, and that’s enough to understand how a new developer might be feeling.
Nothing can prepare you for your first job in software development. It doesn’t matter how much you read about deadlines, it pales in comparison to actually having to meet one. Some experiences you have to live firsthand.
I’ve seen young developers be overeager, working all day long and burn out as a candle ignited with a flamethrower. I’ve seen developers grow isolated and bitter due to miscommunication. I’ve seen people letting stress get the best of them and explode at the slightest issue.
Emotional intelligence is extremely important in this kind of environment, and we can help others develop the skills necessary to cope with the demands of our work.
Do Listen To Them
It might be easy to dismiss the opinion of a junior developer because they lack experience, or because they don’t see the big picture. But quite honestly, you might be missing some very important insights.
Remember, juniors are coming into a project fresh, with very little actual experience. That means that they haven’t learned good practices, but it also means that they haven’t acquired any bad practices either.
They might just be able to see something that we, as people inside the project, are unable to see. Or maybe not, but instead of shutting down their idea, explore with them why it isn’t feasible.
Whatever may be the case, you are teaching them that it’s safe to voice their opinions and that they have value as a team member. They aren’t here just to be a code monkey, their opinions and insight matter.
Why Hire Junior Developers
Not only are junior developers cost-efficient, but they are also people with a lot of growth potential. For long-term projects that means that you can see them grow along with you, specializing in the areas most needed for your processes.
Junior developers who grow alongside your project are very loyal and committed to both the end product and your business.