Puzzles and Problems
Puzzles and problems - specifically things where programming will be part of the solution.
This is a collection of links to sets of puzzles and problems online. These are (for the most part) problems that will require programming (and often learning about programming) to solve. There are also a couple of collections of puzzles that you might try programming yourself or programming a solution finder. This is far from exhaustive. If you know of any similar sites, please let me know for possible inclusion in this list.
Programming Challenges
The python challenge. Finish this and you'll know quite a nice chunk of python and have figured out some nice short code sequences that may help in other places. You don't have to do it in python, of course and doing it in other languages can be illustrative of how different languages give you different types of tools.
Rubyquiz A series of weekly ruby challenges. As with the python challenge, you don't need to do these in ruby. A few days after each problem is posted, there is discussion and evaluation of possible solutions.
Perl quiz This doesn't seem to be currently active, but the archives provide the problems previously posted.
Project Euler. A great collection of mathematical and computing related problems that have nice software solutions. Learn math and programming all at once!
Java Blackbelt A huge collection of "exams" covering pretty much every aspect of Java you might want to know.
Logic Puzzles
Some online logic puzzle games :
Solitaire
Pysol is a collection of solitaire games (including freecell and many, many others). Instead of just playing these games, think about writing programs to play them, or ask if you can determine if a given shuffle is solvable always, solvable with good play, solvable with perfect play or just plain unsolvable. There are packages for pysol for most linux distributions. I believe that there is a windows version as well, but am not sure.Cryptic Crosswords
On a completely different note, cryptic crosswords (available in lots of places - just use google) are challenging, fun and require very different skills than the usual crossword style. Instead of definitions, the clues often contain multiple definitions of the word which may include puns, anagrams and other odd wordplay. Some also include other twists to complicate the solution (like dropping letters from words). Americans might want to avoid the British puzzles while learning the process. Learning to solve cryptics is work, but pays off with interesting techniques in thinking about problems.

