I think Zed is being disingenuous (or just plain not reading anything that isn't code on the Dive Into Python site). One of his main points is that Dive Into Python is bad because it's supposed to be for beginners, and makes Python seem to complicated. But, here's the first sentence on the front page of diveintopython.org:
"Dive Into Python is a Python book for experienced programmers."
Not beginners. Zed's "I could see if Mr. Pilgrim had a giant disclaimer or something warning people that this isn't a beginner's book, but he doesn't." is totally unfounded.
Zed also laments that the first example requires readers to "suddenly comprehend" a bunch of random language features. But right above the example he links to:
"It probably makes absolutely no sense to you. Don't worry about that, because you're going to dissect it line by line. But read through it first and see what, if anything, you can make of it."
(I will totally agree that the example program is at best uninteresting and at worst confusing, but you don't need to know anything about ODBC to understand it. I certainly didn't when I first read Dive Into Python.)
Zed's brand of hyperbolic vitriol has never sat particularly well with me, but this article in particular sounds like he just has an ax to grind with Pilgrim. He certainly spends almost no time actually discussing how the book has poor design decisions, or why it is "weird," or what instructions are hard to follow, or what expert needs it is not fulfilling. There's almost no substance whatsoever here, just sanctimonious character assassination. I will never understand why this guy has an audience.
Completely agree. The entire premise of Dive Into Python is to throw a bunch of idiomatic Python code at you and explain what it does. It's explicit in the text and implied by the title.
Personally, I found this refreshing. Instead of starting out with "This is an assignment, and this is an if statement..." he shows chunks of code - or whole programs - that accomplish some task. As an already experienced programmer, I would then inspect the code, try to figure out what it did, then read his descriptions for things that weren't obvious. For me, this is a much faster way to learn than for the author to assume I've never programmed before.
Didn't Zed declare a while ago that the aggressive, swearing persona was just an act to demonstrate how geeks gravitate to strong personalities? His current form doesn't have naked girls or guys wailing on guitars, but he's still doing the same thing.
He wrote earlier that he's basically doing both, with http://oppugn.us/ for rants, which can be contributed by other people as well, and http://sheddingbikes.com/ for more thoughtful and calmer essays.
I found Dive Into Python to be tremendously helpful when I was first learning, but I had used Java and SQL for a while before starting to learn Python.
Agreed, I made the joyous leap to Python from writing crappy PHP programs, in no small part thanks to Dive Into Python. It took me from curiosity about Python, to excitement and real insight very quickly, I haven't looked back since.
While some of the points he makes are good, I'm not so sure about the complaints that the first programs are too horrendously complicated. I mean, yes they are, but presumably that's the philosophy of the book (which I admit I haven't read).
I can see some value in the idea that someone beginning Python should start off by being exposed to some of the more esoteric but long-term useful features of the language (exceptions etc) which would otherwise be shoved into a late chapter in the book which most readers would never actually bother to read.
I'd programmed in 5 languages by the time I read dive into python and learned enough python to write a decompiler in it (decompiling something else, not python). Even at that time, it was shooting right at me, and not at "person learning to code".
It is, and always has, been "Hey guy who knows how to code, here is how you code in x".
There are some good points in there, but if Zed really wanted to change people's minds or the book itself, he wouldn't have insulted the author and thrown profanity around where it suited him. Rants don't convince anyone, and only serves to make you and those who would already support you feel good.
I really don't understand why he has to call Mark Pilgrim names. Because he's a ranter too? Because he jokingly cast off Zed's suggestion to rewrite large parts of the book?
I agree completely. I made the mistake of turning to this book when I was still getting the hang of both python and programming. It taught me very little and really made my head hurt. I make sure to tell others to stay the hell away when I am asked about learning python.
In that case, you should have probably paid attention to the beginning of the book which clearly states that DiP is for teaching Python to people who already know how to program. When I read the book, I already knew how to program in several other languages. DiP was perfect for me, and got me up to speed on Python rapidly. I had no trouble at all understanding it.
Some more context: I had been programming for most of year, and I had two university courses under my belt. (OO in Java and Data Structures in C++) I was feeling pretty good with basic Python and had a couple modules in the standard library down. Reading an introductory book aimed at experienced programmers seemed (and still seems) perfectly reasonable, especially when I could not (at the time) find alternate examples of code covered in a couple chapters.
When someone suggests to me that they want to learn Python, I sometimes send them to http://www.pythonchallenge.com. It won't work for everyone, but if you can see that they are the puzzle-solving type, it can be a good primer.
"Dive Into Python is a Python book for experienced programmers."
Not beginners. Zed's "I could see if Mr. Pilgrim had a giant disclaimer or something warning people that this isn't a beginner's book, but he doesn't." is totally unfounded.
Zed also laments that the first example requires readers to "suddenly comprehend" a bunch of random language features. But right above the example he links to:
"It probably makes absolutely no sense to you. Don't worry about that, because you're going to dissect it line by line. But read through it first and see what, if anything, you can make of it."
(I will totally agree that the example program is at best uninteresting and at worst confusing, but you don't need to know anything about ODBC to understand it. I certainly didn't when I first read Dive Into Python.)
Zed's brand of hyperbolic vitriol has never sat particularly well with me, but this article in particular sounds like he just has an ax to grind with Pilgrim. He certainly spends almost no time actually discussing how the book has poor design decisions, or why it is "weird," or what instructions are hard to follow, or what expert needs it is not fulfilling. There's almost no substance whatsoever here, just sanctimonious character assassination. I will never understand why this guy has an audience.