Larry O'Brien over at knowing.net has a great series called 15 Exercises to Know a Programming Language, It's an older article but after going through parts 1-3, theres really nothing in there that changes often enough to warrant any kind of an update.
- Part 1 gets you used to using some of the more basic features of a language including, calculations, the standard libraries, file i/o, GUI development, and debugging.
- Part 2 introduces some more advanced data structures, object oriented programming, idioms, memory issues, design patterns, and concurrency.
- Part 3 presents web interaction, libraries, encryption, and databases.
There's obviously a lot to learn when starting to cover a new language. Larry's posted some great ideas for getting used to a new language, and once you accomplish all these, you go from playing with the language to knowing the language.