In this article a list of useful Python resources to boost up your skills. It goes without saying that the best way to get better in Python is to read and write a lot of code. However these resources can definitely help fill in the knowledge gaps.
To get started
-
The Python Tutorial: official, quick-start tour to the language, introduces the standard library.
-
Head first Python, 2nd ed: detailed explanation of the language, lot of practical examples and as head first provides a lot of visual aid.
-
Jessica McKellar’s Introduction to Python and Intermediate Python Programming are awesome. I recommended these videos to a new Pythonista at work and he already thanked me: clear, concise, fun and practical examples, for him the concepts really started to make sense watching these videos.
-
Michael Kennedy has a growing set of awesome trainings: Write Pythonic Code Like a Seasoned Developer teaches you a lot of Python features and more importantly how to write Pythonic code. See our review, for us it’s kind of the manual we wish we’d had when we started! To learn by building cool projects, check out his Python Jumpstart by Building 10 Apps.
-
Dive into Python: this is another excellent introduction.
-
If you want to learn by practical projects, take a look at Automate the boring stuff which we reviewed here, the author also has a free tutorial on games
-
Learn Python the Hard Way takes another approach by having your hands at the keyboard, working through progressively more difficult code examples.
Fundamentals done, get better
-
The Hitchhiker’s guide to Python: this is a great work, it teaches Python best practices, comunnity tools, and is quite unique in that it teaches by looking at the source code of top-notch open source projects.
-
Fluent Python: on to become a classic. This is one of the best Python books out there. This gem has so much knowledge, best practices, and deep understanding of Python embedded. I read it last summer (somebody at PyData recommended it to me) and it is THE book that got me to the next level.
-
Effective Python: 59 Specific Ways to Write Better Python: I like the effective series for its recipe format. Very knowledgeable author, this book teaches you how to write Pythonic code.
-
Core Python Applications Programming: teaches concepts through real-world applications. Lot of code, covers a lot: Google App Engine, APIs, Database / web programming, even MS office programming.
-
The hacker’s guide to Python: I bought this ebook last week after being impressed reading the free functional programming chapter, not done yet, but already found some great insights, not easily found in other resources.
-
Powerful Python: good tutorial on advanced concepts like decorators, OOP design patterns, automated testing. The accompanying video shows you how to make a RESTful API using TDD, very interesting / useful.
-
Two Packt books that I read parts of and explain more advanced topics very well: Mastering Python and Expert Python Programming, 2nd ed.
-
For reference works check out Python cookbook and Python in a nutshell.
Other resources
-
If you learn better by video checkout PyVideo, I also found it very useful to watch PyCon talks, see this PyCon 2016 playlist for example.
-
Dan Bader’s blog, his new book: Python tricks reviewed here. He also made a useful list of Python podcasts.
-
On the subject of podcasts, Michael Kennedy’s Talk Python To Me is a must-listen for any Python developer. For headlines tune into Python Bytes, a nice weekly digest of Python news.
-
Testing is important, and Python has great coverage: unittest, pytest, nose, doctest … get started here or listen to Brian Okken’s Test and Code podcast.
-
For an understanding of algorithms I recommend Grokking algorithms we detailed here. Another resource is Problem Solving with Algorithms and Data Structures using Python.
-
If you want to learn Flask and Django, and Python web development and database programming in general, check out Real Python’s great courses.
-
If you want to use Microsoft Excel as a user friendly front-end to your Python code, check out pyxll.
-
Awesome Python – a curated list of awesome Python frameworks, libraries, software and resources (discussed here).
-
Python progression path – From apprentice to guru SO thread contains some useful advice as well.
-
Guido’s King’s Day Speech as well as his essays (I read one about optimization today, awesome!).
Lists from other Pythonistas
-
The mentioned Hitchhiker’s guide has a good resources list.
-
Full Stack Python’s Best Python Resources.
-
Pixelmonkey’s article: The 3 Best Python Books for Your Team.
Pff …
I know what you are saying, and I had the same feeling writing this article: there are just too many resources. Again, writing code is the best way to get better so the best advice I can give you is to pick up one of the resources, read some, start coding. Read some more, try new things you learn in your code. Repeat.
>>> import itertools
>>> import time
>>> for action in itertools.cycle(['read some more', 'code some more']):
... print(action)
... time.sleep(1)
...
read some more
code some more
read some more
code some more
I hope this list is useful. Feel free to use the comments below to share other resources that made you a better Python programmer.
Update: additions after Reddit
Wow amazed at the amount of upvotes / comments on Reddit, thanks for your support. I am adding some suggestions made in the commens:
-
Youtube channel: sentdex, lot of good Python learning, Django was specially mentioned.
-
For Data Science I heard good things about Python Data Science Handbook which shares all Jupyter notebooks freely here. See also this new thread with cheat sheets for Python for data science.
-
I replied another question about web scraping with some resources.
-
MIT intro computer science was labeled as very tough for a beginner. I read some of Allen Downey’s work sometime ago which I liked.
Keep Calm and Code in Python!
— Bob