Learn by doing. Get better at programming through fun coding exercises that build your understanding of concepts.
Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
Given the position of two queens on a chess board, indicate whether or not they are positioned so that they can attack each other
Which of the residents drinks water? Who owns the zebra? Can you solve the Zebra Puzzle with code?
Exercism is primarily built as a CLI-first tool. Download and submit exercises right from your terminal.
Don't spend hours installing a language locally just to try it out. We support all 70 of our programming languages in our in-browser editor.
Not quite sure how well you've done? We run automatic analysis on your solutions to give you quick feedback and points of improvement.
Discover new and exciting ways to approach an exercise by getting mentored on it. Become more familiar with the conventions, idioms and opinions of a particular programming language.
When learning a new language, the hardest part is not being aware of the gaps in your knowledge. Our mentors can look at your code and immediately see the ideas you're not familiar with and give you a level-up by unlocking new knowledge.
Becoming fluent in a language is more than being able to write code in it - it's about being able to think in that language. Our mentors will help guide you to how to reshape your thinking to write idiomatic code.
Getting feedback from real people is an amazingly exciting way to learn. And becoming a mentor and giving feedback yourself is an even bigger step forward. So complete the circle - be mentored and mentor 🎉