Exercism Teams Edition is in beta. Please log any issues you find in our GitHub issues repository.


Exercism first began to give people opportunity. Katrina wanted Exercism to offer people who didn’t necessarily have opportunities handed to them the chance to attain a better standard of living and a better life. Learning programming is hard and overwhelming and there are a bajillion resources, but most of them are too difficult, confusing, condescending, boring, vast or patchy.

By creating lovingly-crafted resources with a positive and caring community, Exercism has helped empower thousands of people to realise that programming has the potential to be fun, exciting, and interesting, and give them the confident realisation that they can succeed and thrive.

Mission Statement

To enable anyone to achieve fluency in any programming language for free, in order to give opportunity to all and improve the quality of software development worldwide.


We envision a world where anyone from any background can become fluent in any programming language for free. Through programming exercises, resources and a safe and nurturing community, we help people develop their fluency in programming languages, enabling them to build understanding and confidence, which empowers them to take the next steps in their careers as software developers.

Core Principles

Based on this, we consider this is what Exercism looks like at its core:

  • Exercism’s value is in the community, the discussion and the learning.
  • Exercism should be enjoyable, challenging and valuable.
  • Exercism should feel safe and nurturing.
  • Exercism focusses on the learning journey, not the destination. Empathy and encouragement are more important than absolute factual correctness.
  • Exercism should not be limited to being an online tool. It could be used in schools or in places without good internet access.


Exercism is about improving Fluency, defined as “the ability to express oneself easily and articulately in a particular language”. In programming terms, becoming fluent in a language is critical because it frees up cognitive resources for the more advanced parts of software development. Mastering the basic syntax, idioms, conventions, and standard library of a programming language allows for the brain to focus on actual problem-solving. Once you have achieved fluency at the basic level, it is much easier to improve your proficiency, and then ratchet up your fluency as you go.

Something need changing on this page?


Thank you!!

Programming person with notebook