Less noise, more data. Get the biggest data report on software developer careers in South Africa.

Dev Report mobile

How to Win on Both Sides of Mentorship

18 March 2019 , by Frikan Erwee

Mentorship is seldom discussed or debated in the technical space. I have been lucky enough to be both a mentor and an apprentice, and seeing both sides of the coin has made me realise something: Mentorship has a lot more to do with experience and perspective, than age or education. By reflecting on my experience, I will challenge you to engage with your views on mentorship, and provide tips on how to be a good apprentice as well as a good mentor.

Frikan_Mentor---Mentee_Batman---Robin_Inner-article

I was privileged enough to receive a formal education in computer science and geoinformatics, but how I learned to code was mostly through mentorships. And that started at home: My knowledge around computers from a young age came through learning from family and friends. In so doing, I developed my understanding of what "effective mentorship" looked liked based on those experiences.

When actively practiced, proper mentorship not only has an advantage for the mentor and the apprentice, but also for the companies and organisations that promote these types of relationships. I have learned a great deal from my mentors in developing high-quality code, and also in a broad spectrum of alternative skills.

But having a good mentor wasn't always enough; I had to learn what it meant to be a good apprentice as well. I realised that my personality traits, and the methods I used to learn from others were not always as effective as they could be. I needed to align them better in order to ensure the best return-on-investment made by my mentor.

I set out to not just become a good student, but to become an apprentice that is easy to teach and a joy to work with. Then, I started focusing on what I needed to be a good mentor. This is what I learned about both.

Being a good apprentice

The characteristics of a good apprentice are expansive, but I have found the following to be a good foundation. Everyone can benefit from putting the following traits into practice in their journey of continuous learning.

The three key areas that I found made me a better apprentice were:

  • Being open to challenges and opportunities from my mentor
  • Understanding my mentor relationship should happen "naturally"
  • Taking responsibility and initiative for my own learning

Being open to challenges and opportunities from my mentor

The first thing to remember about being a good apprentice is to not shut yourself off from possibilities proposed by your mentor, even if they may seem daunting. This characteristic is something I lacked when I was younger, and I suffered a lot for it when I started out. Like many upcoming developers, I struggled to find the "right" place to start, because I wasn't open to new opportunities.

When I started out with coding, my first goal was not how to improve myself, but how to "look" like a developer. My first mentor, however, challenged me to do something I wouldn't have thought of otherwise: She asked me to partake in a coding challenge. I was hesitant at first, because I did not think myself good enough and did not know what it entailed. I went in too proud, I didn't ask my mentor for help because of it, and didn't do well. However, when the next opportunity arose, she was my first stop when I had difficulty moving forward.

Now, when I start a problem, I start by asking my mentors as many questions as I can. I don't mind if my questions sound trivial, because it's still better than the bitter feeling of failure that I had that that first time.

Understanding my mentor relationship should happen "naturally"

When I started realising the value a mentor could add - not only to my skill set but also my career - I realised how I thought about a mentor-apprentice relationship was flawed: I initially thought about it as a formal agreement, where-as it's something that should happen as organically as possible.

The stigma I encountered as an apprentice was that my learning is a burden, and not everyone wants to be a mentor because of the time and energy it takes. Although I realised that this wasn't the case with mentors at all, it still acted as a barrier: When approaching someone, I had no idea how to ask them to be a mentor. It all felt too "clinical."

Over-time, I learned that the most effective way to find a mentor was to start my relationships with them as informally as I could, either by meeting for coffee or making water-cooler conversation during work. This way, the person got to know to me first, and as the relationship progressed I would start approaching them for advice on things in which I knew they had experience. We grafted mentorship onto a healthy friend/colleague relationship, allowing us to be in a safe space where we could be honest with each other without the fear of sounding "stupid."

Taking responsibility and initiative for my own learning

I also realised that mentors are not there to solve all my problems for me; they have their own things to do. To help manage my expectations, and provide my mentor enough to work with, I would always try to solve things on my own first.

I would research where I could to find the solution - or at least some parts of it - so when I approached my mentor I would have some background. This meant we could have a valuable and holistic discussion about my problem. Sometimes, my research even intrigued my mentor to the point of doing extra research, and discovering something they did not know before.

In my current job, this learning came in the form of having in depth discussions on javascript array prototype functions, and which one is better to use. The conversation started with a simple, but well-researched question that I asked:

"If a .forEach() is faster than a .map(), when is it better to use .map()?"

This ended-up sparking debates on async/await, promises and even joins. We all read about these concepts, but never had the chance to interact with and discuss them as a group. This simple question gave the team the opportunity the grow our knowledge together.

Being a good mentor

To level up on being a mentor, you need to do more than just focus on what the apprentice needs to learn from your experience and skills. I had to learn how to use what I knew about being a good apprentice, to become a better mentor.

The three key areas that I found made me a better mentor were:

  • Having humility
  • Being supportive
  • Being consistent with communication

Having humility

During my time in formal mentor programmes, I learned that being a good mentor requires humility. One such programme was Google's Summer of Code, which introduces students to become part of open-source software communities.

In this case, students are working on software, and not necessarily the "super devs" we all aspire to be. It can be an empowering and humbling experience to acknowledge that sometimes not knowing the answer is the start of a great journey, and being a mentor does not mean you have to have all the answers, and you yourself can learn from "students."

I try to ask my apprentices questions when I need to solve difficult problems, to give them insight into how to go about discovering solutions on their own. Seeing that even I need to ask questions sometimes gives them the confidence to ask me the same question in return. If you come across as arrogant or a "know-it-all," it could limit what you can actually accomplish.

Being supportive

Apprentices all have uniquely different requirements and personalities, and it's important to adjust how you mentor accordingly. The people I have mentored have been worlds apart from each other, which challenged my perspectives. Some were extroverts, singing Disney songs at the top of their lungs, while others kept to themselves, preferring a book or earphones to hide behind. Providing support specific to them is crucial to make your mentorship effective.

As a mentor, I found that if you support and motivate your apprentice in what they want to be, through what they like to do, you can reach them on a much deeper level.

You'll start to understand which methods of teaching they respond to better to, and you'll know what support they need and when.

Sometimes, in order to achieve this, you need to create opportunities to find a common-ground. From there, you can understand how they think, build trust, and know how to get through to them.

At our offices, we have "Bad Song Fridays." Everyone submits a song that they think is terrible but "catchy." We play them out loud, and then vote on a winner. This weekly tradition has not only brought out a great sense of camaraderie, but creates a common-ground from which we get to know each other better. If someone really likes rock music, for example, maybe I can tie that into how I mentor them so they have something that "clicks."

Being consistent with communication

As with all good things in life, I have learned that consistency when mentoring is key to getting the most out of the relationship - especially when it comes to communication.

When your apprentice is not heeding your advice, they might be losing focus and motivation, and the solution could be as simple as reaching out to them. But you should be communicating with them regularly in any case, to avoid associating "touching-base" with "having done something wrong."

I learned the value of keeping regular contact with an apprentice from a friend's experience. At the time, she was in a bad headspace with her mentor: She was procrastinating on a task given to her by her mentor, and actively avoided her as the deadline passed. One day, she got a phone call from an unknown number - her mentor - and panic immediately set in. But her mentor wasn't chasing her; instead, she just wanted to know how she was doing in general - and that was it.

This simple phone-call made her feel like her wellbeing was more important than the task, and she immediately felt more supported.

After an all-nighter, she delivered the product and has not procrastinated since.

Regular check-ins avoid miscommunication, and gives you a stable relationship with your apprentice to better understand their needs. It aids you in supporting them and actually augments all the elements of being a good mentor.

Being good at one, will help with the other

In conclusion, being a good apprentice will inevitably help make you a good mentor too - but being a mentor doesn't mean that you'll never be an apprentice. In fact, they often happen together: There are days that I learn more from my apprentices than from my mentors, who are double their age and who have buckets more experience.

You also need to be prepared to experience that, sometimes, your apprentices will exceed your own capabilities - but this is actually an incredibly rewarding feeling. I have yet to find a comparable feeling to the one I get when I see someone succeeding, and knowing that I had some small role to play. The return of an effective mentorship really can go both ways.


Frikan Erwee is a front-end and mobile developer by trade, currently employed as head of the Front-end & Mobile Department at Verge Technologies. He studied Geoinformatics at University of Pretoria, and Computer science at University of South Africa. In his spare time, he contributes to Google mentor programmes for students and school learners, and advocates for open source software. He is a firm believer that the digital divide will only become smaller if young developers are not held back by "gatekeepers" and their proprietary software.

OfferZen_Thrive-Blog-Article-Banner_August-2022-copy-2@3x-2

Recent posts

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.