Please feel free to reply to this post with other resources I don't have listed. I will try to keep it up to date as I discover more.
Programming Exercises
Pragmatic Programmers Code Kata
A collection of Kata from the folks over at Pragmatic. As of 24-Jan-2011, there are 21 different kata listed on the site.You can also find information about kata, koans, kumite, and the Dreyfus model. All interesting topics and worth looking at.
Coders Dojo
There are no kata listed on this site, but if you are interested in kata, you need to know about this one. Coders Dojo provides an on-line live dojo for Ruby. You can execute the kata in the browser. Alternatively, you can run the kata on your local machine. In either case, you can then share the kata with other members of the site and get feedback. They have support for several other languages.CodingDojo
There are approximately 25 different exercises on this site. They are broken down into categories; Algorithmic, Game Modeling, Math Oriented, String Manipulation, and Specific Technologies.Coding Kata
Over 20 kata are listed here. This site is nice for the beginner. The first kata is a Hello World that walks you through the steps of setting up a java development environment. They provide steps for several languages, all of which run on the JVM. You can choose from Java, Groovy, Scala, Clojure, JavaFX, Jython, and JRuby. They also have a javascript option.Ruby Quiz
While listed as the Ruby Quiz, the problems listed here can be done in any language.There are 156 challenges listed here, so there is plenty to keep you busy for quite a while. Many of them are also available on other sites.
Project Euler
Taken Directly from the Project Euler site:Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.
Programming Praxis
The sub-title of the programming praxis site is "Sharpen your saw". I discovered this after I named this post.There are over 200 programming challenges on this site. You can find listings in chronological order, by themes, or through a search mechanism. Much of what is compiled here is available on other sites as well, but there are several unique challenges to be found here.
Sphere - the mother of them all?
There are over 8200 various programming challenges on this site. This is by far the most comprehensive collection of programming challenges I've found thus far.TDD Problems
Thanks to George Dinwiddie for pointing this one out. TDD Problems is a listing of approximately 30 (so far) that, according to the site's authors, meet the following criteria:- they are real-world, not just toys
- they are targeted towards learning TDD (that is: they are small and easy enough to work out in say half a day)
- they don't involve any of the harder-to-test application development areas: GUI, database or file I/O. (since those topics are considered too hard for the TDD-beginner)
- they have been solved by a TDD-practitioner previously, proving their appropriateness for [the] site
Carnegie Mellon Craftsmanship Katas
This list of kata is from the Carnegie Mellon University - Silicon Valley curriculum. If you are not familiar with this program, I suggest you look into it. If you've a child considering a major in computer science, this unique program is teaching students how modern software is developed.The Gilded Rose Kata
This kata made the rounds on the Software Craftsmanship Google group. It is in C#, but could easily be recreated in your language of choice. You will want to get the source for the kata off of NotMyself's github account.There is another version of The Gilded Rose Kata available from Terry Hughes.
Code Brawl
CodeBrawl is a series of coding contests. You can subscribe to the feed and get notified when the next contest starts. If you prefer to take your own sweet time, you are free to try out any of the prior contest challenges; create your own testing library, a diff tool, or a command line todo tool among others.Koans
A koan is part of the Zen Buddhist lore and history. It is essentially a question or story that is not understandable through rational thought, but may be through intuition. Teachers of Zen practices may ask students about the koan practices through checking questions. These questions are intended to validate insight or awakening. - borrowed liberally from wikipedia.As far as I know, EdgeCase was the first to create a set of programming koans. Today, there are koans available in numerous languages. These are all entertaining and educational.