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.
Other (similar) projects
- Practicing Programming by Steve Yegge
- TopCoder: programming challenges/contests
- Python Challenge: a series of Python programming challenges
- Python Contest: more Python programming challenges, ala Perl
- Perl Quiz Of The Week: a weekly Perl programming challenge from a few years ago
Other similar stuff I've found myself doing…
- The FizzBuzz problem (source:misc/fizzbuzz.py) from Coding Horror:
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.
- Want to work for Facebook? Then you'll need to solve a few of their job puzzles.
