A few years ago, I had the opportunity to mentor and work with some junior developers from the Epicodus program in Portland, OR. I loved it.
One of my favorite parts of that experience was answering questions that arose. These questions forced me to truly understand and articulate how particular components worked (which I may have not quite understood before). For example: a problem with conflicting Ruby versions forced me to understand how Ruby version management worked at the filesystem level (it turns out its not very complicated at all, but I hadn’t yet had to deal with it).
Over the past few weeks, I’ve been mentoring another junior developer— and all the same enjoyment has come back.
The majority of this “mentoring” has simply been pair programming on my side project Guidable over a Google Hangout —and I have a few tips that have served me well in these mentoring sessions:
Choose an appropriate project and level: Start with an appropriate level of complexity for your mentee/student. Programming is complex, and requires layers of understanding. When choosing projects to pair on, think about these layers and your mentee’s level.
Explain what you’re doing (and why you’re doing it): If you’re leading by example, take the first few minutes of any pairing session to fully explain what you’re doing — and why you’re doing it. Even better: write this before the mentoring/teaching session and send it to your mentee/student.
Set a time limit: Learning new things requires focus and brain power. Set a time limit for meetings which involve learning. Leave a little time at the end to clean up the work space and explain the next steps.
Make room for questions (and encourage them): This is my favorite part of mentoring/teaching. Plan on 50% of the time being dedicated to questions. Every time I mentor/teach, I get asked questions which I had never fully thought about — and they force me to explain a concept (or admit that my knowledge is lacking and I’ll dig up the answer later).
Enjoy it: Mentoring is satisfying for everyone. For the mentee, it’s a way to level-up your skills and network in the industry. For the mentor, it’s a way to sharpen your skills, leave a positive impact on the world — and even boost to your emotional well-being.
And that’s it folks. 5 tips for mentoring software developers via pair programming. Now, go forth and mentor!