News, interviews and articles from the Exercism community.

The Track Anatomy Project

In September last year, we quietly started Exercism's Track Anatomy Project. Since then we've been telling more and more people about it, and have now decided that the time is right to publicly introduce the formal work that we are doing to improve the tracks and exercises on Exercism.

To understand the purpose and need for the Track Anatomy Project we have to look back to Exercism's roots. Exercism started as a variety of language tracks, each with a set of overlapping exercises. There was no order or structure as such—anyone could choose any exercise that they felt looked interesting, solve it, upload their code, and hope someone found it and commented on it. At the core of our 2018 relaunch was recentering Exercism around a much more structured approach to both the tracks themselves and the learning that accompanied them. We decided to reform language tracks to consist of a fixed spine made up of required "core exercises," which unlocked optional "side exercises" as they were completed. We asked maintainers to structure the core spine to increase in difficulty as well as to design an unlocking sequence that was relevant to the techniques being practiced. Different maintainers took different approaches to this with varying levels of success. Some simply didn't have time, in which case we just chose ten relatively random exercises to form the initial core.

It became clear very quickly that the design of the track made a tremendous difference to the success of that track. Over the first few months after launch, we made a series of critical observations:

  • Languages which started with an exercise that was too difficult would frustrate people and lead to a rapid drop-off.
  • The difficulty of mentoring an exercise was directly correlated to the complexity of the exercise rather than the difficulty of the exercise.
  • Exercises that could be solved in one typical way (e.g. "acronym"), or that have clear learning objectives were much quicker to mentor than those that had variety (e.g. "bob").
  • The order that concepts are introduced matters—covering essential idioms in the first few exercises makes the subsequent exercises easier for both the learner and the mentor.

Based on this, we realized that a large part of the success of mentoring on Exercism was going to be dependant on the quality of the "curriculum" of the tracks—having the right topics, covered explicitly in the right exercises, in a suitable order. We decided that we needed to develop a formal framework that we could use as a guide for maintainers, and create a track that we could use as a gold standard for other tracks.

In parallel with all this happening, one of our mentors, Maud de Vries, who has been a professional coach for 20 years, had started regularly posting suggestions about how to improve the Ruby track. Her ideas were remarkably aligned with the realizations that we were also having. Quietly in the background, Maud was analyzing every Ruby exercise in turn and developing a map of how the exercises connect, the concepts they contained, and how they could be better arranged to form a track structure that was well-structured for learners and fun and engaging for mentors to work with. When she showed us some of her work, we decided that she was the right person to develop our track framework and that she could take the Ruby track and make it our exemplar. Since then, Maud has been working part-time for Exercism, redesigning the Ruby track, and developing a multi-stage framework for maintainers to work through to quickly replicate her learnings in other languages. Since October, Erik Schierboom has been working in his spare time as Maud's guinea pig, testing and using the framework to improve the C# track, which in turn has had a huge impact on the development of the framework itself.

We are now getting close to the stage where we will be able to take our next tranche of maintainers through the framework progress and more rigorously test and refine it. Once we've completed this next round, we hope to publish a first version of the framework that can undergo more scrutiny from the broader community. We're really excited to reach that point and to showcase all of the work that's been going on behind the scenes. We feel this is a giant step forward for Exercism that will significantly improve both the learning experience and that of mentors.

I want to finish this by saying a huge thank you to Maud who has tirelessly spearheaded this project, and to Erik who has given up so much of his free time to help out.

Jeremy Walker
Co-founder of Exercism. I'm an entrepreneur and software developer, and have been running a variety of businesses and non-for-profits for the last decade in the fields of medicine, education and artificial intelligence.
View Profile