The devil is in the details

Deep Practice

Deliberately focus on improving your skills.

Gain a deep understanding of the fundamentals of your craft.

Experiment in a place where bugs don't inconvenience anyone.

Crowdsourced Mentorship

Practice providing useful critique.

Discuss code in both subjective and objective terms.

Strengthen your problem-solving skills by guiding others through the process.


Focus on expressive, readable code.

Work in your local development environment using your usual tools in multiple languages. We give you a test suite, and you make the tests pass... but that's just the first step.


The code is a conversation starter.

Have a thoughtful discussion with your peers about the choices that you made. Take this opportunity to explore idioms, style, and trade-offs. There's no right answer, and many good questions.

Pay it Forward

Explore other people's solutions.

Articulate what you like and dislike in other people's code. Have a thoughtful, nuanced discussion, deepening your own understanding of the design choices that you make every day.

Better code through conversations.

Thousands of conversations are happening on exercism. Here's one of them.

You start with some code. Talk about it a little. Rewrite the code a bit, then post the new version. Make it better. After a few cycles you've got improved code, and perhaps even a new friend!

Try it.

You don't need to log in to check out the problems.

Download the command line client, and extract it.

The binary is named exercism. Fetch the first exercise available for each language:

$ ./exercism demo