Being inspired by MIT's introduction to algorithms I've decided to put some of my newly learnt stuff into practice. And there is not a lot of point in implementing this stuff a language like PHP or JS.
So I'm re-learning C. I learnt some very basics as part of my degree and have worked with Objective-C a fair bit so it's not completely alien. It's taken me a lot longer than it was suggested it should, but I've finally got a working implementation of skip lists.
Getting my head back around pointer arithmetic and memory management is a good exercise.
I feel like despite all the cool new languages around, most real infrastructure and interesting technology is still written in real languages like C.