How To Be A Great Mentor

This document contains tips and ideas gathered from experience working with students both online and in person. These notes are suggestions that you can pick from in order to improve your work as a mentor. It is also meant to be a living document, so please feel free to add sections that you find helpful in order to spread your insights to the rest of our mentor community.

Know Your Student

Keeping a solid overview who each of your students are, what their aims are, and how they are progressing, is essential in knowing how to help them best.

  • Progress: Keep track of your student's progress! Use the platform for help.
  • Notes: Take notes after calls. You can make a copy of this pre-set doc.

If you make it a habit to take notes and check up on each student's progress, you'll be in a much better position to help them in their learning process.

Be Their Guide

Explain to your students that you are here as a guide. You cannot fill knowledge into their heads, and you won't be with them all the time.

However, you are there to help them navigate through the learning maze. Help them take the right turns, and make it easier for them to see the path they need to walk and assist them in taking the necessary steps.

Let Them Teach

You can explain a concept to your mentee, if they don't yet have it all figured out.

Next time you see someone ask the same question e.g. on Discord, try to give your first mentee a chance to explain it to the next person! Send them a link, remind them that you went over this together, and ask them to answer the question for the other student. Explaining a concept to someone else is a very effective learning tool.

Encourage Study Groups

Study groups are awesome! They bring great results for learners. However, it is hard to make productive study groups work well remotely. Therefore, most of the time your mentee will learn by themselves.

If you see an opportunity to make their learning more social, e.g. by connecting them with one of your other mentees when they are working on a similar challenge, do it! Please feel free to facilitate and encourage such connections between students.

Have A Plan

It's easy to procrastinate if you don't have a plan. One of your tasks is to make it as easy as possible for your mentees to have a clear and actionable plan that is scheduled on their own calendar.

Students need to:

  1. Know what they are expected to do very clearly
  2. Have a time plan on when they will work on it
  3. Understand when they'll want to have it done
  4. Have accountability for their plans and their workload

As a mentor, you can be a great help with helping them to set up a study plan, make sure that it is realistic so they won't get frustrated by constantly not meeting their aims, have your students assign time slots on their calendars, and finally also provide accountability by checking back with them to see whether they are sticking to the plan.

Explain to them that they can split themselves into two personalities for getting things done:

  1. The benevolent planner
  2. The diligent executioner

During planning, you need to keep your own best interests in mind. How much time can I really set aside for this, and when? How much can I really get done during a time slot?

Suggest them to set their time slots and goals according to a benevolent plan that they create for themselves. This is important for the second phase, execution.

If you set yourself up for a productive and motivating time during your planning session, then it'll be much easier to sit down as planned and simply execute. Not having to worry about whether the thing you're doing right now is the best use of your time makes for much more productive work sessions.

Encourage Student Peer Reviews

Learning through teaching is a thing, and we want our students to learn as effectively as possible. If you can, and if they agree to it, give your students a chance to look at each other's work and do peer reviews of each other's code.

This is a great learning opportunity for both of your students. Your role is to make sure they do the peer reviews in a respectful, correct, and productive way.

Do Mentor Peer Reviews

Show your work to other mentors. Allow them to learn from you and learn from them and their feedback. Small circles of people that have a strong interest in something and stick together to openly, constructively, criticize each other, that's how specialized groups of people develop.

It would be awesome if we together developed ourselves as an elite group of awesome programing mentors that are close to each other, highly skilled, and super effective in teaching students to code.

Do Code Reviews

We're currently using GitHub in-line comments for code review. This gets students more familiar with additional functionality in GitHub and makes it easy for us to provide well-formatted and on-the-spot feedback. If you are not familiar with giving code reviews in GitHub, check out our Guide on giving GitHub Reviews.

Difficulties: There are some downsides to this process. E.g. it's difficult to code review for students who commit code often because a piece of code you are providing feedback on might not be the most recent version. What helps with this is to always start at doing your code review on the latest commit.

Logical Commits: Generally, advise your students to commit logical pieces of work, e.g. when they finished one lab, or when they finished the labs for one full section of the course. This is a good practice for software development anyways, and helps them get used to working in that way early on.

Pull Requests: If your students are more experienced working with GitHub, you can also suggest them to create Pull Requests. PRs squash multiple commits and you can do a proper code review on the changes introduced through the PR, which is optimal for everyone's convenience, as well as closest to real-life software development and code review processes.

Check For Code Repository Updates

Students should have easy access to code examples and exercises. We host our code on GitHub. Labs and example code are provided in a well-structured repository that students can download and push to their own GitHub.

Students should also set up a second remote that is pointing to the original repo. We will keep the original repo up-to-date, e.g. with feedback received from you and your students.

Students can then pull updates from that second remote. Encourage your students to set up that second remote and check up on whether there were any updates in the original repository every once in a while.