Programming is hard. With practice it gets easier.
Exercism gives you hundreds of practice problems in over 30 programming languages, and a place where you can get feedback on your solutions.
Exercism is especially well-suited for three types of practice:
- gaining fluency in your first programming language
- ramping up in a new programming language
- developing the skills to be a great lead developer: code review, refactoring, and mentoring
The process happens in two places.
- Solve exercises in your local development environment.
- Discuss solutions on the Exercism website.
Once you submit the solution to an exercise you can:
- learn by listening: receive feedback on your code.
- learn by reading code: browse all the other solutions to exercises you submitted solutions to.
- learn by sharing your experience: provide feedback on other people's code.
Even in the most trivial exercise, there are many important things to discuss. Simplicity, naming, readability, idioms, good use of existing libraries, performance, and much, much more.
Get started using exercism on the exercism.io website.
Submit the unfinished solution and describe in a comment on the website what you tried, and where you're stuck.
Or jump into the support chat, and we'll try to help you out.
That's always frustrating. Go ahead and open a GitHub issue, and we'll help figure out what's going on.
We have a Code of Conduct.
If you need to report something, please email @kytrinyx.
There are many ways to contribute to Exercism, and only a few of them involve writing code.
Use our guide to finding your way to help you find the right spot to start.
If you want to work on the Exercism website, check out the installation instructions in the Contributing Guide in this repository.
We send out a weekly "behind the scenes" update about new language tracks, bugs that crop up, features that people are working on, and other Exercism-related tidbits. You can sign up for the newsletter here.
Exercism.io is free and open source, and many, many people have contributed to the project. This is a project that started by accident and could never have gotten off the ground by the efforts of any single person.
Thank you! ❤️
This is the central point of contact for Exercism.
The project is a bit sprawling and has many components.
If you have any issues or questions regarding the website (https://exercism.io) please open an issue in this repository. To report errors in the website copy or submit fixes for typos or other improvements, please see the exercism/website-copy repository.
For problems with the Command-Line Client (CLI), open an issue in exercism/cli.
The exercises are all in separate, language-specific repositories. These repositories are tagged with the topic #exercism-track
. From there, search for the track (programming language) you are participating in.
Unsure? Open your issue here
If you aren't sure where to open it, then pick this repository. It's as good a starting point as any!
If you need to report a code of conduct violation, please email us at team@exercism.io.
The code for the website lives in exercism/website. The code for the old website is in this repository, in the v1.exercism.io branch.
Read about our Team on the site: https://exercism.io/team