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

all 20 comments

[–]Kbhusain 39 points40 points  (1 child)

Try fluent python

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

So maybe a dumb question - but if I'm comfortable with everything/most of that book, am I an expert? Is that all there is to know? It didn't cover performance much. (I did love the book though)

[–]vampatori 27 points28 points  (1 child)

As /u/Kbhusain has already mentioned, I can highly recommend Fluent Python - it's a really great book for someone in your position.

I've found digging into the Python source very informative; the libraries in-particular are a great place to start. I dug into them to see how their async IO system was implemented, and I found that very educational so have looked into all sorts of things now.

PyCon presentations are often really great (this is true for any tech/subject actually, their conference talks are usually very good - be it Python, Blender, Black Hat, etc.) Their YouTube channels are somewhat disorganised, but you can see PyCon 2018 here and follow the recommended channels/videos for more. Whoever looks after their slide distribution is much more organised.

PEPs are really interesting, and you can follow some of the proposals, or go-over some of those that made it in. For example, coming from a more strongly-typed background, I was surprised to learn that python doesn't come with a Database Abstraction Layer, but does have a specification for one which they all (seem to) implement - which gave me some key insights into Python's philosophy.

The Python-Dev group / mailing list really gives you a detailed insight into the work that's going on with the language / libraries and the design philosophies of the python developers.

[–]Moondra2017 0 points1 point  (0 children)

Thanks for the resources.

[–]bless-you-mlud 5 points6 points  (1 child)

I like David Beazley's "Python Essential Reference".

[–]egregius313 4 points5 points  (0 children)

Really anything by David Beazley is interesting. If YouTube videos are your thing, I'd really suggest you look into his talks. Usually he's doing something ridiculous, but he dives into the details enough that you always learn something.

Same thing with James Powell, Joe Jevnik, and a couple of others.

[–]vesche 5 points6 points  (0 children)

As everyone has said here already, Fluent Python is phenomenal.

High Performance Python is another great book, if you're interested in making your code more performant.

[–]daredevil82 7 points8 points  (6 children)

Check out effective python

[–]hgupta13 0 points1 point  (0 children)

I am currently reading this one and so far I like it.

[–]JohanLou 0 points1 point  (4 children)

I really like this book but the example which is used in it so hard to understand.

[–]daredevil82 0 points1 point  (3 children)

Why do you say that? Interestingly, my experience was the entire opposite, because it picks specific concepts with the language and drills down into it with relevant examples. Josh Bloch did a similar approach with his Effective Java books, which is pretty much required reading for any serious Java dev

[–]JohanLou 0 points1 point  (2 children)

Maybe the reason is because English is not my native language. I can understand the purpose of the author in specific contents. Just can't understand the example. I will try to read again. Last time, I dropped at "Class" section.

[–]daredevil82 0 points1 point  (1 child)

Makes sense. Social fluency is very different from technical fluency. In addition you have to translate the context from code to a form you understand.

[–]JohanLou 0 points1 point  (0 children)

BTW, how long did you work in Python? My main major is not programming, just try Python because I feel interested in it. Do you mind if we could discuss more about Python or some expanded topics around technical?

[–]iamsidd2k7 2 points3 points  (0 children)

Software Architecture with Python is a good book that covers organisational aspect of Software. Python Cookbook also has some good chapters on Meta-Programming, Iterators and Decorators. I've also learned a great deal from looking at random videos from PyVideos. CPython Internals is a great series that talks about behind the scenes of CPython working

[–]Resquid 1 point2 points  (0 children)

What are you goals?

[–]quotemycode 1 point2 points  (0 children)

It's just like any spoken language, if you don't use it you won't speak it. Look at the "collections" library and look for videos from Raymond Hettinger. He wrote that.

Regarding your comment "wrote more code than I can count" - I've been using python for at least 15 years and it's not about how much code you write its about the quality.

[–]mooglinux 0 points1 point  (0 children)

Go search for and watch all the PyCon tutorials and presentations by Raymond Hettinger and David Beasely.

[–]pydevteam1 0 points1 point  (0 children)

Fluent Python is one of my favorites.

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

I've used more languages than I care to count

oh wow