You can find here a curated list of python and “general” programming books that had a significant impact on the way I code.  You can expect the following list to expand over time.

Fluent Python: Clear, Concise, and Effective Programming by Luciano Ramalho. This book aims to give you a complete tour of all python features with best practices on how to use them. Comes with lots of small code snippets/examples illustrating what’s actually happening under the hood. To give one simple but concrete example – do you know when decorators are evaluated? How do they relate to closures? If no, grab the book. If yes – grab it either, since for sure you will find a topic where you can learn something new (ever seen a “yield from” construct?). Explanations sometimes may feel longish but this is actually a good thing – the author does a great job making sure you end up understanding all subtleness behind given language feature.

Effective Python: 59 Specific Ways to Write Better Python by Brett Slatkin. This is a gem. Written in the “Effective C++” manner gives you tons of usable and very concrete techniques on how to improve your python code. Already translated into 7 languages including German, Polish and Portuguese.

The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt. Not a python book. Still, a must read since shows an optimal direction for programmer’s attitude to coding. Some extra points for having “pragmatic” in the title.

Expert Python Programming by Michał Jaworski and Tarek Ziade. Be sure to grab the second edition. Mini-review coming soon.