I've been amusing myself recently with Project Euler.
I've known about it for a long time and ignored it because I figured that I knew how to do everything there already. That has been somewhat true - I've solved over half the problems and finding the time to code the solutions has been a bigger challenge than knowing how to do them. But some are challenging. For instance the maximal x for problem 66 has over 30 digits, so you aren't solving it by hand.
I've also learned a bit about Perl. For instance if you have a long list of small integers, it is worth learning about the vec function...