For learning programming languages, I would definitely go and write algorithms and data structures with them. Like quick sort, stack, queue etc. It's some how teaches you the language primitives really well. Currently learning Haskell and doing the same.