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.
You can also find information about kata, koans, kumite, and the Dreyfus model. All interesting topics and worth looking at.
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 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.
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.
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
NotMyself's github account.
There is another version of The Gilded Rose Kata available from Terry Hughes.
KoansA 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.
@skim) for pointing these out and even more so for authoring them. If you are not familiar with smalltalk, you might want to give it a look. What excites you about modern day languages like Ruby or Python can likely be found in smalltalk.