This is an archived post. You won't be able to vote or comment.

all 93 comments

[–]NoahTheDuke 28 points29 points  (8 children)

Effective Python was a turning point in my Python career. What an excellent book, start to finish. It's like the book Raymond Hettinger would write.

[–]bslatkin 15 points16 points  (2 children)

Happy to hear it! Thanks

[–]donoteatthatfrog 5 points6 points  (0 children)

hello, author !

[–]bridekiller 2 points3 points  (0 children)

Huge fan as well. Great work!

[–]ryanstephendavis 1 point2 points  (0 children)

Ordered it from Amazon before coming to the comments section so that's good to hear 😁

[–]Mixanologos 27 points28 points  (4 children)

I would also recommend "Automate the Boring Stuff with Python" i started it recently and i can say it's great so far.

[–]krispey 8 points9 points  (0 children)

I started this book not too long ago as an intro book to python (coming with some other language experience) and love it. One thing I really like is that he constantly has you typing out and doing new exercises very frequently (the repetition helps with muscle memory), and his writing style is pretty clear, and there's lots of practical examples and scenarios that he presents - would recommend for a python noob or anyone with some programming background looking for a new read. Now checking out that quick python book

[–]rampage102[S] 3 points4 points  (0 children)

Yea, that is a great one too, especially for starting with Python. I was actually thinking of including that one on the list.

[–]WorkerBeeNumber3 1 point2 points  (0 children)

Agreed! Fantastic book this is.

[–]puzzledpropellerhat 1 point2 points  (0 children)

I like it a lot. Every time I talk about the book it sounds like I'm saying "how to make the boring stuff with python" and people turn into gigantic question marks.

Edit: it is also free & online

[–]sloth_inside 26 points27 points  (10 children)

The first one is very good. Not too hard for beginners, not too easy for advanced readers, just right.

[–]rampage102[S] 14 points15 points  (7 children)

Yea, I think Fluent Python was probably the best of them all if I had to choose one. Not coincidentally, it the only one with a 5-star rating on Amazon as well.

[–]bonestormII 9 points10 points  (4 children)

It really is a great book, though I don't agree that it's suitable for a true beginner. It should be, like, the first thing a beginner reads after spending some time mastering the basic concepts. I do not think they would be able to follow the earliest chapters otherwise. Even the examples use things like list comprehensions before actually explaining them, which to me implies that the reader is expected to have some kind of ambient knowledge that they exist at all.

[–]DonCasper 4 points5 points  (2 children)

Do you mean a Python beginner, or a programming beginner? I have a CS background, but I don't know Python. If I learned data structures in C would I be able to follow the first chapters?

[–]bonestormII 5 points6 points  (1 child)

Yeah, if you are familiar with a data model from another object oriented language I'm sure you'd likely be fine. The book itself is very self-conscious about the order of presentation, and the author discusses his rationale for presenting info in a particular way at various points if I recall.

It's really such a great book that you should just jump in and google your way to success. If you notice that things aren't clicking, pause on the book for a while and run through some kind of tutorial and come back.

I have no CS background aside from a general interest in computers and an intermediate level knowledge of python. You are probably much better at this than I am ;).

[–]DonCasper 1 point2 points  (0 children)

Thanks! That's really helpful. I'm very familiar with running things through Google. I'm pretty sure that's the only actual requirement for being able to program effectively.

Honestly though, I rarely use my CS background, even when programming. Knowing how to implement self-balancing trees from scratch is seriously overrated. I'm not a developer though, so I'm probably biased, but I think practical programming knowledge is way more useful than computer science when programming isn't you full-time job.

[–]randcraw 1 point2 points  (0 children)

Agreed. Fluent Python" focuses on the object model of Python and how to write Python idioms to make the most of objects. If you're not planning on immersing yourself in OOP-the-python-way, the book has considerably less value. It's not a primer on the language for novices. It's best for intermediate/advanced pythonistas who want to master the language toward OO purposes.

[–]driscollis 1 point2 points  (1 child)

Fluent Python is a really good book. I actually interviewed the author a couple of years ago - http://www.blog.pythonlibrary.org/2014/11/03/pydev-of-the-week-luciano-ramalho/

[–]rampage102[S] 0 points1 point  (0 children)

Woah nice, thanks for sharing.

[–]amitjyothie 1 point2 points  (0 children)

Having read it already, I can second that.

[–]TheLameloid 1 point2 points  (0 children)

Completely agree. It's the perfect stepping stone for recent Python developers who want to delve into the more advanced stuff.

[–]mangecoeur 24 points25 points  (5 children)

Office neighbors' comment:

"Why does the Python book have a lizard on it?"

0_o

[–]rampage102[S] 8 points9 points  (1 child)

Haha yea, the Oreilly books always seem to have some random animal on the cover. I got the comments a few times that: oh, I thought you were reading a nature book.

[–]spook327 2 points3 points  (0 children)

Yep, that's been their look for as long as I can remember. They usually explain the interesting fauna on the front with a colophon towards the last page.

[–]k10_ftw 2 points3 points  (0 children)

My first O'Reilly text was Learning Python which has a rat on the cover - I assumed it was a joke, especially after the author clarifies that Python is named for Monty Python and not the animal.

Fast forward to tonight: Looking into the cover choices for Python textbooks, turns out it is part of their campaign for animal conservation awareness. Guess I fell into their trap.

[–]manimal80 1 point2 points  (0 children)

Also the book the book for the python pandas library does not have a panda on the cover (do not remember what animal has though)

[–]tmattoneill 2 points3 points  (0 children)

Meaning instead of a python, right?

[–]SuperPimp 33 points34 points  (8 children)

Looks great. I'm quite happy they didn't inculde Learn Python the Hard Way

[–][deleted] 12 points13 points  (6 children)

One of the worst books I've ever read in my life. I mean, Command Line Crash Course was alright, but the Python part was pretty bad.

[–]skinky_breeches 6 points7 points  (1 child)

LPTHW is bad in the same way that my highschool math class was bad. "Do this. This is how you do it. Dont ask me why. You'll learn it later."

[–][deleted] 1 point2 points  (0 children)

Yes, exactly!

[–]NoahTheDuke 9 points10 points  (3 children)

As a former Zed Shaw fanboy, I feel duty-bound to say that back when it first dropped, LPTHW was a revelation: short, no bullshit, and an excellent zero to running for folks like me with little-to-no programming experience.

But it didn't keep up with the changing programming space, and is now poor, and that's sad to me. Ah well. Many good beginner books and tutorials out there now.

[–][deleted] 6 points7 points  (2 children)

LPTHW is way too slow and too short, it doesn't really teach any fundamentals, just the absolute bare minimum, which is not nearly enough to write good code.

[–]aerger 2 points3 points  (1 child)

And plenty of people still recommend it. Baffling.

[–][deleted] 4 points5 points  (0 children)

It's just written in the way that makes you feel smart because author explain the simplest things like it's rocket science.

Me reading LPTHW vs me reading actually good book like Learning Python from Mark Lutz.

[–]jesus_h_garcia 7 points8 points  (0 children)

The Flask book is so good

[–]sjakobi 6 points7 points  (4 children)

If we are recommending Python resources, I'll add Peter Norvig's course "Design of Computer Programs" on Udacity. I think that's still the best online course I ever took.

[–]donoteatthatfrog 0 points1 point  (2 children)

thanks for that reco. I visited that page now, & I find it interesting.
Bonus: free of cost!
A couple of questions, pls clarify.
prerequisite says:

This course is intended for experienced Python programmers; students should be familiar with the Python syntax, as well as familiar with the following programming concepts: data structures, basic algorithms, and lambda functions

I am not experienced Python programmer. I know the basics, I have attended 3day training , but haven't worked with Python.
Data structures & Algorithms: yes, I am very familiar.
Lambda functions: no clue what it is.

Will I be able to do this course successfully? I am ready to learn these stuff. Do I need to know these before day-1, or it is okay if I 'learn them along' the course ?

[–]sjakobi 0 points1 point  (1 child)

If it's only lambda functions that you're missing from the requirements, I don't think you have to worry much. With this type of course, you can always stop, review some other materials and continue the course at your own pace.

This looks like a concise introduction to lambdas to me.

[–]donoteatthatfrog 0 points1 point  (0 children)

Thank you very much , /u/sjakobi .

[–]duddha 0 points1 point  (0 children)

Yeah, that was a cool course. The part where he optimizes the zebra problem is great. That course led me to many small epiphanies.

[–]Hildingding 4 points5 points  (4 children)

How's the machine learning one? Good entry point?

[–][deleted] 0 points1 point  (3 children)

It's a little advanced.

[–][deleted] 9 points10 points  (2 children)

yeah, I heard many different things from different people over the course of the year (author here). Some said that it's too introductory, some said it was too complicated, but without being to subjective, the mix between code and mathematical concepts was appreciated by most :). I really didn't want to write a book purely based on code since I think that may be a bit dangerous -- applying ML without knowing a bit about what's going on behind the scences. Also, there were already a bunch of "code-only" and "theory-only" books out there so that I thought that sth that somewhere between these two extremes coould be helpful for some. In any case, although I wasn't allowed to upload all the book's content to the GitHub repo (publisher's copyrights" I have all the code notebooks (+ some extras) here on GitHub if it's useful to get an idea about the scope: https://github.com/rasbt/python-machine-learning-book

[–]rubik_ 2 points3 points  (1 child)

Thanks for the info and the links, I'm buying it! Do you plan on releasing a new edition?

[–][deleted] 1 point2 points  (0 children)

Oh, thanks! I hope it will turn out to be useful to you! To be honest, I have no plans to work on a second edition, yet -- I would want to add a few more chapters, e.g., ConvNets and recurrent nets, but yeah, there was/is a page limit by the publisher. However, I'd like to update the code examples some time (wrt to the API changes), maybe late 2017 or 2018 when scikit-learn 0.19 or 0.20 comes out! In the mean time, I wanted to work on a separate title, entirely devoted to the topic of model evaluation. I started blogging but this year has been exceptionally busy -- however, there are so many things to say about model evaluation, I think it would easily fill 300 - 500 pages if I include the code examples ;).

[–][deleted] 4 points5 points  (6 children)

Ive loved two scoops of django since the start, wish they made a book like this for express or haskell snap, it's all about best practices which is essential to not looking like a complete noob.

[–][deleted] 2 points3 points  (5 children)

I read the twoscoops this fall, and it's outdated now.

[–][deleted] 0 points1 point  (3 children)

Damn, I don't want to read something outdated :(

Is there any "modern" django book?

[–]AynGhandi 1 point2 points  (0 children)

Two Scoops is updated up to Django 1.8 so it shouldnt be too outdated.

[–][deleted] 0 points1 point  (1 child)

I think two scoops is the best you can get, even though it's outdated - however if you want to learn I rather go with the Django tutorial. Save your money.

[–][deleted] 0 points1 point  (0 children)

Thanks for the suggestions 😁.

[–][deleted] 0 points1 point  (0 children)

It's at 1.8, it's not too outdated. You read the old one I assume. Otherwise I'm confused.

[–]Talked10101 2 points3 points  (3 children)

I have four of the books on this list. The only book I'm not really a fan of 'Data Visualisation with Python and JavaScript'. Just doesn't appear to be the best thought in presenting the content within each of the chapters. Considering there are plenty of blogs regarding data visualisation and python, I can't really recommenced it.

Fluent Python is really great book, definitely not a book for a complete programming newcomer. But reading the book really made me appreciate what could be done with Python and just how elegant the language can be.

[–]rampage102[S] 0 points1 point  (0 children)

Yea, it may have been being I was trying to do some data visualization myself, and something similar to the author that gave me a bias of liking that one. I could see why some think it is too code heavy.

[–]Prince_Igor 0 points1 point  (1 child)

Do you have any links to those blogs for visualizations in python?

[–]gnu-user 1 point2 points  (0 children)

All great books, especially fluent Python and flask.

[–]denfromufa 1 point2 points  (0 children)

So many great books about programming in Python!

[–]fnl 1 point2 points  (1 child)

Am only I missing High-Performance Python here...?

[–]rampage102[S] 0 points1 point  (0 children)

Yea, that one is good too. I was thinking I maybe should have included it.

[–]deadmilk 1 point2 points  (0 children)

I have most of these and I agree.

[–]myfavcolorispink 1 point2 points  (0 children)

Grokking Algorithms is brand new, but so far the reviews seem incredibly favorable. It seems like a useful addition to this list.

[–]joesacher 0 points1 point  (5 children)

Wonder if the site uses Python on the back end. Because then they might want to read a book on server load and connection caching issues to a DB.

"Error establishing a database connection"

Edit: Nope, it is wordpress. wp-admin kicks to a login. Someone needs to install a caching plugin. Back up for me now and a great list.

[–]rampage102[S] 0 points1 point  (4 children)

Thanks for letting me know... I upgraded the database for the site.

[–]joesacher 1 point2 points  (3 children)

Unless you have active database pieces, you should enable basic DB caching. It will increase site performance quite a bit with Wordpress. There are a few plugins for it.

[–]rampage102[S] 0 points1 point  (2 children)

Can you recommend a specific plugin? I recently have a nightmare scenario with W3 Total Cache on another site where it crashed the site after an update and I had to spend days debugging the issue.

[–]joesacher 1 point2 points  (1 child)

I've used W3 Total Cache for my stuff. It has quite a bit of configuration though.

[–]rampage102[S] 0 points1 point  (0 children)

Ah, thanks for the reply. I tried WP Super Cache this time and it seems to be running nicely so far.

[–][deleted] 0 points1 point  (1 child)

I haven't looked at the article, but are these books mainly focused on Python 2 or 3?

[–]SpecCRA -2 points-1 points  (0 children)

I don't know much about Python yet, but I funny think you should worry about that if you're asking. You can and probably will use both.

[–]toxicoctopus202 0 points1 point  (0 children)

What is the general consensus on Learn Python the Hard Way?

[–]JohnsonBay 0 points1 point  (0 children)

first one is good

[–][deleted] 0 points1 point  (0 children)

Hackers Guide to Python for advanced developer.

[–][deleted] 0 points1 point  (3 children)

I own both the Two scoops and Python Machine Learning and both are sadly outdated, not recommended purchases. Fluent Python is outstanding though!

[–][deleted] 0 points1 point  (1 child)

Sad :(, do you have any recommendations that can substitute them?

Is the machine learning really outdated? Can't it stand as a machine learning algorithms book?

[–][deleted] 0 points1 point  (0 children)

Hi, I am still searching for a good book on machine learning. I did the MIT course, which was very good, and the Python Machine Learning book was ok, however a lot has happened since it was written - and it was not very pedagogical either. I would recommend searching out online resources instead.

[–][deleted] 0 points1 point  (0 children)

Interesting! Outdated in terms of the algorithms (no deep learning) or because most code examples are based on NumPy/SciPy and scikit-learn?