Here’s a few of the more well-developed and freely-available Python-focused books, guides, and courses. Like most things on this new Jekyll blog of mine, it’s a work in progress. You can see the YAML-formatted list in the repo .
Automate the Boring Stuff with Python – by Al Sweigart – “Automate the Boring Stuff with Python is written for office workers, students, administrators, and anyone who uses a computer how to write small, practical programs to automate tasks on their computer.” [buy it]
Donne Martin’s Interactive Coding Challenges – Continually updated, interactive, test-driven Python coding interview challenges (algorithms and data structures).
Python Cookbook – by David Beazley and Brian K. Jones – “If you need help writing programs in Python 3, or want to update older Python 2 code, this book is just the ticket. Packed with practical recipes written and tested with Python 3.3, this unique cookbook is for experienced Python programmers who want to focus on modern tools and idioms.” [buy it]
Software Carpentry’s Programming with Python – “The best way to learn how to program is to do something useful, so this introduction to Python is built around a common scientific task: data analysis. Our real goal isn’t to teach you Python, but to teach you the basic concepts that all programming depends on.”
From Python to Numpy – by Nicolas P. Rougier – An open-access book on numpy vectorization techniques.
Composing Programs – by John DeNero of UC Berkeley – “In the tradition of SICP, this text focuses on methods for abstraction, programming paradigms, and techniques for managing the complexity of large programs. These concepts are illustrated primarily using the Python 3 programming language.”
Dive Into Python: Python from novice to pro – by Mark Pilgrim – A free, book originally published in 2004, aimed at experienced programmers.
Codecademy’s Python Track – An interactive course in Python 2.
Learn Python the Hard Way (4th Ed.) – by Zed Shaw – “This book instructs you in Python by slowly building and establishing skills through techniques like practice and memorization, then applying them to increasingly difficult problems. Note that the Python 3 version is still in draft status.” [buy it]
The Hitchhiker’s Guide to Python – by Kenneth Reitz – This opinionated guide exists to provide both novice and expert Python developers a best-practice handbook to the installation, configuration, and usage of Python on a daily basis.
Introduction to Statistics 6.4 documentation – by Thomas Haslwanter – “I believe that I cover at least 90% of the problems that most physicists, biologists, and medical doctors encounter in their work.”
Think Python – The goal of this book is to teach you to think like a computer scientist. This way of thinking combines some of the best features of mathematics, engineering, and natural science. [buy it]
Probabilistic Programming & Bayesian Methods for Hackers – by Cam Davidson-Pilon – An intro to Bayesian methods and probabilistic programming from a computation/understanding-first, mathematics-second point of view.
The Little Book of Python Anti-Patterns – by QuantifiedCode – Welcome, fellow Pythoneer! This is a small book of Python anti-patterns and worst practices.
Test-Driven Development with Python – This book is my attempt to share with the world the journey I’ve taken from “hacking” to “software engineering”. It’s mainly about testing, but there’s a lot more to it, as you’ll soon see. [buy it]
Natural Language Processing with Python - Analyzing Text with the Natural Language Toolkit – by Steven Bird, Ewan Klein, and Edward Loper – This book serves both as a user manual for the great NLTK Python library and a primer on natural language processing.
OpenCV-Python Tutorials – by Alexander Mordvintsev & Abid K. – A set of tutorials covering the use of image processing and computer vision via the Python OpenCV library.
Making Games with Python & Pygame – by Al Sweigart – Making Games with Python & Pygame covers the Pygame library with the source code for 11 games. Making Games was written as a sequel for the same age range as Invent with Python. [buy it]
Hacking Secret Ciphers with Python – by Al Sweigart – Hacking Secret Ciphers with Python teaches complete beginners how to program in the Python programming language. The book features the source code to several ciphers and hacking programs for these ciphers. [buy it]
Intermediate Python — Python Tips 0.1 documentation – by Muhammad Yasoob Ullah Khalid – “The topics which are discussed in this book open up your mind towards some nice corners of Python language. This book is an outcome of my desire to have something like it when I was beginning to learn Python.”
Other lists and resources
- r/learnpython - the size of this subreddit is a decent metric of how popular Python has become.
- Al Sweigart has a list of non-free books he recommends - “These books take a more conventional approach to covering programming concepts. They don’t focus on having complete source code for small projects or games, but they do explain programming concepts fairly well.”
The list of great books for purchase is too long a list, but of the things I’ve recently purchased and read, Fluent Python is just stellar. I’m still a relative novice at Python, but this book (which focuses on 3.x) was both immediately accessible and revelatory. I’d compare it favorably to Metaprogramming Ruby – both books eloquently expose the power of their languages for relatively experienced programmers.
Interested in the R language? I’m also putting together a shortlist of free R resources.