This is a little late seeing the date you posted your question, so even if you've already started on your path, I hope another lost new user somewhere gets something out of this post.
I've gotten a number of emails on this same topic, as well as from people I've mentored in real life and I've always given a variation of the same answer.
No matter what you want to do with Linux, whether you want to submit patches to Linus and watch the kernel mailing list, admin servers, or just become a more proficient user overall, the best way to start learning is to use Linux as your main operating system.
Surf the web on Linux, get your favourite games to work using wine, code, etc. Don't do anything out of the ordinary to start, just replicate whatever you were doing on your past OS but on Linux. This will get you comfortable with the OS faster than you ever could simply tinkering on a VM or an old machine you have around.
I'd also suggest picking a distro that does a little less hand holding than *buntu or the other "user-friendly" distros. These are great, but the goal of a user friendly distro is to hide the exact things you want to learn, and for good reason, your grandmother doesn't need to know exactly how one creates a user without a GUI. I'd suggest something like Slackware (my personal favourite) or Gentoo in this arena. It may seem counterproductive to pick a more advanced distro as a beginner, but there will be plenty of time to use something easy after you've figured out how it all works on a more rugged version.
As you start to master all of your daily tasks on your new OS, think to yourself "how can I make MY life easier?". This question will lead to more projects and learning than you can handle at once. From scripting to config files, you'll find a million ways to make your machine do the work for you while you go off to grab a second up of coffee.
That's all I have, I hope it helps. Be curious, put in some time, and most of all have fun!