Training guide
If this is your first time mentoring for this course, or if you're just visiting to brush up on your understanding, you've come to the right place! The following sections will guide you through a variety of course guidelines and helpful teaching to ensure that students have a positive learning experience.
Responsibilities
As a mentor in this course, you will be responsible for the following:
- Independently guide several students through their experience in developing a backend application.
 - Review code and provide constructive feedback.
 - Expect to give between 2 and 4 hours a week towards mentoring, depending on the student's needs.
- Some weeks may be busier than others, depending on the complexity of the week's assignment.
 
 - Participate in weekly check-ins with each student.
 
Guidelines
Create a safe learning environment
The most important thing you can do as a mentor is to make people feel they are in a safe learning environment. As mentors, we should do everything we can to make programming interesting and exciting, but necessarily challenging, too. Many students will be frustrated and confused throughout their experience; it's important that these students learn to embrace this challenge.
Reviewing code
The mentor's primary purpose is to guide students to improve their understanding of the course material. The majority of this learning process is expected to occur during code review.
Strategies
Effective code review takes practice, and is often learned through experience. In this class, mentors are expected to spend adequate time with the code to fully understand the student's solution and overall approach. It's often helpful to check out the student's branch locally so that you can leverage your IDE or text editor of choice.
Code style
It's important that students conform to Go language style guides, such as Effective Go. You are not expected to know all of the principles described in such texts off the top of your head, but you should make code cleanliness and style a priority in your critiques.
If you spot a code smell, call it out and have a discussion about it! Your student is not expected to refactor and address all of their code with respect to your feedback; it's important that you give them an opportunity to provide their own opinions and discuss! Who knows, you might even learn something!
Don't give solutions away
During code review, mentors MUST NOT give the student a working solution if the student has not already solved the problem on their own. However, it is encouraged to offer alternative solutions once the student has demonstrated that they've successfully solved the problem and therefore independently grasped the concept.
Communication
Mentors will be able to formally communicate with the course staff, other mentors, and their students in Piazza, Slack, weekly check-ins and through code review. Each communication platform is suitable in different situations, some of which are described below.
Piazza
Piazza is used for mentors and students to post questions or tips that should be shared amongst all other students. For example, if you find yourself referencing an insightful article or website in a code review, make a post about it! The course staff and future mentors will be able to learn from previous knowledge sharing, so these efforts will improve the course over time.
With that said, encourage your students to use Piazza in the same way! They will be graded on participation, so this is a great way for them to earn those points.
Slack
Slack is useful for ad hoc support that doesn't necessarily warrant an individual Piazza post. Students will likely use this for programming support amongst one another, but they are not allowed to give each other answers on this platform. If you notice any such exchanges in one of the public channels, please notify the staff with a link to the thread immediately.
You should also use Slack to communicate with other mentors for ad hoc assistance. But remember, please create a private Piazza post for other mentors if there's any chance that other mentors can also benefit!
Weekly check-ins
The weekly check-in is an opportunity for students to receive 1:1 support and should feel like private office hours. This experience will largely depend on each student's preference and relative skill level, so be prepared for a wide range of experience.
We ask that you keep a lightweight thread of notes and talking points between you and your students. This simple exercise can give students a much more gratifying experience following the conclusion of the course; the record shows how far they've come and how much they've grown since starting their journey.
Again, the most important thing you can do as a mentor is to make people feel they are in a safe learning environment throughout their experience.