From beginner to pro: Python books, videos and resources

Posted by PyBites on Tue 07 February 2017 in Books

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

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

Lists from other Pythonistas

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:

Keep Calm and Code in Python!

-- Bob