
Dive into python must die - mgrouchy
http://oppugn.us/posts/1272050135.html
======
spacecow
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.

~~~
scott_s
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.

~~~
Scriptor
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.

------
zedshaw
You should check out my follow-up project where I try to do better:

<http://sheddingbikes.com/posts/1272132621.html>

And this post about two alternatives to DiP that are better written and easier
for both expert and beginner:

<http://sheddingbikes.com/posts/1272216358.html>

------
hugh3
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.

------
srirampc
Mark's comment here :
[http://www.reddit.com/r/programming/comments/bv9gt/dive_into...](http://www.reddit.com/r/programming/comments/bv9gt/dive_into_python_must_die/c0oqask)

------
gte910h
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".

------
Scriptor
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?

------
kaptainlange
Dive into python worked for me 2 years ago, your mileage may vary. Then again,
I learned from many sources, not just one.

------
cilantro
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.

~~~
teilo
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.

~~~
cilantro
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.

------
j_baker
What's wrong with ODBC? Yeah, it came from the 90s... but so did Python. And
it's still your best bet if you're connecting to SQL Server.

~~~
CWuestefeld
There are other modules for DB connectivity.

If you're into SQL Server, you might consider IronPython, and then use .Net's
ADODB.

