I have been an undergraduate mentor for the past two semesters. It’s worth noting that my mentoring experience is limited to a small number of computer science classes, and the experience is probably different across other courses and departments.
Often, I find myself without access to the assignment beforehand, so I will arrive to mentor a lab without knowing what to expect. This leads to exciting moments of trying to figure out what is going on before someone raises their hand and asks for help. If I am asked for help getting started with an exercise, it can be difficult pointing someone in the right direction if I have yet to find the solution myself. This is usually not a problem, given that I have some knowledge of the course and the material currently being covered in class.
I am often fascinated by some of the answers submitted by students. It seems that no matter how simple or straightforward an assignment is, there is at least one unique submission that I’ve never seen before. This provides a great learning experience for me even though I’ve already taken the given course.
The biggest challenge I’m faced with is debugging students’ code. Even a small mistake can cause someone’s program to produce incorrect results. Because there are an infinite number of methods for obtaining a solution, it is never immediately clear what the problem is any particular case. My debugging skills are kept in top shape by helping others with their code.
If I’m presented with an error message from a student, I ask if they have searched the internet for others with the same problem and attempted to implement a suggested solution. I’m not trying to be lazy; in fact, Googling the problem is the first thing I do when I find myself stuck. I’ve found that knowing how to search to solve problems is a very useful skill, and hopefully I can encourage others to take advantage of that.
Besides being technically capable, it is important for me and other mentors to communicate proficiently. I have found a new appreciation for clear communication and the ability to offer a simple explanation. I’m sure all of us have found ourselves in learning situations where a professor, TA, or other student was unable to provide a clear explanation. If I can’t properly explain something, I make sure to find another mentor (or even a student) who can.
While it can be challenging to have the education of others rest in my hands, the experience is definitely a rewarding one. While developing my communication and technical skills, I also get the satisfaction of helping others understand and learn. I encourage others who are interested in mentoring to do so and to take advantage of the demand for assistants in many of the courses on campus.