Not like the spitting up green pea soup exorcism but Exercism.io, one of many great resources for learning programming languages by solving actual problems. Similar to Ruby Koans, you are given a programming problem to solve and a set of unit tests. Your challenge is to make all the tests pass by writing code (ala TDD). As you write your code and run your tests you may be given hints leading towards a solution or you may have to just figure it out on your own. Once all your tests are passing, you publish your code to the Exercism site where others can review and you can see other people’s solutions for the same problems. I’ve learned more by reviewing other people’s code than all the books and blog posts I’ve read.
I highly recommend this ‘learning by doing’ style and my advise to anyone embarking on this endeavor is to work the problems one test at a time, refactor often and look closely at the tests while you write your code.
Anyone else gone down this path? We can discuss actual exercises and share resources we’ve discovered that helped us solve them.