Recently I discovered exercism.io, an initiative to practice writing simple, expressive, readable code.
Taken from the project's about page:
The goal of exercism is to think deeply about simple, expressive, readable code.
You'll notice that the goal is not to write OK-ish code that gets the test suite to pass. If that were the point, then why bother with feedback? We could just give you all the assignments and the test suites, and when the test suite passes, you're done.
With exercism we'd like to provide a space for experimenting with what good might look like. There is no single ideal solution for any given assignment. We don't try to drive you towards a particular solution. There are a number of good approaches to solving each problem, and if someone tries to suggest that there's one good solution, you're encouraged to respectfully disagree.
The format of the exercises are a README and a test suite. You fetch these to your local development environment, where you can make the test suite pass using your usual tools. Then you submit the code to the website.
Those who have completed the exercise previously are invited to ask questions and provide suggestions for improvement.
How it works
- Sign in via GitHub
- Download and install command line client
- Fetch an exercise
- Code a solution that not only passes the tests but is also expressive and readable. Try to do your best!
- Submit your solution
- Receive feedback, improve your code
- Review other people's code
- Rinse, repeat!
Coming Up: Java, Rust, Erlang, PHP, and Common Lisp.
Go to exercism.io