Project Euler has a good list of interesting puzzles to solve for any language. I worked on a quite a few at one point but haven't for a while until someone mentioned Problem 303 I suggest you try a few if you haven't already Project Euler Problems. For extra difficulty you can try to make the program shorter, or faster. e.g. My solution to Problem 303 runs in 1.524 seconds solving all values (without guessing) When you solve a problem you can look at how some people solved the problem in different languages which is pretty cool IMHO.