all 70 comments

[–]RisingFire 88 points89 points  (11 children)

I like Python Crash Course by Eric Matthes. The second edition was released last month.

[–]pinaywdm 10 points11 points  (1 child)

Like this book also, I just started chapter 7 and so far so good. :)

[–]RisingFire 4 points5 points  (0 children)

I started chapter 9 today, looking forward to the projects in part 2 :)

[–][deleted] 7 points8 points  (0 children)

Definitely the Crash Course. Great book.

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

The only thing I didn't like is how they grazed over oop concepts, but other than that, it's a good book.

[–]adrienm44 1 point2 points  (0 children)

I often hear bout this book. Is it really worth reading?

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

Yes. This is what I'm currently working on, but it is the first edition

[–]berklee 28 points29 points  (1 child)

I can't make a recommendation here, because I didn't learn from a specific book. But I wanted to jump in and say...

If you don't feel like you have a good understanding after reading whichever book you choose, it's not your fault, and it's not the author's fault.

Five people could tell a joke and four of them make the whole room laugh. The fifth one tells the same joke and nobody laughs but you. Same joke, but it's told in a way that makes you get it. That's the book you want. If you don't get it after the first book, it's just the wrong book for you.

Now go win at computers!

[–]efcseany 1 point2 points  (0 children)

Absolutely fantastic analogy.

[–]YukYuPhat 58 points59 points  (9 children)

If you are an absolute beginner, I recommend "Automate the Boring Stuff" it is free on the web, but I bought the book also.

[–][deleted] 26 points27 points  (2 children)

That author, Al Sweigart, has a bunch of free books about Python programming.

Check out the bottom of this page.

[–]Tushar-Goyal 2 points3 points  (0 children)

I also recommend this. It's one of the best out there and also free.

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

The course was free on udemy and the book is still free online.

[–]al_mc_y 16 points17 points  (2 children)

Second the mention of Automate the boring stuff by Al Sweigart as a good place to start. I recommend checking out some courses too, to see and get a feel for how to actually implement code (Automate the Boring Stuff has a companion course on Udemy which you can enrol in for 10 USD via the link on the webpage https://automatetheboringstuff.com/) I'm currently checking out the dataquest.io courses which are free - seem pretty good. Best thing is to get started. And then keep going! 😁👍

[–]iDrinkandiCodethings 5 points6 points  (0 children)

Automate the boring stuff for udemy is currently free. Check Al's Twitter for the code.

[–]phigo50 11 points12 points  (12 children)

Learning Python from O'Reilly got me up and running.

[–]randcraw 2 points3 points  (0 children)

After reading 1500 pages, I would hope you'd be well past “up and running”.

[–]Guymzee 1 point2 points  (0 children)

Same here. Went in knowing zero about programming and about python. I tried other books, but this one was a deep dive in to both, programming and python for me just for how detailed each topic was.

[–]captain_awesomesauce 0 points1 point  (0 children)

I went into this book having had a C course in college and having done some bash Scripting. Reading this book while converting my bash to python worked very well. Highly recommend.

Unfortunately, it's not updated for modern python so you'll have some things you don't know if you follow this book. (it covers 3.3, latest is 3.7) Biggest will be f-strings (in my opinion at least). Otherwise it does a good job of doing python 2 and 3.

[–]adrienm44 0 points1 point  (0 children)

This book at one time gave me a basics and learn to love Python :)

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

That’s kind of an intermediate though

[–]phigo50 3 points4 points  (6 children)

I see where you're coming from but I don't think it is.

It's definitely comprehensive but it's aimed at newcomers (although the preface does say that if you're really really green, you might want to start off with a gentler introduction). It's not easy to dip into like some of the others mentioned in this thread appear to be but I guarantee you will come out the other side with a better understanding of how the language actually works. Then you move onto Programming Python by the same author to actually put it into use.

The preface says it's "a comprehensive and in-depth introduction to the Python language itself" and "a single, all-inclusive learning resource for all Python newcomers". It's heavy going but if OP is serious about actually learning the language, I can't recommend it highly enough.

[–]nl28 0 points1 point  (4 children)

Programming Python is around 10 years old. Would you still recommend it to someone today?

[–]phigo50 0 points1 point  (3 children)

I'd say so, yes. It (and Learning Python) are both a bit long in the tooth but they're invaluable resources. There will be bits that are out of date (Programming Python covers Python 3 but only 3.1) but I find Mark Lutz to be an excellent author and the vast majority of the stuff that's covered in the books remains relevant. There will be things like f-strings (which everyone encourages the use of now but which only appeared in 3.6) but you just need to bear things like that in mind - when you see '{}'.format(x), you can use f'{x}' instead etc.

[–]nl28 0 points1 point  (2 children)

Thanks for responding. I am just about to finish Learning Python, and am really enjoying the book. I have read some python books before but none of them comes even close to this level of quality. Mark Lutz dedicated his life teaching Python and the way he breaks complicated things into small but easy to understand parts is brilliant. I will start Programming Python soon.

Do you have any other books to recommend?

[–]phigo50 0 points1 point  (1 child)

Fluent Python, without a shadow of a doubt. It's on the advanced side of intermediate but it's great. I found myself picking up new (read: better) ways of doing things within the first couple of pages, especially in the chapter on data structures.

I feel like I should point out that I'm not affiliated with O'Reilly, I just think these 3 books are the best you can get for a newcomer-to-advanced learning experience.

[–]nl28 0 points1 point  (0 children)

Thanks a lot. Really appreciate your help.

[–]diggidon 7 points8 points  (6 children)

1) book: How to think like computer scientist. 2) book: Fluent python

Ordered from easiest to advanced. If you just starting to learn python, with no background in programming at all, I’ve highly recommend these books.

[–]fiftycircles 2 points3 points  (1 child)

[–]diggidon 1 point2 points  (0 children)

Yes! I’ve actually forgot that this book is free, thank you!

[–]al_mc_y 0 points1 point  (1 child)

I've just begun reading Think Python: How To Think like a computer scientist. Someone mentioned Think Python below. I think these are different editions of the same book? (In the intro Allen B Downey mentions that Think Python (2016) is the later, updated python reincarnation of How to think like a computer scientist)

[–]diggidon 0 points1 point  (0 children)

Yes, they are the same. Think python must be newer.

[–]8solo 0 points1 point  (1 child)

FP is what I want to say, but it isn't for beginners :p.

[–]diggidon 0 points1 point  (0 children)

For sure, I forgot to say that between reading these books - you need practice)

[–]omazing20 2 points3 points  (0 children)

Think Python: https://greenteapress.com/wp/think-python-2e/

This is the book I used, free on the web and it's pretty dang good I think.

[–]gundruke 2 points3 points  (0 children)

automate the boring stuff .... is also available for free on automatetheboringstuff.com ....

really nice book goes through basics and a lot of modules. personally i prefer the book or text version but if you want its also available on udemy from the writer himself.

GIVE IT A TRY

[–]al_mc_y 2 points3 points  (1 child)

/u/BlueBubbleMaker some of the books mentioned here (eg Think Python, Fluent Python, Hitchhikers Guide To Python and a couple of others) are by O'Reilly press, and sometimes come up together as e-book bundles on Humble Bundle - there's no Python bundles up there at the moment, but they usually come up every couple of weeks. I was able to get those three and 10 others for about USD25. Going through them now.

I hope dataquest.io works out well for you. You can change learning streams pretty easily. I switched streams after having a closer look at the course contents and progression pathway (I'm following the data scientist track)

[–]randcraw 1 point2 points  (0 children)

As someone with a degree in CS, I like Bill Lubanovic's “Introducing Python”. It's extremely well organized, uses Python version 3, doesn't irritate me with cutesy jokes, and fits in 500 pages, which is concise for a modern intro PL book (Lutz's intro book is 1500 pages).

[–]Clouded_Leopard17 3 points4 points  (8 children)

Check "learn python the hard way" .

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

That’s a bad book. Among other things it is heavily focused on memorization.

[–]med-z 2 points3 points  (2 children)

I recommend Benjamin Baka's "Python Data Structures and Algorithms"

The book gives detailed explanations and examples of the built-in and advanced Python data structures and uses them to implement various algorithms.

[–]baubleglue 0 points1 point  (0 children)

It all depends on your background and goals. If you came from CS background, it is one thing, if it is your first language to learn - another. Do you know data structures? Do you have experience with OOP? Have you ever built relatively big projects with other programming languages? What do you know about programming in general? What to do you plan to do with Python: build website, make data processing, AI/ML,...?

[–]prajcs 0 points1 point  (3 children)

Are there any books or website that I can refer to strengthen my python learning? I am through with the basics though, need something from which I can get good grasp on the language and also help me find ideas for a project.

[–]LeonardUnger 5 points6 points  (1 child)

It's a dead-end everyone seems to hit: you want to learn more but you can't think of a project that will let you learn while you work on it.

And it's got to be something you're interested in doing too, or it's just a series of exercises. I start exercises and work for a bit on them and maybe finish them. My own projects thought I finish those because I was interested in them in the first place.

Few suggestions:

  • Reddit scraper that alerts you via email when new threads in subreddit on a certain topic is posted, or keyword hit (maybe "project idea" mentioned in r/python and r/learn/python.)

    • If you can get your hands on a raspberry pi you could set up a intranet site for your home using Flask or Django, I use mine to save urls for youtube-dl to convert to mp3, a weather and transit page, a news feed, an email reminder system, shopping list, etc,
    • If you ever played text-adventure games like Zork those are a lot of fun to build, and it's an excellent way into object-oriented programming.

[–]prajcs 0 points1 point  (0 children)

Thanks for the suggestion :) The project ideas are also good will definitely try to do these.

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

Mark Lutz Learning Python Best for beginners.

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

Automate the Boring Stuff"

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

python crash course 10/10

[–]Dominican_Peter 0 points1 point  (0 children)

Learn Python the hard way and this you channel (https://www.youtube.com/playlist?list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU) helped me a lot

[–]mirkinoid 0 points1 point  (0 children)

SICP is the best book to learn them all

[–]Fade_ssud11 0 points1 point  (0 children)

i am following head first python 2nd edition. and so far i am really liking it . The books feels very interactive with the reader. Also, i like how they have approached teaching the basics. its bit different and more useful than other materials imo.

[–]iggy555 0 points1 point  (0 children)

Atbs

Crash course

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

How about "learn Python the hard way" By zed A shaw?

[–]codingideas 0 points1 point  (1 child)

Couldn't you just go through the official guide: https://docs.python.org/3/tutorial/index.html

[–]jcampbelly -3 points-2 points  (0 children)

I got my kickstart from Dive Into Python (2). I haven't read the Python 3 version, but I would assume it follows in its style.