Python Challenge is a great place for beginners to learn Python in an interesting way.
EDIT - To answer the comments below, yes, there are solutions (and hints too) often in multiple languages meaning you can really use whatever language you like (though primary support is obviously in Python)