Though I had a lot of programming experience before I started to learn web dev, I had zero Ruby on Rails experience. So I started reading, watching, buying any material I could find. I still didn't feel ready. Then I realized I will never feel ready until I get started. The worst that can happen is you make garbage and learn something while you're at it. And don't get down on yourself if you're not producing right away. The learning curve is never linear. You'll get better at it faster and faster.
Also, hang out in Python IRC rooms. If you can't find an answer to your question through Google or Stack Overflow, chances are there will be someone in there who can help guide you.
In general, I'd say jump right in: Dive Into Python http://diveintopython.org/
The best way to figure out how to make things is to make things. It's rewarding to be able to get stuff working from the get-go, and tinkering with that, trying to bend it to your will motivates you to understand how it works.
However, if you're familiarity with computers is very basic, you may want to do some reading about how computers work and the abstraction layers a program has to deal with; for example, do you know what abstraction layer Python is at?
Side note, you might find it even more fun and rewarding if your first programs are graphical http://raphaeljs.com/playground.html instead of being text-oriented, command-line programs that Python is most suited for.
If so, try learning JavaScript, that link uses the Raphael library, which you can find out more about at http://raphaeljs.com/reference.html
I guess the hardest part is I want to be an expert right away. I often read HN for inspiration and therefore want to perform at the same level.
So far the basics seem, well very basic and easy to understand. When I start looking at building something, I feel a bit overwhelmed. I want to push out things that I can be proud of and will help the community develop, and I guess that desire is conflicting with my current level of knowledge.
Sorry, bit of a rant and long post, but just trying to sort everything out so I don't get disillusioned.
Not possible, it's like learning a musical instrument.
> When I start looking at building something, I feel a bit overwhelmed.
What are you trying to build?
Do you think it would be better to work on my own projects and jump in the deep end or should I start with cookbook code and learn from that first? Part of the problem maybe is not understanding where to go once I learn the basics.
About "being an expert" -- programming is a very, very broad topic, with far too many different technologies and libraries used in different situations, so when even "experts" work, usually only a tiny amount of their work falls under their actual "expertise" (as in what they could do blindfolded), and they are always Googling what to do next. So when you do that -- constantly Google what to do next -- don't feel like you're not an expert.
I guess what I'm saying is, (perhaps unlike other fields) the body of knowledge in programming, not only that exists, but that any typical work involves, is so vast, there are no "experts" that have intimate knowledge of all of it.
It appears to be a good mix of 'reading' and 'jumping in'.