I'm wrapping up my second week of mentoring on Exercism, and my only complaint is that it's taken many hours to review the number of solutions pouring in, whereas I'd just expected an hour or two per week. I'm not sure if that's sustainable (for me) in the long run, but reviewing the same exercise is getting faster each time... so maybe I'll cut that time down.
The biggest challenge so far
It's tough offering advice to someone, when you don't know them or what their level of expertise is. If a less than optimal solution comes in, was it a mistaken submission, or do they really need extra guidance? Do I suggest something basic and risk wasting their time, or suggest something more advanced and risk overwhelming them?
One student submitted a solution that didn't pass the tests, so I offered to help set them up, but then they joked that they must need more coffee and submitted a perfectly good, fully-passing solution. Another student submitted a solution that very specifically passed for only the provided tests, and my gut reaction was to wonder if they were really trying. After a few iterations and some guidance though, they submitted a nice solution that worked for unknown input too. (Apparently, this is more common than I realized!)
Lots of support and feedback
The best part has been the communication with the students and team. Exercism is heavy on feedback and conversations - through Exercism.io, Slack, Gitter, GitHub - and it's all been positive so far. At first, I was concerned with making too many suggestions to students, as if I were just a barrier between them and the next exercise. Then I had to remember that they signed up, completed exercises on their own, and opted in to mentoring - they're here to learn, not just blow through the track.
It's great to see different approaches to the same problem, what's most concise, what's most readable, etc. I've even picked up on a few C# constructs I'd forgotten about - it's great. And it really pays off when you get awesome feedback. 🎉
There's support from the whole team too - the core team as well as other mentors and maintainers. If you become a mentor, there's a slack channel full of people asking questions and bouncing ideas around. I've already created a few pull requests to fix documentation (which are reviewed and accepted amazingly quickly), as well as one to add a few new core tests, and the feedback was great on that too. Not to mention, there's always talk about building more tools to support mentors, and to help share resources and ideas between mentors.
If you have any level of expertise in any of the (currently 48) supported language tracks, then join me. It could be a great chance to learn how to mentor if you ever wanted to before, and you'll almost certainly learn something new too.