Illustration by Casey Schumacher.
Mentoring connects experienced and entry level developers in order to provide some kind of personalized training and exchange for early career programmers. It frequently happens in the sphere of a company as an educational initiative for employees, but it can also happen outside of a company. At SinnerSchrader, we initiated, as we like to call it, a mentoring support group. Colleagues from various backgrounds take care of kicking off new pairings and offer their help along the way.
Mentoring can take many forms and is super diverse which is why we asked mentors & mentees to talk about their experiences.
This article was written by Alice Grandjean.
Table of Contents:
- Introduction
- Part 1: The start of the journey
- Part 2: A well-designed frame for the meetings
- Part 3: Content of a session
- Part 4: Community & support group
- Conclusion
Introduction
A mentor as Google defines it, is “an experienced and trusted adviser”. A mentee is someone like me! In this case, a junior developer with her head full of questions. It was a unique chance for me to have a mentor, but the mentoring process was not so linear to set up. This article is a small insight from my experience of being a mentee.
Part 1: The start of the journey
When I joined my company, I was not familiar with many aspects of the developer’s usual journey. I had some technical knowledge learned in an online bootcamp and I had some work experience collected in a previous company, but I used to always learn things the hard way: self-teaching. Mentoring was quite a foreign concept for me.
It took some weeks until the first mentoring session took place. My mentor and I were working on the same project. At the beginning, we kept our meetings casual and met every now and then. We mainly talked about the tasks from our common project. We would often pair program, go through programming solutions or discuss core concepts of JavaScript.
This situation went well overall. As a junior developer I was quite inexperienced and I enjoyed discussing my tasks with someone. Sometimes if we were in a rush, we would define a “period of exchange” where we would meet before the daily every day for 15 minutes. I much appreciated the flexibility of the team and the patience of my colleagues.
Six months ago, I got a new project and I had to pair with a new mentor. We were not working on the same project anymore. We decided to establish a different structure for our meeting: we would meet for one hour every week. I also decided to plan a little bit more in advance the topics of our meetings and I set up an agenda for it. That also helped me to keep track of our discussions.
Part 2: A well-designed frame for the meetings
I think the frame of your mentoring meeting is very important. As mentees, we should keep in mind that we are equally responsible for getting the most out of the meetings. I understood that eventually and I would come up with topics or precise questions to put on the agenda. My mentor would give me a new perspective on these topics and as I was keeping notes of them, I could easily go back to them later.
It worked very well. I can share with you the agenda we usually followed:
1) Opening questions: How are we doing? How are our projects going on?
2) One thing we learned this week
3) Blockers we experimented
4) Pair programming session
5) Exchange on tech news, tech speakers, Youtube channels
We would not go over all the points in one session but spontaneously decide what would make more sense to do.
This weekly one-hour space turned out to be very helpful for me. It was like an available window focused on me for specific questions. It forced me to gather topics and have a deeper look into them. It was also very beneficial to exchange views on a programming issue or the implementation of a feature. It happened many times that I had a different approach than my mentor. After discussion, I would see the task in a new light, and I would see possible solutions that I didn’t see in the beginning.
Part 3: Content of a session
In my opinion, pair programming brings the most valuable experience on the mentee’s side. It was also probably the hardest thing for me to ask for as it took me a lot of mental load. When you pair programming you cannot hide behind your computer, you have to find new ideas fast and you have to admit you don’t know when you don’t know. That is not so easy to do at the beginning, but I got used to it. I would really recommend using the extensions from VS code: Live Share and Live Share Audio. It’s great because it allows people to work on the same file simultaneously: each person can write code and “follow” each other in real time.
The best examples of pair programming we used to do were katas from Codewars. The word “kata” comes from Japan. It refers to a detailed choreographed pattern of martial arts movements to memorize and perfect alone. In the programming world, a code kata is an exercise which helps programmers master their skills through practice and repetition. Codewars is great because it clusters the katas into categories and levels of difficulties. After resolving a kata, your solution is saved and you gain access to the solutions found by the community. This offers the possibility of comparing the solutions between each other.
Recommendations of a fun kata: https://www.codewars.com/kata/57b4da8eb69bfc1b0a000b44 :)
Below you can find more topics from our meetings:
- Tasks from the project (ticket, bug, blocker…)
- Personal project (application, website…)
- Katas
- List of skills
- Javascript challenge e.g.: https://javascript30.com/
- Preparation of a small tech presentation
- Conceptual questions: JS / Typescript / React / API / Node / architecture…
- Reaction over Dan Abramov’s newsletter regarding Javascript mental model: https://justjavascript.com/
- Discussion over some YouTube channels (this list sadly only has male youtuber, please feel free to share with me non-male tech youtubers):
Syed Maaz Ali Shah https://www.youtube.com/channel/UC5tOulpb9kv_87ZCW1S0XMA
Ben Awad https://www.youtube.com/user/99baddawg
Will Sentance Codesmith https://www.youtube.com/channel/UCAU_6P-M2VHKePIpu5736ag
Brad Traversy https://www.youtube.com/user/TechGuyWeb
Colt Steel https://www.youtube.com/channel/UCrqAGUPPMOdo0jfQ6grikZw
Part 4: Community & support group
I strongly believe that belonging to a community or a group can be very beneficial for a junior developer. In this time of remote work, it is easy to feel isolated and disconnected from each other. It can help to find a support group.
My company is quite big and the management set up a monthly meeting with every new junior developers. We would talk about our experiences and try to help each other out on difficult tasks or difficult situations. I really enjoyed these meetings. It was a time of self retrospection and a safe space to exchange. I realized most of us shared the same everyday challenges. Most of us also experienced what is called “impostor syndrome”. It is a psychological symptom where people tend to excessively doubt their skills or accomplishments. For me talking about all these sensitive topics was relieving. It also helped me to find new ideas for my mentoring sessions.
On the side of the mentors, the same kind of meeting happened as well in order to discuss ways to improve the mentoring process. I found this mirroring initiative great!
Conclusion
When I look back, I can see mentoring accelerated my progress curve faster than I would have thought at the beginning. I feel lucky to have found two amazing mentors. Besides positive outcomes like knowledge sharing or skills development I could feel our team spirit growing.
In conclusion, if I were to meet the “me” who started the beginning of her career 18 months ago I would say these things:
- Be active (ask for mentoring and define yourselves the frame of your mentoring time)
- Be patient and persistent (don’t try to learn everything but learn small steps at a time)
- Be shameless regarding communication (if you think: “should I ask someone” stop thinking and ask someone)
- Work on your technical communication skills
- Keep track of your successes, failures, achievements
- Measure your progress (in 6 months how would you see the same issue)
- Keep yourselves up to date: reddit, hacker news…
- Get inspired of people (your mentor, your colleagues)
- Open yourselves to others when doubting
- Look for a mentee community
- Say thank you to the people who helped you grow
========================================================================
Ressources:
Live Share: https://visualstudio.microsoft.com/services/live-share/
Kata website: https://www.codewars.com
30 days Javascript: https://javascript30.com/
Javascript newsletter: https://justjavascript.com/
Youtube channel from Syed Maaz Ali Shah: https://www.youtube.com/channel/UC5tOulpb9kv_87ZCW1S0XMA
Youtube channel from Ben Awad: https://www.youtube.com/user/99baddawg
Youtube channel from Will Sentance Codesmith: https://www.youtube.com/channel/UCAU_6P-M2VHKePIpu5736ag
Youtube channel from Brad Traversy: https://www.youtube.com/user/TechGuyWeb
Top comments (1)
Great article, thanks for sharing your experience!
Another YouTuber I can recommend who is creating content about web development: youtube.com/c/whitep4nth3r