>>4
Even then, give
http://docs.python.org/tutorial/introduction.html a try.
It might be somewhat overwhelming for a complete novice to programming in general, and it doesn't teach what programming is about (i.e. how to think about a problem and decompose it into subproblems that you know how to solve) -- but then I have yet to see a book which does.
However there was an interesting study,
http://www.google.com/search?num=30&hl=en&safe=off&q=%22The+camel+has+two+humps%22&btnG=Search , which discovered a weird thing completely by accident: the guys were assessing how well the students understand programming after attending some four-week course but accidentally gave the test to the freshmen, most of whom self-reported as having no prior experience with programming.
Now, the original point of the test was that they tried to avoid testing specific knowledge, so instead of questions like
"which of sys.out.writeln('zzz') and sys.print('zzz') actually prints 'zzz'?" they had more generic questions about the properties of assignment etc.
What they discovered: a lot of freshmen were able to more or less successfully complete the test. Moreover: looking at the distribution of the results instead of a single Gaussian "hump" they saw something resembling a superposition of two gaussians. What's more: when they repeated the test
after the course, aside from generally better results they saw roughly the same two-hump distribution, which correlated very well with the initial result (which was a bit disheartening, since it meant that the course failed to teach programming to everyone).
And the most interesting part: when they examined the answers of the people who had poor results on the first test, but good results on the second, they've noticed a pattern: those students
were consistent in their answers on the first test, even if the answers themselves happened to be wrong. I.e. a student might have decided that the assignment "a = 10" works like in math (or in languages like Haskell, where "a" becomes an alias for "10"), and then consistently answered the questions as if that were true. Or the ones who instead decided that the value of "a + 1" changes retroactively when the value of "a" changes.
Most of such students ended up in the upper hump on the second test, after they became accustomed with the conventions which were actually used.
On the other hand, most of the students who did not show an attempt to invent some internal model and stick to it, who just answered "on a hunch", on a per-question basis, obviously ended up in the lower hump on the first test and did not improve much on the second.
The authors' conclusion was that some people (about half of the students they had) exhibit the tendency to analyze questions, produce hypotheses and use them to answer questions consistently (even if wrong). These people make good programmers. The other half which did not exhibit this tendency did not end up learning much about programming during the course (the open question is, how to teach them programming if it is even possible?)
So, to the OP: I'm
not saying that if you try to read the official Python tutorial and become completely overwhelmed, you should choose some other profession.
But you definitely should try to read it, keeping in mind that not understanding what exactly is going on is OK as long as you try to have a clear hypothesis of what might be going on (and be ready to replace it with a better hypothesis when it fails).