I\'ve gotten quite interested in coding katas in recent months. I believe they are a great way to hone my programming skills and improve the quality of the code I write on the j
I don't know of a site that catalogs them directly, but one strategy that I've used on occasion is this:
When you find a part that was especially challenging, throw away your work and repeat it a couple times to reinforce your skills.
This doesn't just practice refactoring, but other skills like code reading, testing, and dealing with build processes.
The hardest problem is finding a project that you're interested enough in to keep working in. The last one I worked on was a python library for genetic programming, and the current one I'm working on is a IRC library for Java.