A Tour of Exercism (part two)

Uzi Landsmann
Webstep
Published in
6 min readAug 12, 2019

--

The best way to get better at something is to teach it to others

Attention: this article was written when Exercism was in version 2. Now that version 3 is released, this information is no longer accurate. Have a look at the fabulous new version of Exercism to learn more about it.

This is the second article about Exercism. Part one gave an introduction to the platform and to solving some exercises and getting mentor help. This article will discuss becoming a mentor yourself, and how much you can learn by helping others.

Becoming a mentor

Have you ever considered why a lot of free stuff is being offered by the open source community, such as libraries, example code and tutorials — available for you to use with no extra charge? Have you ever wondered how do the people who are producing all this stuff get paid and why do they spend their time doing this stuff? Have you ever wondered where you yourself stand in this open source world and whether you should be contributing to it as well? Well I did. After solving a lot of exercises and learning new languages using the Exercism platform, I came to think that it’s about time I did something meaningful too, and help the community in the same way I received help, by becoming a mentor. If you’ve ever felt the same way and can relate to this, please read on and let me tell you about how you, too, can contribute to making this a slightly better world.

You mean you do all that FOR FREE??!!

People sometime ask me if I am getting payed for being a mentor. Well, no, I guess I don’t. Not in money, anyway. But on the other hand, I have learned so much doing it, and I get a lot of appreciation and support from both mentees and the community, so I guess I can say I saved some money by not attending a lot of expensive courses and buying a lot of books. You could say I could have done worse.

So where do I start?

To become a mentor, start by visiting Exercism’s colorful mentoring start page, which looks like this:

Exercism’s start page for mentors

Once you’ve read through the information and clicked the Become a mentor button, you’ll be redirected to a page with even more information where you will be asked to sign to agree to Exercism’s Code of Conduct and select a track you would like to mentor. As it says in this page, you are encouraged to choose one track to start with, in order to familiarize yourself with the process. If you would like to mentor more tracks or simply change the track you mentor later, you can simply visit the mentor configuration page to do so.

Right. Now what?

Go to the Mentor dashboard and have a look. You will see two tabs: Solutions you’re mentoring (nothing here yet!) and Next solutions.

New solutions to mentor

As you can see in the New solutions tab, there are a lot of submissions that are waiting for mentoring. The list is ordered so that core exercises are shown first and side exercises are last. Inside these groups, the oldest solutions are shown before newer ones, to keep things fair. However, it is up to you to choose whatever solution you’d like to mentor, either by looking at the list or by using the filters to the right.

Let’s pick a Two Fer solution.

Two Fer solution waiting to be mentored

Here we can see an awesome solution to the Two Fer exercise. You have two buttons to choose from to the right: Review this solution and Skip this solution. If you feel uncomfortable with reviewing this solution, for whatever reason, just skip it and move to the next one. Or push the Review this solution to comment on it.

Reviewing Two Fer

Here’s the Mentor discussion: It’s a mini text editor that lets you comment on the mentee’s solution. At the bottom right you can see a command line you can run to download the solution to your computer in order to run the tests and open it in your own editor. Let’s try it out.

Two Fer in my editor

When you download the solution, some tests might be ignored, so remember to comment out the Ignore annotation (or whatever is used in your programming language) before running all the tests.

Seeing that all the tests pass and that the code looks fine, let’s write a comment and congratulate the mentee on a successful submission.

Commenting on Two Fer

Since this is the first exercise after Hello World, I find it appropriate to welcome the mentee to the track and let her know how wonderful I think her solution was. In this case, there’s nothing left to do but to press the Approve and comment button. In other cases, perhaps you’ve seen some flaws in the solution or realized that some tests are not passing. Try to explain it to the mentee in the most respectful and humble way you could find (you know how hard it is to hear that your own code sucks, right?) and press the Comment button. The mentee will receive a message telling them that a comment have been made on their solution and will either comment back or submit a new solution for you to look at. In either case, you too will receive a notification and reiterate, commenting or approving the mentee’s solution.

So what’s in it for me?

So yeah, I sometimes spend quite some time doing mentoring. And it can sometimes get a bit repetitive. But for the most you’ll be surprised at how different solutions people can come up with, solving exercises that you thought had the most straightforward solutions. And seeing these will broaden your code arsenal in ways you have never thought would be possible. The Exercism community asks you to mentor at least 10 exercises per week, which is not at all too much work, and I often find myself mentoring much more than that.

So what exactly do I get from it? Here’s my list:

  • A sense of satisfaction that you get when helping other people.
  • A sense of being a part an awesome community who is doing important stuff that matter to a lot of people.
  • Learn a lot by looking at how different solutions people come up with and through discussions with them.
  • Sharpen your code review skills and be better at spotting flaws in your own code and in your fellow programmers’.
  • Be a better mentor (and sometimes, a teacher) by helping mentees understand new language concepts and patterns.

Anything else I should know?

Well yeah, the Exercism community. When you become a mentor, be sure to join the the Exercism mentor slack (you’ll receive the link once you’ve became a mentor). It’s quite a vibrant and nice place to hang around. Here are some channels to join:

  • Introduce yourself in the #introductions channel
  • Read everything in the #start-here channel
  • Ask questions in the #questions channel
  • Chat in the, you guest it, #chat channel
  • Join your mentoring track channel, such as #track-java or #track-kotlin

Also, take a look at the Exercism Github project, where you can find all the code for the site, the CLI and for all the tracks, follow and create issues, submit bugs and even create pull request when you’ve fixed something that was broken.

Got any more links?

Why, yeah, I’ve got a lot of links. Here are some:

--

--

Uzi Landsmann
Webstep

Software developer at Webstep. I write tech stuff and fiction in English and Swedish. Click on my lists to see more!