When I'm learning a new programming language, the biggest challenge I face is figuring out what to build with it. Programming challenge websites can be useful, but they rarely ever push you towards exploring real-world use cases for a language.

Thankfully, there's a variety of resources available on the Web that walk you through building reasonably complex projects step by step. I've collected a few of my favorites here.