Hacker News new | comments | show | ask | jobs | submit login

What's interesting is that according to the author Mark Pilgrim:

  Python 3 is a commercial disaster. In 2010Q3 I had 
  negative sales of DiP3. More people returned it than 
  bought it. I'm considering retro-fitting the book's 
  content to Python 2.7 and re-releasing it as "Dive Into 
  Python 2." Seriously.

One of the main complaints on Amazon was the poor quality of the printing & publishing, not the actual code or writing style.

Personally, I love the web version and was going to purchase it, but decided not to because of all the issues people had reported on amazon


I suspect he was just way ahead of the adoption curve on that. I would expect the Dive into Python 3 book sales to pick up.

I don't think it's all that interesting, and it says nothing about Python 3 itself. The choice to write a book on it didn't match up with the demand for a book, and people extrapolated the "disaster" comment too far.

DiP3 is not a very good book. (Neither was DiP.) I don't know how relevant that is to sales, though, but considering that some of the bigger Python groups actively recommend against it, I wouldn't be surprised if there was an impact on sales from that alone.

Edit: I don't recommend learning Python from a book. I recommend http://docs.python.org/tutorial/ if you know a programming language already, or http://learnpythonthehardway.org/ if you don't. (Yes, I know there are dead-trees of both of these.)

I like the style and examples and it didn't make me want to commit suicide like certain repetitive, overhyped, chimpanzee-level Python books have, but it needed 3 or 4 more chapters. The coverage felt incomplete and a little arbitrary.

Why do you think it was bad? (DiP, not 3). No snark.

I have both DiP and PtHW on my Kindle, and I can't straddle both to the end.

If you've never programmed at all in any language the PtHW is much better. If you know how to program, just not how to program in python, then DiP will get you up to speed much faster

This isn't really correct. Zed Shaw (and maybe some others) started a backlash against it, because DITP 2 was so heavily recommended.

It does have a couple of weaknesses. Starting with ODBC is kind of lame, and should be updated to Sqlite. And SOAP needs to be taken out the back and shot, but that's just my opinion.

I'm sure Learn Python The Hard Way is pretty good, but DITP was the second place most Pythoneers were sent to (after the tutorial you pointed out, of course).

#python has been unrecommending DiP since before Zed wrote LPTHW. The #python dead-tree recommendation, for a long time, was How to Think Like a Computer Scientist: http://greenteapress.com/thinkpython/

Lutz' Learning Python dead-tree is also pretty great, from what I hear, although I haven't had a chance to sit down with a copy yet.

At least I found DIP to be a more than decent book (my background before was mostly C and matlab). Certainly not a great book, but I have yet to find one of those for python. The python tutorial is ok if you don't know much about programming, but I found DiP most fast paced.

I second the Python docs, from what I've read so far they're excellent. If you already know another language, the language reference is particularly worth reading:


What Python book do you recommend for someone who wants to start learning the language? Thanks.

If you aren't new to programming at all, then I'd suggest Python Essential Reference.

Otherwise, I'm still recommending against learning Python the hard way. That might depend on a person, but I don't think typing some samples can make an interesting task, and AFAIKT doing things that are not interesting for you makes learning process a lot less efficient.

Judging from my experience, the best way to start learning the language is having some actual work done (e.g., building a site with Django). Correspondingly, books you'd need are references—Python's docs, Python Essential Reference. You can use LPTHW as a reference, too, just do something more useful than its samples.

Learn Python The Hard Way.

LPtHW is a great book for learning how to program. If you're already a competent programmer looking to pick up python, then you'll probably find it very slow going, and probably better served by something better. I personally learned python from The Quick Python Book, which I thought was quite good.

Does it cover Python 3? I cannot tell from reading http://learnpythonthehardway.org/ - maybe I missed something.

Heh, not exactly:

"A programmer may try to get you to install Python 3 and learn that. You should tell them, "When all of the python code on your computer is Python 3, then I'll try to learn it." That should keep them busy for about 10 years."

http://learnpythonthehardway.org/book/ex0.html (under Warnings for Beginners)

Is that actually good advice?

Yes, that is a good advice.

Someone wanting to learn Python (or any other language) will be better served if they are helped to focus at most important and least painful things first: in this case, python 2 is everywhere with huge number of libraries. Whatever you need is 'pip install' away.

Learning Python 2 is not a waste of time: whatever you learn and is changed in Python 3, will be easily relearned once it becomes needed.

Why's it not a good book? And who are the bigger groups that recommend against DiP3?

I am looking into Python now, because of the job. DiP looks good to me.

OTOH, the book might arguably now work in my case, since I am considering updating my rusty web mojo (+) and sending out the CV instead... :-)

I like the elegant, minimal notation. Tastefully designed. But... the inflexibility gets to me. (It must be unique in a modern language that have lambdas/list comprehensions/etc with just single [edit:] statements?!)

(+) I hope I didn't mangle the idiom too badly.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact