Exercism is a website that offers small programming exercises in many different languages. The process of using Exercism is:
- Download an exercise.
- Solve the exercise.
- Submit the solution.
- Wait for feedback from other people and/or look at other people’s solutions.
In 2016, I used Exercism to improve my Ruby skills and gain confidence before I found my first job. Back then, everyone could comment on other people’s solutions, but in reality, few people ever did. It was still a great tool to learn, but my experience there was lacking this one aspect.
Recently, Exercism had a big redesign and introduced mentoring. Mentors are people whose responsibility is to give feedback on student’s solutions. You can still be a student and a mentor at the same time, even for the same language, but only mentors give feedback.
By creating this sense of responsibility for a smaller, more motivated group of people, Exercism ensured that more and more students receive feedback.
As soon as I saw the call for mentors on Twitter, I knew I had to join.
I started mentoring Elixir 3 weeks ago and I’m loving it. Here’s why.
1. Helping others
The “thank you”s from the students brighten my day.
I like feeling useful. I always wanted to help others learn to program, but it’s not that easy to find students IRL without actually being employed as a teacher.
Exercism gives you students that want your help and makes it easy to engage with them. Online, 1 on 1, in written form. You don’t have to be trained in speaking to a class of 100 people, and you don’t have to spend hours on it.
2. Variety of approaches
Being able to see different solutions to the same problem is my single favorite feature of Exercism.
By reading solutions submitted by others, you will find code that is better than your own. By reading solutions submitted by others, you will learn new ways of looking at the same problem.
Students can do that too, but being a mentor ensures you do that often.
3. Practice code reviews
Giving good code reviews is a skill and should be practiced. You need attention to detail, seeing the bigger picture, proficiency in reading code. Worst of all for me, you need social skills.
On Exercism, I give feedback to strangers over the internet. It’s a way harder task than reviewing my coworkers.
We don’t know each other’s faces. We haven’t been going out for a beer after work. They don’t know my sense of humor. They are not motivated to continue working by a monetary incentive.
How do I point out room for improvement without hurting their feelings? How do I criticize so that they still are motivated to write more code? How do I make them feel like they accomplished something here?
Mentoring students is teaching me how to be more patient, more understanding and less harsh.
4. Promoting my favorite language
The absence of Elixir in the TIOBE Index Top 50 breaks my heart.
By mentoring students interested in Elixir, I am hoping to help the Elixir community grow.
5. Exercism Slack team
Mentors have their own Slack team. It’s a place where we can share our thoughts about particular exercises and solutions, and ask one another for help.
I work in a very small team at my job, so I really appreciate having contact with other Elixir developers too.
Being a mentor is as much about teaching as it is about learning. If you are experienced in some programming language, go ahead and give it a try - there is a lot to gain from it. Don’t worry, nobody is going to force you to spend more time on it than you can.
If you need extra encouragement to give Exercism a try, watch Overkill by Katrina Owen.