Project Euler: http://projecteuler.net/ is a nice collection of randomly interesting problems.
Somewhat related (not always programming, but generally interesting to programmers) is the IBM ponder this site: http://domino.research.ibm.com/Comm/wwwr_ponder.nsf/pages/index.html