Finding A Software Developer Mentor When You're A Newbie
Tags: beginners, career, programming, productivity
Published: 2021-02-02 09:55:38

Your first job as a software developer can be very challenging. There is so much to learn about coding and building a career in the technology industry. Doing it by yourself can be overwhelming.

When I started my first job, one of the senior developers at the company I worked for, offered to help me learn and grow into a good software developer. He was a more experienced guide who had overcome the same problems I was facing and provided an inspiring example to follow.

If I needed any useful tips on coding I went to him. If I needed any advice on navigating a career in the technology industry I went to him.

That senior engineer became my mentor and without him, my software development career would have been difficult at the start.

Most people have to find a mentor themselves. Most people, however, don't know how to find a mentor. What should you do? Where should you start?

### What is mentorship?
Before we talk about how to find a mentor let us understand what mentorship is and what role it plays in your career.

Mentoring is relationship-oriented and occurs when a person who has years of experience in a field provides guidance on career progression to an individual with less experience.

The needs of the mentee are important in this relationship, and the mentor helps wherever possible in this development-driven relationship.

It is a long-term relationship as opposed to on-the-spot advice.

There are many benefits of having a mentor: boosting your confidence, helping you get control of your career, and teaching you important life lessons.

### Before searching for a mentor
It is helpful to ask yourself what you want from a mentor before starting your search. Identify clearly what you think are the reasons you need a mentor. Write these reasons down as a list. This list will be useful in your early conversations with potential mentors.

Setting short term and long term career goals for yourself will also be useful. It will help give your mentor an idea of the direction you want your career to go. As an example here is what my list looked like in the early days of my career:

* Short term - Learn how to write clean code.
* Short term - Learn how to write good automated tests.
* Short term - Take good ownership of solutions from my machine to production.
* Short term - Develop a deeper understanding of the programming languages and frameworks our company uses.
* Long term - Able to input and drive architectural decisions.
* Long term - Learn about technology leadership.
* Long term - Build a profile external to the company (start a blog, speak at conferences)

Don’t leave things open-ended. As you will learn later in this article you will be responsible for driving the relationship between you and your mentor. They are there as a guide to support you and your career.

### Where to find mentors?
When you start your search for a mentor look for someone who has been where you want to go. Identify people who are good at teaching and are always keen to share knowledge.

The first place to look for a mentor is within the circle of people you already know. It's much easier to find a mentor among people you already know than from among total strangers.

These are the places that I would recommend you try and identify your potential mentor:

1. Your current company.
2. Meetup communities, conferences, and coding workshops.
3. Open-source community.
4. Contacts of friends.
5. Online mentorship platforms.

**Your current company**

Your current workplace is usually the most ideal place to look for a mentor. There are likely to be some experienced software developers working there. They already know you, have visibility into your work and will be easier to access when you need help. I highly recommend looking for a mentor within your current company if the situation allows.

**Meetup communities, conferences, and coding workshops**

Meetup communities, conferences, and coding workshops usually have people who are keen to share their knowledge. Especially people who are speakers at the events or facilitators of the workshops. You should identify groups that align with your goals, join them, attend the sessions frequently and establish good relationships with the members. Eventually, you will be able to identify potential mentors who you could approach.

**Open-source community**

Getting involved in an open-source project can help in the search for a mentor. Identify an open-source project that you are passionate about and start making contributions to move the project forward. Your contributions to an open-source project do not have to be complicated coding solutions. Most people start at the basics - perhaps contributing to the documentation of the project. Once you are part of the open-source project you will start interacting with other contributors of the project or the project maintainers. Eventually, you will be able to identify potential mentors who you could approach amongst this group.

**Contacts of friends**

If you cannot identify anyone who could be your potential mentor, your next best approach is to ask your friends if they know any software developer who would be a good mentor for you. Your friends are likely to have contacts that work at their companies that they can connect you with. It may be someone you don’t know but your friends can help with the introductions.

**Online mentorship platforms**

There are now some online mentorship platforms that exist. This is also another way in which you can find a mentor. Some of these platforms are paid platforms and some of them are free. Examples such as CodeMentor, Coding Coach, and MentorCruise exist. A quick online search for “software developer mentorship” will give you many of these platforms and you can choose the one that suits you.

### Asking someone to be your mentor
Once you have identified your potential mentor you must ask them to set up a formal mentor/mentee relationship. It is important to first build a relationship with the potential mentor. It will become easier to ask that way. Take it slow, some trust-building may be required before you start. 

To build a relationship with your potential mentor offer to take them out to coffee or find a time to get on a call with them. Make it as easy as possible for them to connect with you. Build rapport. Find something you have in common.

Once you’ve built up a relationship with your potential mentor you should ask them formally to become your mentor. When you ask you can say something along these lines - *“You're someone I look up to. I’m new in this software development journey. I’ve enjoyed the discussions we’ve had in the past and felt your opinions are always really insightful. I would highly appreciate it if you could help me in my software development journey. Can I set up some time to talk about areas I'd like to grow in and how you could potentially help, as a mentor?”*

If the response from the potential mentor is positive and they are happy to chat then you can try it out with one or two meetings and see if both of you would want to continue.

If the response from the potential mentor is negative and they are unavailable don’t give up. You might not succeed on the first try and that is completely understandable, people are busy. Just keep going. Repeat the process and find another potential mentor.

### I have a mentor now. What next?
Once you have a mentor you must interact with them on a regular cadence. You can discuss and agree on the time commitment with your mentor. As the mentee, you will have to own and drive the scheduling and meetings.

Set defined goals to work on with your mentor. These are great motivators for constant improvements. Do the work, follow up, commit to it. Give feedback on the advice you receive from your mentor.

Always come to your mentorship meetings with questions. Part of being a mentee is being energetic and clear about what you are seeking to understand.

Once someone agrees to be your mentor here are some things they can do for you:

1. Set time aside to respond when you have questions.
2. Do some code reviews of your code.
3. Pair program with you. 
4. Send you resources (books, courses, podcasts) that align with your goals. A mentor can be an incredible resource when it comes to finding the best courses, books, sites, and projects. Instead of having to figure everything out from scratch, you’re getting a competitive advantage by getting the landscape of resources laid out for you.
5. Be an accountability buddy for your goals. 
6. Help you plan your career.
7. Going deeper in the discussion of technologies, languages and frameworks, basic concepts, and so on
8. Help you stay focussed in the complex world of software.

Be cognisant of your mentor’s time and be as prepared as you can for your meetings. Always be on time for your scheduled meetings with your mentor, offer to pay for coffee if you can, and do anything else you can to say you appreciate their time.

Over time you will want to review if the mentorship relationship is still working. To constantly check if it is still providing value for both of you.

### Final thoughts
I've been mentored, been a mentor, and have observed software developers around me grow through mentorship. Having a more formal mentoring relationship can help you grow faster and in a more focused way.

Whether you're just out of university, just graduated from a coding bootcamp, or self-taught, you'll need all the help you can get to become the best developer you can be.

Many people want to help and share their knowledge. All you need to do is ask.

If you enjoyed this article please subscribe to [The New Developer](https://thenewdeveloper.substack.com/) to receive similar articles when they are released.