Hacker News new | comments | show | ask | jobs | submit login
Learn Python The Hard Way 2nd Edition Released (learnpythonthehardway.org)
243 points by Ntagg on June 27, 2011 | hide | past | web | favorite | 58 comments

This reminds me of Ruby on Rails Tutorial by Michael Hartl. I love the idea of the book being online in HTML for free, but you can pay for a better learning experience: screencasts, PDF files, and online training courses.

It reminds me of the same thing, and I think it's a great trend. I wonder why Zed only charges $1 for the PDF/ePub, though. Maybe he doesn't realize how much people are willing to pay? I still sell lots of copies of the Ruby on Rails 3 Tutorial PDF at $26, and I previously sold hundreds of copies at $39. I bet he's leaving a lot of money on the table with his current pricing scheme.

Maybe it's not just about the money? It isn't for me, either. But when the HTML version is 100% free, people have little grounds to complain about the price of an e-book. (Indeed, I've never received a single complaint about the price of any Rails Tutorial product.)

Actually, I researched it quite a bit, and I found I had 300k downloads of the PDF last year, but that 150k of those were from bookmarks into the middle of the PDF. My hypothesis is that 1/2 of the readers want HTML they can bookmark, and 1/2 want to download a PDF. I'm guessing that if I set the price of the download really low, then I'll get more downloads and purchases than just a few hundred.

We'll see how it turns out. I'll be writing about it shortly. Interestingly enough, people seem to be willing to pay $2.99 for an ePub version. I may try doing two prices if that's the case.

I'm one of those poor, unemployed young people for whom the $1 price point was perfect. It's the "What the Hell" price point. The benefit of having it on my Kindle and not having to switch windows all the time is real, but rather small. Perhaps worth $2.99... but certainly not $5.

It's worth more now that I've started getting to know the book of course. I've been reading a lot of programming books for a few months and these examples are substantially superior to anything else I've seen, except for Why's Poignant Guide.

Non-DX Kindle side-tip: Convert .epub to .mobi in calibre with "Text Justification > Linearize Table" checked.

If you don't do this, trying to navigate around the tables on a small screen will drive you batty.

(Still trying to figure out the regex to get rid all the "orphaned" line numbers created by this method.)

could you please add a link to "buy as a gift" ? I can purchase it twice, but it will keep getting linked to my email address.

That's interesting. I'll look forward to reading about your results.

What's new in the 2nd edition? Couldn't find a list of updates/additions anywhere.

I just put that on the main site page. I've basically rewritten exercises 50,51, and 52 to have you create a web application out of the game in 41 and 42. I also rewrote 41 and 42 to be a more challenging game that's a bit more complex to create. Finally I fixed bugs and errors in about 50% of the exercises, mostly minor typos here and there.

Reading the git log for the site with some of the book mixed in isn't the greatest way for a student to figure out what's changed...

Zed, I think many people would really appreciate a changelog of some sorts between the two versions.

edit: also see this comment by Zed which basically goes over what's changed: http://news.ycombinator.com/item?id=2700557

I agree but prior to your posting that link that was the only way I found and no not real fun wading through the change log like that.

I can't tell either. You can review the new edition in HTML for free here: http://learnpythonthehardway.org/book/

I think the new version has an updated section for the rails 3.1 assets engine...

...Oops, I thought this was Learn Ruby the Easy Way with an introduction by DHH and Ryan Bigg. Sorry.

LPTHW has a good rep, but it looks like it focuses on teaching someone who's never programmed before.

Would anyone like to recommend something similar for people already well versed in (a) mainstream language(s)?


then do:


But, I'll also say, LPTHW is deceptively simple. Try doing it anyway, since if you know a language already you can blaze through it, and when you get to around 30 or so it sneaks up behind you.

Coming from experience with the last version, it definitely does sneak up behind you around part 30. The pacing and attitude for programming is the reason why this is one of the books I recommend to people starting to learn general programming. Specifically for me, however, I need something a bit more concise as when I'm in programming mode I tend to lose focus when there's too much fluff.

But anyway, great job.

Thanks Zed. I'll have a look.

(What's that about 30?)

LPTHW starts to get more complicated around exercise 30.

Try Dive Into Python 3[1] (although it deals with Python 3, it's more recent than the original Dive Into Python and a lot of what it teaches {to not say everything} is applicable to Python 2, and it touches on the potentially troublesome bytes-Unicode difference).

It's a good, well-informed, easy read.

[1] http://diveintopython3.org/

Don't let that stop you from trying the book. I started programming "way back when" in ASP/VBScript. These days we're a RoR shop, but I needed to pick up Python rather quickly for a side project.

LPTHW is structured well for beginners, but it just so happens it's structured well for pros too. The exercises are a great way to discover portions of Python that aren't intuitive to you. You'll hit roadblocks where your code won't run. That's when you'll really learn.

"LPTHW is structured well for beginners" absolutely !


Think Python is fantastic, it was our "textbook" in a python course.

I would still recommend it, even to those who know how to program. A lot of the book is just non-stop typing as fast as you can. The benefit to me was how it improved my 'muscle memory' when actually sitting down to write something on my own. There was less stumbling over little things like -- "how do import a library again? 'require?' 'load?'"

As with most things, you get out of it what you put into it. For example, I wrote unit tests in one of the 'extra credit' assignments to explain a bunch of python's symbols.

Zed, are you going to be writing any other books for Python, like Python 3 or more advanced topics? Maybe "Advanced Python the Hard Way?"

Nope, I'm not writing any more Python books, instead I'm writing a book on C.

If you're open to suggestions, I and I'm sure lots of others would love to see one for objective C.

Cool...when's that coming out?

Does anyone know of any good books for people that are proficient with Python and want to learn more about the language and come closer to being an expert?

The idea of LPTHW has always seemed cool, but I've looked at the table of contents a couple of times and thought "huh, 80% of these topics seem trivial to me"; maybe I could still benefit by skimming through and reading anything that I don't already know. Also, it's kind of a bummer that there's no .mobi version.

With no sarcasm intended, carefully read over the Python manual, sentence by sentence, every so often. You'll learn something each time for quite a few iterations. Things that seemed a mass of pointless double-underscores will start to make sense.

Plus, you can't understand the solution until you encounter the problem. Reading the language manual every so often after you've encountered more problems is often enlightening. I've been working through the bash man page this way for years. (It's taking me a while because I don't really do much shell scripting, so I don't encounter very many problems that I need solutions to.)

Yeah, LPTHW isn't for you if you already know Python. I guess I would recommend Mark Lutz books, but really, if you are already proficient in Python then I'd say go out and read code and implement algorithms in Python to learn more.

As for .mobi version, it's a pain in the ass to generate it well enough for a "code book". It's supposed to be coming out on the Kindle store soon, but all of my previews of it just look like junk. I got it as close as I could, but .mobi just doesn't cut it when there's strictly formatted code. If you've got a suggestion on making code look nice in .mobi I'd love to hear it.

Amazon recommends using JPEGs to display table data in Kindle books. Perhaps the same solution could work with code in .mobi files.

Apparently that's what BigNerdRanch does. Seriously, that just makes my inner nerd cry.

Has the book "Learn C the hard way" released yet?

I've laid a stake in the ground for it, and will start writing it for sure in a couple of weeks. I sort of need a break after this. :-)

There's an open Git repo for it[1], but so far it's quiet. (Stick the repo's RSS feed into your favorite feed reader to see when it updates.)

[1] https://gitorious.org/learn-c-the-hard-way

Just bought the Kindle version. Now I have the book on my Kindle and iPhone Kindle App (Looks really crisp on my iphone and has anchor links to each chapter, although it could use a better table of contents)

Link: http://www.amazon.com/gp/product/B00586LJ2O/ref=as_li_ss_tl?...

Awesome! 1st ed was invaluable to my co-Founder when she started learning Python for our startup a few months ago.

I just picked this up on AppSumo. I'm coming from PHP and C, so this will be a nice chance to try out Python.

Now on exercise 15! Best US$1 I've ever spent so far! Thanks Zed!

Glad you're liking it, and thanks for buying it.

What are the advantages of using this book over the online tutorials that are available on the python website or even using some of the MIT OpenCourseWare courses?

"This book teaches a lot more than the basics of programming, and python. It teaches important life skills in every facet of life: attention to detail, persistence & that dedicated practice and application lead to results." ~ taotetek

What is the advantage of the course (on discount today)?

The course has 8 (I might do more) videos where I go through most of the exercises and show you how to do them with tips as I go. You basically get to watch me make mistakes typing the exercises in and learn how I do it. In addition to that I answer questions people ask on the site.

The course is on sale at AppSumo: http://www.appsumo.com/learn-python-promo/?act=dealtwt (referral code comes from the original source -- does not belong to me)

The course includes video lectures and a Q&A feature. I have not taken the course, but I really liked the first edition book.

I am doing all of it with Python 3. So far, very little needs changing to make the examples work. Very clean and concise. Thanks Zed.

So this targets an earlier version of Python?

Yes, the 2.x series. I am learning with Python 3 because of a class I am taking and supplementing with Zed's tutorial and just writing the examples in Python 3 format. So far, so good. I might hit a snag when I get to the web.py stuff but I will try to convert that to P3 before using it. All of it rolled together is helping me a lot.

Yes, and for a reason. Python 3 is still not widely adopted [sic].

Python 3 Wall of Shame: http://python3wos.appspot.com/

Stop the "wall of shame" shtick, please. It helps nobody. Projects know about Python 3 and projects are planning to move to Python 3. It isn't trivial and there is no "shame" in it at all.

Planning to buy the paperback. While checking out the paperback info, I noticed that the pdf is still free on lulu.

Yeah, I changed that. I was trying to give people who bought the paper versions the PDF for free, but lulu considers "free" to mean you get it without buying the book. I've had to remove that option for now since they don't allow it.

On a side note: WTF is up with these companies? This stuff isn't hard, but the whole time I'm trying to do this it's been nothing but friction. So annoying.

So it is. When I saw it was $1 for the PDF of v2 I didn't think twice. Been using v1 and pretty pleased with it so far and I was happy to pay such a low amount for v2.

Might buy the paperback in time just so I can have it on my bookshelf.

Thanks Zed, I just bought the epub for my kindle. I am going to give it a go.

Just bought a copy for my iPad. I look forward to reading it!

love this book. very little verbal fluff, allows the reader to figure out the material on their own with the exercises and extra credit.

Just bought the PDF, Damn paypal tricket me into paying $1.00 with billmelater =/

I checked the first couple of sections, and I'm sure learning Python "the Hard Way" would have been much more exciting than reading the official documentation... Oh, well. What is done is done.

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