How to Find Your Perfect Mentor

Presented by Amina Adewusi at You Got This Birmingham 2020

Video hosting kindly provided by Mux - video for developers


These transcripts were captured live by a captioner. As such, there may be small errors. If you spot any, please feel free to submit a pull request with amendments.

Good morning, everyone! Hi, it's great to be here. My name is Amina. I feel really passionate about You Got This. I was here at last year's conference sitting where you are. I actually came with my husband and my son, who was one at the time. I wasn't organised to buy tickets - organised enough to buy tickets for them, so we just rocked up, and we weren't really sure we would be allowed in, but I was so bowled over when the person at the welcome desk so kindly welcomed us in, and said, yes, of course you should all come. So I feel this is a conference where they really put people first. I love that we have this conference in the UK for early careers, so thank you very much to everyone who put it together. [Applause].

So, at last year's conference, I had been coding for a couple of months. Since then, a lot has changed for me. I continue teaching myself how to code. I got my first software engineering job. I now work at The Guardian as an associate software engineer on their digital fellowship programme. I was lucky to receive a lot of support on my coding journey from many, many developers who acted as mentors for me. This meant that I was able to teach myself how to code. I didn't have to spend a penny, and I managed to do this whilst working full-time, and with my care responsibilities. I went back through all of the messages that I had exchanged with developers whilst teaching myself how to code. I counted exchanges with 60 developers who helped me. Some of those people gave me one code review; some answered a few questions over the phone; a few paired with me every week.

When I look back, I feel exceptionally lucky. Upon further reflection, however, I have to admit that not one of those 60 developers came to me. I have never received an email saying, "Hey, Amina, I heard you need some help. When are you free?" I had to initiate all of those relationships. I had to reach out. I had to ask for help. You can create your own luck on your coding journey, and I want to show you how. It can be difficult to define mentoring. I see it as a learning relationship, usually between someone with more experience in the area that you want to learn about.

But there are so many different types of mentoring, and I believe you can create whatever works best for you. Personally, I've used mentors for two main things: the first is technical help; and the second, career advice. So, I have had mentors that I've paired with who have given me code reviews, or who have just answered a technical question. I've also had mentors who have looked over my CV and cover letter who coached me on how to get a job, and, importantly, motivated me when I felt down.

Incidentally, the title of this talk is a misnomer. You're unlikely to have one mentor who would meet all of your needs, and, in fact, I advocate having several mentors. I'm often taken aback by how advice can differ so much from person to person. And I found that, by speaking to several people, I get a richer experience. Seeking mentorship generally means that we have some sort of goal. I think getting specific about this goal is really, really helpful. For example, instead of saying, "I want to learn how to code", we could say, "I want to learn this language or framework to build this project, or to complete this kind of technical test." Getting specific can help us consider where best to find ideal mentors, and helps us craft a clear call to action.

I made a big mistake with this last year. Around this time last year, my goal was to learn how to code. Or at least I thought it was. So, when I approached people asking for help, I got responses like, "Have you built this kind of application?" Or, "Let's build this together." It was only a few months later that I realised my goal was actually to get a job as a software engineer which required a completely different set of actions on my part.

When I started learning about the job application process, I was surprised to realise that the learning I had been doing had not prepared me to pass a technical test which was often needed before I could even speak to an engineer, let alone interview for a job. Once I realised this, I completely pivoted my learning plan and focused solely on technical tests.

Upon reflection, I would have saved a considerable amount of time had I done the two following things: I wish I had spent more time introspecting. Asking myself what do I really want to achieve? What would my me happy and what is most important to me? The second thing I would have done differently is I would have spent more time researching what getting a job involves. There are so many blog posts online, so it wouldn't have taken me long to realise that I needed to develop a certain skill set to reach my goal. Doing these two things, introspecting and researching - wouldn't have taken me long, and it could have taken me months.

What I've learned from this is that the answers we get from our mentors are only as good as the questions we ask. Asking the right question can save us time, money, and a lot of energy and motivation. So, we've got our potential goal. How do we initiate contact with a mentor?I'm going to run through some of the different online and in-person platforms that we can consider. I will note why each platform is particularly good to use, and how I think we can use it.

The first is open source. If you have a technical goal that you're seeking help on, this could be a great channel. You may be able to work on a codebase that has actual users in a team of developers following a normal development process. This is likely to give us a more realistic experience of what a typical developer would do day-to-day rather than completing a side project.

The best open source communities will give you code reviews. They may have chat rooms where you can seek further help and find someone to pair with. It can take time to find the right community for you. I love GitHub's advanced search feature where you can search by language, and even get really specific and search by the number of closed PRs in a certain time period to see how active the repo is. Once you find a few repos that you like and you've tried out, you can try reaching out to the most active contributors and see if they're willing to help. Being an active contributor can be time-consuming, so they might not be available, but they might know someone who is. I did just this when I was struggling to install a new open source project, and ended up pairing with that person on a weekly basis.

I hypothesised that a lot of open-source contributors would be doing this work in their free time. Therefore, this makes for a really compelling set of potential mentors. They're already using their personal time to code, and it might not be such of an ask to share their screen and pair with someone instead of just coding alone.

The next channel is Slack, or similar public chat rooms like Gitter. We've got a number of meet-ups here in the UK established to help people learn how to code, and some of them have active public chat groups. You can join these even if you can't attend in person. Codebar is a fantastic example of an active Slack group where people can receive code reviews and get answers to their technical questions. I find this channel particularly good for ring-fenced technical questions. You might see a pattern in who is responding to your questions, which explanations you understand the best, . You could reach out to those people directly and ask additional questions. I used to do this and received remote pairing, which was really useful.

The next one is LinkedIn. Some see it as unfashionable. I love how people use LinkedIn. Please do not contact me. I'm not looking for a job! However, there are some developers that might use it. Certain groups who are likely to use it include those who are early in their career, maybe they've only recently found their first job where or developers who work for larger enterprises. If you're targeting a certain group, LinkedIn can be quite useful. It's also really good for people like me who had absolutely no industry experience, and they're starting to make those first connections. You've got 140 characters when you're trying to connect with someone. It's not much, so it is really important to be concise. I try and point out something I admire about the person's profile, or a blog post they've written. I also have a sentence about why my own story is compelling. For example, you could be a musician who is teaching yourself to code, or you could talk about a website that you just built in your spare time. I would then always have a very clearly call to action, such as, "Would you have ten minutes to speak on the phone about your experience at this company, or this bootcamp?" I would also give an alternative, like, or I would be happy to receive messages via email.

A clear call to action helps our reader understand what we are asking for, and why they should connect with us.

Let's move on to Twitter. Twitter is fantastic for getting to know our industry. You can research popular influencers and hashtags, and gain an understanding of current issues. We have some really inspiring developers who actually use their popularity on Twitter to help others by asking people to reply to their tweets about new jobs, or people who are available to help others. There are a number of those people in this room right now. I've used Twitter to ask for conference buddies, or help submitting a tech talk for a certain conference. For these specific calls to action, where you can tag a person, or an organisation who will retweet to a wider audience, this can be perfect.

So, what about in-person platforms? If you have the good fortune to be able to attend an in-person meet-up or coding workshop, this can be the perfect place to find mentors, as volunteers are already likely to be very passionate and enthusiastic about helping others.

In such meet-ups, I would usually ask volunteers if they wouldn't mind answering my extra questions or helping me get unstuck on a personal project. I would ask if I could connect with them online, and, even if they couldn't help me themselves, I would always ask if there is someone else they could put me in touch with. Conferences: conferences can be game-changers.

At the end of last year, I watched my friend get a job at a conference that neither of us would have otherwise known about. I found great mentors, and very, very close friend through conferences. However, this comes with the caveat that there are so many different types of conference, so I advise researching before committing. You could ask people at a local meet-up if they've attended this conference and what the experience was like for them. Did they feel welcome? Were they able to initiate conversation easily with others? You could try asking conference organisers for a conference buddy, or just reach out on Twitter as we described.

Nevertheless, at any conference, it can be very hard to go up to people you don't know. Some of the easier moments are before or after a talk. Or in the lunch queue. You can say hi. You can take one of Matthew's tips, how they are finding the conference, why they've come, and what interests them. I have had a couple of instances where people haven't wanted to speak to me, and I think that's totally fine too. If people don't feel like talking, you could try approaching the speakers who more open to this and asking if there is anyone they know who they could put you in touch with.

So we've spoken about online and in-person platforms, tips on initiating relationships and conversations with people who might be able to support you. When I reflect on my journey, a lot of my relationships came from different platforms, so it might be worth not just focusing on one but trying a few. I also noticed that these relationships were created over a period of time. I don't think they necessarily happen over night. For me, I got my most active mentors over a period of six months or so. There are a few platform-agnostic things we can consider when seeking mentors.

First, I think it's important to say that we should always respect people's boundaries. It's also vital to stay safe online, especially when reaching out to people that we don't know. Creating a compelling story and understanding your why is advantageous. Why are you learning how to code? Why are you seeking a job as a software engineer? Most of us have a number of demands on our time, so being able to express your why might make your message stand out, and be more attractive to a potential mentor.

We also really need to do our research. It's better to read someone's blog articles before asking a question they've already answered elsewhere. Let's have a really clear call to action. You could offer that somebody responds to your questions by email, or ask for a ten-minute call. This was really useful for me when I first thought about coding. I had a hypothesis that I would enjoy being a software engineer, and I wanted to design a few tests to help me as stain whether that hypothesis was true or not. I reached out to a number of developers on LinkedIn asking for ten-minute calls, and I was bowled over how people would respond, sometimes within minutes, giving their time over the phone, and these calls would often run to 30 minutes and over an hour. I do think people are very willing to give their time in this way.

I've also found it really useful to implement a testing phase. After asking for a defined action, you could assess if this person gives you helpful explanations, if you feel like you can communicate easily with them. Do they keep to your agreed meeting time? By asking for a small action, you can test if this is someone you would like to keep seeking support from. 3 I also like to ask for referrals.

If the person you've reached out to can't help, is there someone else they could put you in touch with? Social network research has shown that creating relationships with someone you know via someone else, or have met randomly with little overlap in your current network, can be incredibly valuable.

These people were called "weak tie contacts" in 1973. Because there's minimal duplication in network, weak-tie contacts tend to know people and information that we don't in 3 they might approach differently. There might be little trust between you, but they can bring new information, new ideas, and contacts to us. Asking for referrals allows us to make those weak-tie connections, and access completely new networks and opportunities. There are so many people out there willing to help. If we get a no from one person, we can learn from that experience. But we don't need to let that demotivate us from reaching out to others.

We've spoken about initiating relationships. How do we nurture great ones? First, I want to talk about Marshall Rosenberg's non-violent communication, and his work around communicating needs. It would be very wrong to assume that the mentoring relationship is only about the mentee's needs. It is very much about the mentor's needs as well. And this follows my premise that mentoring is hugely beneficial to mentors. How can we find out what our mentors' needs are, and how can we help this create a more symbiotic relationship?

To understand the needs of our mentor, we could ask something like, "I'm really inspired by how you give your time to help others. What motivates you to do this?" When I've asked this question, I've received varying responses. All of which gave me some insight into my mentor's motivations, and some clue as to how I could meet their needs.

For example, one of my mentors said that he actually considered teaching as a career, but decided to be an engineer instead. He loves the process of helping someone learn a new concept. This is useful information for me because it means that mastering complex technical concepts is likely to be something he would enjoy helping me with. What are some of the other things that have proved successful for me personally? And, importantly, how can you learn from the mistakes that I've made? First, I rarely expressly ask someone to be my mentor. Instead, I have often found that the relationship emerges organically by both parties committing to speaking or meeting regularly.

When having a call or a meet-up with a mentor, I've always tried to be prepared with an agenda, take notes of any actions, and to complete them when agreed. I found that this is a way of respecting and being caring towards this person. For pairing, I often describe the task, or send the GitHub issue I want to cover in advance, and I will ask for any reading, or concepts that I can read about before the pairing session. Again, after pairing, I like to ask for feedback on what I can spend more time on practising.

I have made a number of mistakes. I have over committed to actions that were unrealistic for me to complete in the allotted time frame. When learning how to code, especially when juggling all of life's other tasks, we're likely to have other priorities, so it's really helpful to be clear and transparent about what is realistic for us.

A painful mistake I've made is not requesting the easiest technical solutions. Sometimes, seasoned developers can forget that we're a beginner, and will receive a solution that they're most excited about that is really fashionable, or just the shiniest new toy that they can find. Now, I prefer to ask for the easiest option so that I don't feel demotivated by how hard it is to implement something more difficult. Also, I want us to feel empowered to end mentoring relationships. They might no longer be working for us, or maybe we've already achieved our goal.

For example, when I got my first job, I decided that I didn't need to work on code in my personal time any more. I made the mistake that I wasn't so clear about that to my existing mentors. I would have liked to more transparently tell them this. I would graduate ing active mentors into more passive ones whereby you ask for help on an ad hoc basis, instead of necessarily coding on a weekly basis if you were.

To conclude, overall, I believe that there are many people waiting to help you. In this talk, we've discussed assessing your goals, getting specific. We've looked at a bunch of different platforms that you can use. We've talked about some generic tips like storytelling, creating rapport, and creating a clear call to action as well as having a testing phase.

We looked at nurturing these relationships by considering our mentors' needs, making best use of their time, preparing for meetings, and actioning appropriately afterwards. We also looked at network research in how meeting people outside of our network can bring us new information and opportunity. Sometimes, learning how to code can be tough. I know. I've been there. I want you to know that there are many people out there willing to help you. Create your own luck. Start initiating mentoring relationships today. Thank you.

About the talk

Identifying and connecting with good mentors ensures that the time you spend trying to achieve your goals is both efficient and effective. Mentors can open doors to more knowledge, job opportunities and support you mentally and emotionally. In this talk, we will cover exactly what you should say when reaching out to someone you don’t know, whether in-person or online. We will explore how to interact with your mentor to understand and meet their needs, so that you can create a sustainable symbiotic relationship.

About Amina Adewusi

Amina is an Associate Software Engineer at the Guardian News & Media in London. She taught herself how to code whilst looking after a young baby and juggling a full-time job. She is passionate about encouraging under-represented groups into tech and is proof that it’s possible to become an engineer without spending a penny. She is an international speaker who seeks to represent the voice of new developers in the software engineering industry.

Photo of Amina Adewusi

Amina Adewusi


You Got This is a network of community conferences focused on core, non-technical skills coordinated by Kevin Lewis.