by Ariel Camus
The five mentors every software developer needs and how to find them
A guide to finding support as a software developer
Learning to code and landing your first job is a daunting task. And everyone who has tried it will tell you that, even though the technical side is hard, what’s really hard is keeping your motivation and focus strong, day after day, until you learn enough so that you can land your dreamed job. This process can take a year or more for most people.
Having a good mentor in your life can make that process a lot easier. In fact, most people will tell you that you MUST have a mentor if you want to realize your full professional potential. However, our current expectations from mentorship are sometimes misguided, and they are preventing us from really taking advantage of this powerful idea.
Instead, I want to suggest a new way of thinking about mentorship and how to find it in your life no matter where you are in the world.
But before we get into that, let’s talk about what’s wrong first…
One person can’t give you all the mentorship that you need in your life. So, trying to find that one perfect person is an impossible task. Because it seems like an impossible task, most people give up in their search for a good mentor.
Instead of looking for one perfect mentor, let’s talk about the different ways a mentor can support you. Then let’s assign each one of those roles to a different persona, and let’s discuss how to find them. Once you look at each role independently, you will realize that finding them is way easier than what you thought.
Mentor #1: The Anchor
One of the hardest parts of becoming a successful developer is keeping your motivation strong. In fact, you will find days where all your effort will feel purposeless and you won’t be able to see the light at the end of the tunnel.
Having someone close to you during those days to remind you about the meaning of what you are doing, or just to listen to your frustrations, can be incredibly powerful.
A great way to find this kind of mentor is in local events where other developers socialize. For example, freeCodeCamp local study groups are a great place to start. If there is no local group in your town, you can start one. Building strong relationships with people who have recently gone through the same experience will help you keep you looking ahead all the time.
As the founder of a school for remote software developers that works with students from all around the world, I know that this is especially important for those who are learning from home or online. That’s why we pair advanced students with new students and help them set up weekly calls so that the new students have a listening ear who understands the frustrating moments they are going through.
Mentor #2: The Champion
Imposter syndrome is a real thing. And as you make progress in your learning path, there will be days where you will wonder if you really have what it takes to be a successful developer. Not only that, but many people will also struggle with complex issues such as financial and health difficulties that will put their goals at risk.
In those moments, what you need is someone who deeply believes in you and wants you to realize your full potential. And it’s because they strongly believe in you that they will be willing to help in ways that you can’t even imagine.
This person doesn’t have to be someone who works as a software developer. Not even someone who knows the industry well. This person is usually a close friend or relative who can provide financial and motivational support while you go through your learning path.
Even though learning to code is a full-time job, I constantly remind the people that I personally mentor to make time to socialize with their families and friends. It’s only in those close circles where they will find their champions.
Mentor #3: The Muse
This mentor is the one that will inspire you to achieve excellence at the craft of building software and will show you what’s possible once you unleash your full potential. They will also show you how the best developers in the world work and will push you to keep expanding your knowledge to new areas and technologies.
Since this role requires someone who is a real expert at the topic, many people think that they can’t find a person like this around them. The reality is that these people can easily be found on the Internet. You just need to find the conferences focused on the technologies that you want to master and take a look at who the speakers are. You can find articles written by those speakers and videos of their presentations online. Since they are thought leaders and experts in the field, their talks will feel incredibly inspiring and will help you stay up to date with the latest advances.
You should also keep in mind that you are not expected to be an expert when you join your first job. Therefore, you will want to make sure that the company that you work for can also give you access to more senior developers from whom you can learn.
This is something you should ask about during your job interviews. Remember that interviews are a two-way process: you are also interviewing the company, because a job is not just a way to earn a salary, but a place to continue growing.
Mentor #4: The Partner
This is not a typical role that you would expect from a mentor. But because mentorship is about helping you realize your full potential, you want someone who can support you in the little moments of everyday life.
In the end, the devil is in the details — small but mysterious bugs in your code, your eagerness to learn the latest shiny technology, and the constant distractions from social media. They will all play a negative role in your learning journey, and you want someone to hold you accountable in those tiny yet productivity-killer moments. Who is better for that than a coding partner that you can closely work with?
I’m a huge advocate of pair programming as a way of bringing this kind of mutual accountability to the learning experience of new software developers. In fact, at the school that I lead we pair our students with each other and they learn collaboratively by doing remote pair programming full-time.
Even if you don’t have someone working with you all the time, you can benefit from reaching out to local or online communities. Join a video conference or meet at a coffee shop at the same time every day. Even if you are not working on the same code, you will find that having a shared screen and microphone (or a table) will add enough peer pressure so that your level of distractions stays low.
Mentor #5: Yourself
Finally, you also need to become a mentor yourself. Mentoring other people won’t just only allow you to give back, but it will also help you reflect on everything you are learning and to acknowledge how much progress you are making in your own path.
As I mentioned before, we pair our advanced students with new ones so that new students have weekly access to their anchor mentor (see mentor #1). This not only helps the new students but also the more advanced ones who have to mentally organize all their own recent learning experiences in order to provide good advice to their mentees.
After a couple of months learning to code, even if you feel like you don’t know enough, you should join some kind of online or local community where beginner programmers gather. Get close to those who are taking their first steps and offer your best advice. Just by talking to them you will start seeing how much you have recently accomplished and learned, and that will give you a boost of motivation to keep moving forward.
Staying motivated and focused is the hardest part of learning to code, and mentors can play a big role in finding the support that you need. However, you need to understand what the role of a mentor is so you know which kind of support you are still missing. Are you ready to find your five mentors?