Mentoring in Programming Series: Part 2 – “What?” – 11 Steps to Success

Throughout this series I'll be explaining what I believe the "What", "Why", and "How"'s are to being a good mentor.

Check Out Part 1 "What is Mentoring" of the series.

What Makes a Good Mentoring Relationship?


I asked our panels of mentors, students and teachers for their advice on having a good mentoring relationship in the programming world.

11 Great Steps to Success

1. Put in the Time

Susannah Compton is the brains behind pairing students with mentors at Jumpstart Lab & Turing School of Software and Design. I asked her what she looks for in selecting a mentor:

Honestly, the most important thing is whether a potential mentor has the time to commit. We ask our mentors for 2-4 hours a week, and much of their help can be asynchronous. It sounds like a small time commitment, but people are busy! It makes a huge difference in the success of the relationship if a mentor is able to consistently work with their mentee on a weekly basis. If you’re a mentor, you’ve got to have a presence.
Susannah (Jumpstart Lab)

This was such a huge factor in mentoring successes and failures that it came up with almost everyone I spoke to:

I understand that mentors can sometimes be busy but you need to regularly invest time in your mentee if you want to be a mentor. It takes effort more then anything else and I am not trying to say you should dedicate all your time to them. My mentors were both great because they would dedicate a set amount of time per week and they would be there to answer my questions and advice me on what I should do to move forward.  – Adam (Mentee)

“Be prepared to commit a big chunk of time. This is not something that’s going to work for either person in the mentoring relationship if you’re only willing to devote an hour or two a week. (Been there, done that.)” – Matt (Mentor)


2. Set a Schedule and a Plan

Once you find someone, set up a regular time to meet once a week. That way, you'll stay on track. – Ben (Mentee)

All of us want students to feel that they can reach out to their mentor anytime to get a different perspective on something we’ve taught, ask for feedback on their code, or troubleshoot. For more routine interactions, like scheduled pairing sessions or meetings, I recommend that students have a plan for what they’d like to work on or discuss. It puts a lot of pressure on mentors when students are not proactive in their own learning… Students should share their agenda for meetings or pairing sessions with their mentor in advance, so the mentor feels prepared to help. – Susannah (Jumpstart Lab)

3. Pick a Worthwhile Project

The worst way to setup mentoring is as a help line. "Let me know when you have questions!" Questions are usually answered quickly and involve more debugging or working through some specific problem than for deepening real understandings. It's much more valuable to use mentors when everything's going right. Spend the time doing code review, pairing on the student's work, pairing on open source or the mentor's work, etc. Those activities build skills and understandings that'll last. – Jeff (Jumpstart Lab)

In the beginning, I used my brilliant mentor's brilliant brain to work on a little terminal game. I learned some programming tricks from that, but I learned the most when she paired with me on her own side projects. It was a enormous application to me, and at first my only major contributions were catching spelling errors. But after a month, I got to watch my own brain start to comprehend what was going on. And I started being able to DO THINGS. I also got to see how a knowledgable developer treats code that they care about.

This helped when I began my new job. I started on a new poject in a different language that I wasnt comfortable with, but I remembered working on my mentor's project in the beginning. That thing was hard, but we got through it, and I would do the same with my own.

4. Honor the Relationship and Curb Distractions

For me, [the most important thing to keep in mind while working with a mentor] is to value the other’s person time to the fullest. No one gets paid to be a mentor, and they are doing it because they believe they can help along on your journey. I always gave my full attention during mentoring sessions. – Persa (Mentee)

This is important for both members of the team. It’s very difficult for the human brain to context switch. According to Pragmatic Thinking and Learning, it takes 20 minutes to fully return to deep focus on a task.

And according to me, the poster child of ADHD, as soon as my pairing partner gets obviously distracted, my brain decides to check out.

Many students who are learning programming come from fields where they have never done anything similar to pairing. It’s important to keep this in mind and be conscious of best practices.

5. Remote Mentoring is a Great Option

Long distance mentorship can really work well, so don’t limit yourself to thinking you must work with someone who is local. Some of our most fruitful mentor pairings were remote. Geographic proximity is a nonissue. – Susannah (Jumpstart Lab)

Don't discount the value of a remote relationship. Getting together in person is great but involves all the downsides of an in-person job — having a work space, "commuting", etc. Some of our most successful mentor relationships take place over Google Hangouts. – Jeff (Jumpstart Lab)

6. You Don’t Have to Be the "Mr. Miyagi" of Coding

Don’t write-off what less experienced mentors can bring to the table. I admit to having had this prejudice myself before I watched some very green programmers push some of our students to the next level. They can actually connect with and understand where and why students might stumble in their learning process because they were in the same boat a few years before. The problems and frustrations students face are fresh in their minds.
Susannah (Jumpstart Lab)

You don’t have to know everything to be a good mentor. As long as you can isolate the problem and help guide your mentee to a solution that might work for them. You don’t have to have all the answers. – Matt (Mentor)

Being relatively novice to the world of web development, I knew my contributions would be more valuable in the role of a recent gSchool graduate than as an industry veteran.  In this light, I think our greatest success came in the form of preparing for life after the program rather than advice on the nuts and bolts (coding) front. – Raphael (Mentor & Mentee)


7. Enthusiasm is Addictive

Not everyone who codes is socially awkward… but I am. And you might be too. That’s okay.

One of the best things that a mentor provides is an insight into their epic dorkitude and nerdiness… otherwise known as "how much love and enthusiasm we have for what we do". If you’re worried about being socially awkward, just tap into the love of learning and share what you do with others.


8. ‘Failures’ Can Be Inspiring

It is OKAY to not be able to solve a problem immediately. Programmers, even great Unix Wizards, always need to cry 'uncle’ at some point.

When we first start learning to program, it’s very difficult to tell what problems seem impossible right now but will be easy in a few weeks, and which problems are just difficult problems of programming in general. When you first start programming, everything becomes overwhelming. And then to think eventually, you're going to need to know all of this by heart…dun dun dun.

I asked my co-worker – Laura if she was nervous about becoming a mentor, and her response was: "Yes, definitely! What if I can't answer their questions, or they don't like me?".

…But in my experience, when a problem stumped my mentor, that was almost always a positive learning experience for me.

For example, I asked my classmate Ben and his mentor during gSchool, Raphael, about the greatest successes and failures in mentoring that they had.

This was Raphael’s response to an example of a failure:

Ben and I worked on a few coding exercises together in the days leading up to interviews, and I found myself stumped on a few of them. Quelle horreur! – Raphael (Mentor & Mentee)

This was Ben’s response for an example of a success:

Raphael and I banged our head against the 'saddle points' exercism for a couple of hours before we finally got there. I felt successful then. – Ben (Mentee)

I think you can see my point!

9. Hardwork, Patience and Humility are Key

You’ll need to be open minded. Mentoring is not just about teaching somebody. You have to be willing to learn as well. It’s a two way street. You’ll need to be patient. Let the mentee work through something on their own with your guidance. This can be hard to do sometimes, especially when the answer is obvious to you.  – Matt (Mentor)

I think the most important realization is that someone is not either a mentee or a mentor.  Throughout gSchool, you could say that I was mentoring some students and being mentored by others.  I learned as much from my 'mentee' as I taught.  The relationship that formalizes the mentor/mentee relationship is just an agreement to invest in one another, and it's as much of an investment for the mentee as the mentor. – Raphael (Mentor & Mentee)

If you want to find a good mentor you need to try and learn how to program by yourself, attend meetups and network with people in the field you are trying to join. This will show potential mentors your dedication to the field (and the effort you are putting in) and it will make them more inclined to help you.  – Adam (Mentee)

10. Success Isn’t Always Obvious

Sometimes my mentors were not sure if they were doing enough for me, because I tend to be pretty self-directed. But it was very helpful to have someone there when I needed help.  – Ben (Mentee)

Everyone learns differently. It's hard to tell, as a mentor, how much help you're giving and it can be hard to tell, as a mentee, the positive effect you are having on your mentor.

11. And Finally, If At First You Don’t Succeed…

…Try, try again!

Many students and mentors had one mentoring relationship that was more successful than the other. Matt and Persa both felt their second try at mentoring was more successful:

My first assigned mentorship during gSchool wasn’t as successful my second. I was timid and afraid to “waste someone’s time” with questions that perhaps were very novice. He was a busy guy and it was hard to get time on his schedule. It might have worked differently if we had done a little more “defining of the relationship” at the beginning, but alas, we only got to meet up twice for very brief periods of time. – Persa (Mentee)

I also learned how to be a better mentor. I mentored another student before the mentors switched around Thanksgiving, and I just wasn’t a very good mentor. I wasn’t involved enough, wasn’t persistent enough, and didn’t feel like I helped him as much as I could (or should) have. – Matt (Mentor)

Don’t be discouraged if your first attempt at a mentoring relationship starts off rocky. Not everyone gets it right the first time!