Since I've started to learn how to code I've strived to find good mentors. They're a must if one really wants to leverage their knowledge in a fast pace and towards the right direction.
1. What is Mentoring?
Mentoring can be defined - according to my favorite definition, by Eric Parsloe - as "the act of supporting and encouraging people to manage their own learning in order that they may maximise their potential, develop their skills, improve their performance and become the person they want to be."
In the best companies, it's considered a very good practice to promote mentorship through a mentoring program. Mentorship is an expectation for senior and above engineers, and is commonly listed in contracts and career framework guidelines.
Being able to mentor someone is a superpower and with "great power there must also come great responsibility".
2. The Need for Mentoring
freeCodeCamp is one of the best - probably the best - places for learning how to code and doing a careers change into software engineering. I can definitely tell it because I went through it in 6 months and became a junior developer working remotely for a company in Holland, back in 2017.
freeCodeCamp gave me direction (a very well built roadmap), support (through publication, forum and discord community) and above all motivation and focus.
I've loved the "Read, Search, Ask" principle and it became my most important role while studying.
In spite of these I've discovered the benefits of having a mentor real soon. They become our friends, create a comfort zone for us to share our growing pains, point us in the right direction, benchmark our progress, keep our motivation and focus high and advise us in multiple ways, including on basic questions related to the developer's life, salaries, interviews, resumes, etc.
There's a great hidden value in having a mentor. This was my main feeling and one of the reasons why I've created the #iamfreeCodeCamp challenge , in order to build a community of mentors among freeCodeCamp Alumni that can leverage and guide the learning of the students.
If you've read till this point maybe you're asking yourself if you can be an #iamfreeCodeCamp mentor or mentee. 🤔
Grab a cup of ☕️ and keep reading!
3. I'm a Student, can I Have an #iamfreeCodeCamp Mentor?
Definitely. The best way is to tweet about it using the tag #iamfreeCodeCamp. We still have a lot to grow but I believe you'll soon find a mentor around.
4. Can I be an #iamfreeCodeCamp Mentor?
Well, if you're a student, it might not be a good idea.
If you've finished freeCodeCamp I'd say yes, you can.
If you got some experience in the industry and you're aware on what mentoring is all about I'd say you MUST!!!
No matter what your experience is, I'm leaving you with the 10 Awesome Things you Should Do while Mentoring Other Devs.
Remember that mentorship is about a relationship between you and the mentee. It needs to be good and meaningful for both.
5. 10 Awesome Things you Should Do While Mentoring Other Devs
1. Share your Background
The best way to start mentoring is with a kickoff meeting. In this meeting both mentor and mentee should present themselves, share their backgrounds and see if both can and want to commit time for it.
2. Define a Cadence
How often both should follow up and when? I suggest you to start with a 2 weeks cadence and fine-tune it along the way according to both availability.
2. Equalize Expectations
Both mentor and mentee should equalize expectations. Be clear and honest about their expectations on one another. The best mentorships are two-way paths, where both people get something out of it. Usually mentors also earn experience from mentoring and this is a precious skill for software companies.
3. Identify Pain Points
What are the current mentee's pain points? This will help to set goals. Mentor can prepare adequate contents, and advice for the mentee.
4. Short-term Wins
Work for the lowest hanging fruit possible. What's our first and more direct achievement? Let's do it 💪
5. Communication Along the Way
Are you available to random pings? Can the mentee get in touch with you during the time between catch-ups? It helps to create proximity and comfort if you're able to make yourself available. Make sure that the mentee understands your answer can be async, but if you make yourself available don't let them without an answer after some hours / days.
Identify and work towards more ambitious and wide objectives. Beyond the low hanging fruit there should be major goals. You can use and share a career framework with the mentee. Personally I like this one but there are lots to pick around. This way you can help the mentee to prepare for his/her first job.
7. Prepare a Reading List
There will be times where your mentee needs to reinforce their knowledge in something. Prepare a reading list and recommend books / talks for them to see with a certain cadence. Discuss it after and try to highlight the important stuff to be retained.
8. Take notes
It's important that you take notes during your 1:1 sessions. Both mentor and mentee should take notes on what they've talked about. This includes actionables, things one or the other agreed to do and that will help the mentee to progress to the next level.
9. No silver platters
"give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime"
Leverage the motivation and focus of your mentee so that they can find by themselves the solution to their problems.
Usually don't touch code, don't put your hands on keyboard and don't give solutions. Lead the way and make your mentee reach it alone.
10. Keep Motivation and Focus High
Mentoring is 90% about keeping mentee's motivation and focus high. Create a comfort zone that helps the mentee to surpass their growing pains. Keep saying that's okay to fail or to not grok something immediately (and it really is). Celebrate achievements! Make sure the relation between challenge and frustration is balanced. This means that if frustation is appearing we need to lower the challenge so that the mentee can keep studying and surpassing their difficulties without quitting.
Thanks for reading this blog post. We'll learn a lot together in the end.
Now it's time to get our hands dirty! Don't forget to go to the iamfreeCodeCamp homepage and to make yourself available to mentor a freeCodeCamp student.
Don't forget to tweet about it! That's a great way to celebrate this new relationships you're creating and to raise awareness on the importance of Mentoring for freeCodeCamp and other students.
If you've got a short question or message, please tweet to @eduardovedes and I'll get back to you soon-ish. If it's a longer thing, or you don't want it to be public, please e-mail me (firstname.lastname@example.org). I read all the emails and it's always a pleasure to provide all the help I can.
Rock on mentoring! 🚀