When you are learning a new programming language, what are some good projects that can be done across a spectrum of languages?
I'm familiar with programming puzzles and read the other related question, but as I think about how I learn a language, I go through stages. First, I learn the basic syntax, then I learn the more advanced (and often language specific features), finally I learn how to manage a project in that language. Programming puzzles are OK for learning the basic syntax and, from my experience, very good for learning the more advanced features of the language, I'm looking for ideas that go from the very basics of the language to the most advanced aspects.