CodeKata.
Dave has nicely put in words a practice I have personally used (albeit with less rigor, he did say Kata after all) and nearly every Software Developer I know (who is worth a damn) has a similiar set of exercises they like to apply when learning a new language.
He suggests many different problems to practice software development with, here are his first three:
Supermarket pricing. Pricing looks easy, but scratch the surface and there are some interesting issues to consider.
Karate Chop. A binary chop algorithm is fairly boring. Until you have to implement it using five totally different techniques.
How Big, How Fast? Quick estimation is invaluable when it comes to making design and implementation decisions. Here are some questions to make you turn over the envelope.
As I am deep into learning Ruby I suspect this list is going to be spending a lot of time in Firefox.
Thanks Dave.


