News, interviews and articles from the Exercism community.

What's next for Exercism?

Just over 12 months ago, we launched the new version of Exercism. It was a radical change, rethinking the product from the ground up, and introducing the concepts of progression and formal mentoring.

Since the launch, we've fixed anything that was broken and added some things that we had conceptually missed, but have mainly watched and learnt how everyone has used the new version. This post outlines what the past twelve months have taught us — the good and the painful. It also lays out what we hope to achieve in the next few months.

The Good

Exercism has experienced a tremendous amount of growth, purely by word of mouth. Since July 2018, 134,000 new members have joined. We've seen 578,000 submitted iterations, and 395,000 posted comments and over 2,500 people signed up as mentors, writing 75,000 posts to each other in our Slack Workspace. The community has supported and encouraged each other, and this has allowed Exercism to thrive. We are incredibly excited and exceptionally grateful for this.

Thanks to our community of maintainers, our language tracks have continued to improve daily. In a few tracks, we've made huge steps forward thanks to the work of the Track Anatomy Project. We now have over 3,000 exercises spread over 50 active tracks.

With the support of Mozilla, we've implemented automated analysis of solutions. Our community has built analyzers for ten languages and we've analyzed 14,000 solutions since launching. The analysis has allowed us to approve 4,000 submissions automatically, saving our mentors about 350 hours of effort.

The Painful

Beyond some early teething issues, there has been one major pain point over the last 12 months: large response times for mentoring, which has meant significant backlogs have built up in some tracks. The challenges inherent in the mentoring delays fall into three main categories:

  • Track structure: When tracks don't have a smooth progression pathway, mentoring becomes much more difficult, mentoring-time per exercise rockets and tensions increase dramatically between mentors and students. Few tracks had a set of core exercises that built on each other at launch.
  • Mentoring must be rewarding: Giving the same feedback over and over is boring. Mentoring becomes interesting when feedback is personal, and conversations are bespoke to a student's understanding.
  • A lack of sense of community: When mentoring becomes lonely, the drop-off rate is substantial. In tracks where there are a handful of key mentors who support and encourage each other through our Slack workspace, mentors tend to stick around. Relationships between students and mentors are also key to this sense of community. Respectful and personalized interactions between people provide a sense of humans helping humans, not purely an education website.

We've spent a lot of time addressing these challenges over the past year, and a huge amount of behind-the-scenes energy trying to understand the core issues at their heart. Our plan for the next 12 months aims to solve these three issues. We hope at the end of this period to have fast and consistent response times across all tracks.

The next 12 months.

Our work for the next 12 months is broken into several sections. This list is not exhaustive — we will, for example, continue to fix bugs and add more general tweaks to the website and CLI — but it will form the focus of our work.

Restructure tracks for student enjoyment and ease of mentoring

The Track Anatomy Project has been crucial in fixing some of the immediate problems of tracks on Exercism. Over the next 12 months, we will explore more in-depth questions about fluency, learning, and unlearning, and dig into what is unique or particularly challenging about different languages.

Automate the automatable

We are now automatically approving solutions in ten tracks. For these solutions we also provide automated tips for improvement.

We will expand existing analyzers to handle more exercises, and add analyzers for other languages. We also want to better incorporate the analysis into the students' and mentors' experience on the site, in particular by identifying and reporting common problems that prevent automated approval.

We will start running the test suites against submitted solutions.

We believe this additional automation will have the following benefits:

  • Reduce student frustration: We want to give students a quick feedback loop. If a solution is optimal, let them continue. If it fails predictably, tell them so they can improve it.

  • Dramatically reduce queue size: Our prototyping has shown that for simple exercises we can provide automated mentoring in over 90% of cases. While we expect that number to be smaller on more complex exercises, we think we can provide automated mentoring on about half of the submitted solutions.

  • Removes repetitiveness for mentors: Most solutions fall into similar buckets. A lot of mentoring relies on copy/pasting canned answers for each class of solution, which is tedious and uninteresting even to the most determined of mentors. Removing common solutions from the mentor queue will allow mentors to focus on the cases that require their knowledge and experience.

Encourage respectful relationships between students and mentors

Mentoring on Exercism is currently a very transactional process. A student submits a solution, and a mentor gives comments. Other than the generally friendly nature of conversations, there is no "relationship" between the mentor and the learner. There is no easy way for a mentor to remember if they have given feedback to that student before. There is no way to know if a student is a beginner or an experienced programmer and tailor feedback accordingly. There is no way for a student to know their mentor's background and respect/appreciate the feedback in that context.

We will explore two things that we hope will make the whole experience more empathetic, making mentoring more rewarding and enjoyable.

The first is more in-depth profiles for both learners and mentors, with much tighter integration into the mentoring experience.

The second is the idea of student-mentor pairings. This would enable students to continue to learn from mentors they find particularly helpful, and mentors to work with students whose learning style or background they understand well.

Turn our userbase into a community

When tracks "work," they work because they have a small number of ever-present mentors. These mentors advise others, improve the mentor notes, welcome new people, answer their questions, and generally make people feel part of something. Once a track gets one key mentor who is comfortable being that voice on Slack, the track's backlog tends to reduce quickly. This momentum is key. When it feels like the backlog is going down, everyone jumps on board and helps. Then everyone wants to keep the backlog low.

Those mentors who mentor the most regularly are also the most active on our Slack community. We believe this is because they feel the most connected to Exercism, and the most supported. Mentoring becomes more than just replying to students—it becomes about sharing in bigger goals with other like-minded people.

We are convinced that the fundamental blocker for Exercism's growth and success is not a technological one, it's a people one. Our focus needs to be on considering Exercism not as a website or product, but as a community—a place where people can gift their time to helping others. Exercism offers people the opportunities of connection, community, purpose, kindness, but we currently do not harness or encourage this well.

Over the next 12 months we will be working out how to make Exercism feel like a community rather than a website. We don't want to water down the functional reality of learning and mentoring. We don't want to be a "social network" or an unfocussed forum for discussion. We want people involved in Exercism to feel connected to the other thousands of people who are also using it. Getting this right is complicated and will be a slow and careful process.

Once we get this right, we will lower the barrier to mentoring on Exercism. We will make it easier for anyone to help others, knowing that there is a strong community there to support and moderate what is happening within the site.

Add extra motivation to contribute

In designing v2, we made a very deliberate decision to continue to avoid gamification. We think it is essential that people participate because they find intrinsic value, not because we tickle their reward centers artificially.

The people who remain active are those who continuously challenge themselves in new ways within Exercism's ecosystem. Whether it's maintaining a track, mentoring a new language, writing blog posts, or building analyzers, they keep finding new ways to keep things interesting. For all the work we put into adding a sense of progression and unexpected reward for students, we have nothing similar for mentors, and I think this is a real loss.

Also, we want people's hard work and amazing contributions to be recognized and celebrated.

We want to explore ways to provide opportunities for our community to have new challenges, opportunities and privileges the more they use Exercism. We are going to spend time asking what things can we add that would be valuable to Exercism and valuable to people within our community, while not detracting from the intrinsic motivations that must continue to power Exercism.

We will tread carefully to get this right, and we feel strongly that getting it right will make a tremendous difference to Exercism.

Shouting about being us

The final area we want to work on over the next year, and the final big gap we think exists at the moment, is better communicating what Exercism is about, who we are, and what we're trying to do. When people assess if they want to give their time to Exercism, they're going to evaluate us on our values, and principles and their experience of us outside of Exercism itself.

So we need to shout about our vision, shout about who we are, what we believe in. We need to be constantly reinforcing the vision to everyone in the community, getting excited together about all we can achieve with Exercism. We need pages that talk and excite, and videos that feel like there's people behind the text. Our aim in this is strictly not to try and acquire users - it's to be clear about who we are and to keep people excited and motivated to be part of us. It will probably mean we do grow faster and gain more momentum, but that's not what we want to be measuring or caring about. We want to care about everyone associated with Exercism feeling excited, empowered, and connected.

We have started doing small bits of this just by being more accurate on social media, and already that has started to build more excitement and connectedness among members of our community, and helped promote our "brand" as a positive one. We intend to carefully build on this over the next year, and make Exercism a place that everyone involved is proud to be associated with.

In conclusion

We are really excited by the next twelve months, about how we can help Exercism take the next steps to reaching its potential, and about how we can better serve and connect our community. I want to finish by saying a huge thank you to everyone that's contributed over the last year, whether as a maintainer, mentor, student, or in some other way. Thank you for your excitement, ideas, contributions and patience as we continue to improve things.

Note that Exercism has a strategy document which we keep updated with our plan for how to take Exercism forward, and which you might like to keep an eye on in the future.

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

Community Comments

With the support of Mozilla, we've implemented automated analysis of solutions. Our community has built analyzers for ten languages and we've analyzed 14,000 solutions since launching. The analysis has allowed us to approve 4,000 submissions automatically, saving our mentors about 350 hours of effort.

Wow! I never knew how much work the analyzers saved! It's super cool to see those numbers

I am always amazed how good the people leading Exercism are at identifying issues, root causes and possible solutions and presenting them in a structured manner.

This post resonates very well with my experience as a mentor and it shows me things are moving in just the right direction.

There is just one topic I would like to dive into a bit.

When tracks "work," they work because they have a small number of ever-present mentors.

I totally agree this works ... but I feel a bit like this works the way individual "heroes" make development teams work. They are running the show, doing lots of work, answering questions etc but they might not really be committed to growing others, giving them some of their responsibility, making themselves obsolete. As an extreme example, imagine a Slack channel where one person always answers every single question that is posted very quickly. Where does that leave others that want to help answering questions? So "heroes" are great but can also become an issue in the long run.

I currently feel like I can of course help out a bit left and right but there is always that elite group calling the shots and no way for me to get to equal terms/ eye level with them.

I would love to see the rights/privileges/responsibilities spread out a bit more beyond the current 1-3 people per track. One thing that would maybe help was already touched in the post above in the section "Add extra motivation to contribute". If we could find a more canonical path for people to increase their rights and responsibilities that would be great! For example for becoming a maintainer the situation seems to be the usual "just do the work and someone will notice you (maybe)". Is that really working out? Or is it the people doing work but also being very vocal and asking for the privileges that get them? Self-promotion is hard for some people. I think we can do better, not just to motivate people but also to really be as inclusive as we pride ourselves to be.

June wrote:

For example for becoming a maintainer the situation seems to be the usual "just do the work and someone will notice you (maybe)". Is that really working out?

In the last two weeks I've recommended that two people become co-maintainers of tracks that I'm involved with. One started pushing an insane amount of pull requests, and the other wrote to me on Slack and said he'd really like to help. Perhaps there are stories to the contrary (dead tracks? disputes? some king on an ant hill?), but I think we should focus on them rather than speculate.

Maintainers (and track contributors in general) get awarded with recognition, their tasks are more versatile, and they can use it as an opportunity to participate in the Open Source process. I see a much bigger problem in my own motivation as a mentor: Eventually it's mostly a bunch of copy-pasting and a ticker that goes up until it resets again, and a bunch of thank-yous from people I never get to know.

@Logan: Yeah - awesome isn't it. A big part of the next 12 months for us is going to be making sure we expose these sorts of numbers to the community! :)


@June:

I am always amazed how good the people leading Exercism are at identifying issues, root causes and possible solutions and presenting them in a structured manner.

Thank you! We really want to bake "asking questions" into Exercism's DNA. It's crucial for both product work and for mentoring, and it really helps get to the bottom of things.

So "heroes" are great but can also become an issue in the long run.

100% agree with this. I think the point I was trying to make here was that a track relies on some contributors that set the culture for that track and make it feel alive. I actually don't think they even need to be the person that mentors the most, just someone that makes everyone feel welcome and part of that track.

I actually wrote the following in my original draft: "If you don’t actively go out seeking thing to do (which has generally meant befriending one of the core team on Slack) there is no progression or newness for people. There is nothing to unlock, no structures to move through. For all the work we put into adding a sense of progression and unexpected reward for students, we have nothing similar for mentors, and I think this is a real loss.".

If we could find a more canonical path for people to increase their rights and responsibilities that would be great!

This is exactly what I want to achieve :)


@Simon:

I see a much bigger problem in my own motivation as a mentor: Eventually it's mostly a bunch of copy-pasting and a ticker that goes up until it resets again, and a bunch of thank-yous from people I never get to know.

Totally agree with that too. As we focus on things like making relationships between people more personal, automating things that can be just copy+paste, allowing mentors to build our proper profiles with testimonials, etc, I think this will start to become less repetitive and transactional, and much more rewarding :)


Thank you all for your comments! :)

Write
Preview