CodeKata

Code Kata is an invention from the mind of Dave Thomas, one of the personalities behind the successful Pragmatic Programmer line of books. In his series of Kata, Dave tries to apply the concept of practice from other forms of art to programming: using simple, artificial exercises, let the practitioner experiment and learn in practice sessions, rather than "learning on the job" (which, these days, has become the norm rather than the exception.

At the time I became interested in this, there were 21 Kata listed on Dave's website. As I have time, I plan on documenting my progression through them here. Generally, you can probably expect to see Python implementations, since that's usually my preferred language. I'll also try to include links to other implementations as I find them.

Kata Two: Karate Chop
CodeKataTwo
Kata Four: Data Munging
CodeKataFour

Other (similar) projects

Other similar stuff I've found myself doing…

Write a program that prints the numbers from 1 to 100. But for multiples of three print "Fizz" instead of the number and for the multiples of five print "Buzz". For numbers which are multiples of both three and five print "FizzBuzz?".

  • Object Calisthenics by Jeff Bay. Follow a restrictive set of rules during the creation of a 1000 line program, targeting your ability to write OO code.
  • Implement a linked queue in Java, such that no if statements are used, and no method is longer than one line; there are some additional constraints (interface, implementation fundamentals, etc) at the link.
  • More good discussion of what the author calls "deliberate practice"; practicing intelligently, with goals, rather than randomly stabbing at it.
  • Project Euler, a set of programming problems with a heavy mathematical bent.