Blog

Mentoring in Programming: What, Why and How Series

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


Web Developer, Programmer, Professional Nerd – whatever you want to call the job, it is a deceptively difficult career to get started in. While there are many online resources for learning how to program, there is a steep learning curve between making a program that repeats ‘Hello World’ and working on an application used daily by thousands of users. You can learn a language from a book, but it’s much harder to learn how to be a good citizen of programming.

This is where the concept of mentoring comes in.

Mentoring is a fairly common practice in the professional world. By definition, it is pairing up a person who is learning a trade with a person who has more experience in that field. During the process, a student can get help, encouragement and constructive criticism.

I got started on my path to web development by attending a six month intensive course run by Jumpstart Lab in Denver, Colorado (named gSchool). Jumpstart Lab matched up every student with two different professional mentors during the program.

Now, as a web developer at Quick Left, I mentally thank my mentors about 15 times a day for having taken the time to work with me. And I’m not alone!

I interviewed some of the program’s mentors to get their tips, tricks and opinions about mentoring. I also got the perspective of Jeff Casimir and Susannah Compton of Jumpstart Lab – who run the Turing School of Software and Design, on what makes a good mentor, their advice, and what their plans are for their next batch of students!


Part 1

What Is Mentoring in the Programming World Like?

The mentoring relationship doesn’t have to be limited to cranking out code. Sometimes it’s nice to plan to meet up, sit down without computers and talk about professional (or personal) life.

I asked the panel what sorts of projects they worked on during their mentorships and what percentage of time they typically spent with hands on the keyboard.

computing

A lot of times we go over code that my mentee has questions about or wants to understand better — usually resulting in some code being written! Other things we do are talk about how they're doing with their studies in general, and discuss more theoretical topics related to programming. For example, "what are the pros and cons of different approaches to testing?" – Laura (Mentor & Mentee)

We used to pair on code katas and challenging concepts. I tried to do the class work myself and only got help on hard concepts. We spent less then half of our time actually programming. Our time was mostly spent on talking through programming and how to solve problems. Obstacles I am facing and good advice on what to do and what not do. – Adam (Mentee)

It was combination of project work and reviewing concepts that might not have stuck the first time around.  Ben was not struggling with most of the coursework, so most of our time spent together was giving feedback on design and preparing for interviews. We spent very little time writing code together.  Most of the time was spent nitpicking the code he'd written, offering design advice, and talking about the transition from the classroom to the workplace. – Raphael (Mentor & Mentee)

We probably spent about 50% of the time programming, and the rest of the time talking about class, the job hunt, different ways to approach problems, and the curriculum. – Persa (Mentee)

With Mike (my first mentor at gSchool), I brought projects to him that I wanted help on. We worked on writing Rails APIs and lightweight Backbone apps. He also helped me on with some performance optimization for a class project, and with some Capybara troubleshooting in my mastery project. Raphael [my second mentor at gSchool] and I mostly worked on practicing solid TDD, exercisms, and getting ready for interviews. – Ben (Mentee)


Stay Tuned for the next posts, where we get into advice from our panel of experts on what makes a good mentoring relationship and how to get started!