2. Built-in documentation, college classes and web documentation. Generally I find documentation far more useful than tutorials. I would highly recommend checking out Zed Shaw's new book: Learn Python the Hard Way (http://learnpythonthehardway.org/index).
3. I don't think I've ever learned anything when I didn't have something specific to build. Just playing around trying to learn stuff never works for me. I need to have a reason to learn, a project that needs the technology I'm trying to learn.
4. I've had very little direct guidance in learning to program. I had my professors, which helped me mostly by introducing me to the technologies and giving me things to build. I've had various people on StackOverflow help me with particular. Mostly, I am guided by inspiration, not direction interaction. People like Zed Shaw inspire me. People like why. Sometimes libraries inspire me. LINQ is incredibly inspiring. As is pyparsing. These people and libraries give me an idea of what I want my contributions to the programming world to look like.
5. Best guidance in my mind is giving you a tool and then giving you something to build with it. I never would have found Ruby without one of my professors (or I would have found it a lot later). I may never have cared without Ruby Quiz and Rails inspiring me to build things. This is why I think you should check out Zed's python book. He teaches the language by giving you the tools and then asking you to do things with them.