Readings

Python is a very popular programming language, and there are many, many books covering its use for all sorts of things. Here are a few texts that I have found the most useful for teaching.

Complete beginner

  • Python for Everybody - Charles ‘Dr Chuck’ Severance. An excellent introduction to Python, and to computer programming in general, aimed at complete beginners. The book is available for free online, including exercises, but you can also order a cheap hard copy. Dr Chuck is an excellent instructor and you may also find his video tutorials helpful.

Beginner

  • Think Python - Allen B Downey. Dr Chuck’s Python for Everybody is a ‘remix’ of this earlier book, with extra emphasis on teaching to beginners and on practical applications such as web apps and databases. Think Python includes a lot of the same material, but with more detail on the abstract computer science of programming, and slightly less emphasis on applications. It is also available for free online, along with exercises and examples.

  • Python Crash Course - Eric Matthes. Also for beginners, but longer and more comprehensive than the other two beginner texts. Provides many clear ‘recipes’ for basic programming tasks, and includes good explanations of common problems and mistakes.

Career-specific

Data science

  • Python Data Science Handbook - Jake VanderPlas. A comprehensive introduction to working with data in Python, all the way from basic statistics up to and including machine learning. Assumes the reader is already familiar with Python.

App development

  • The Hitchhiker’s Guide to Python - Kenneth Reitz & Tanya Schlusser. Focuses on the processes of developing, documenting, and packaging Python programs, assuming that the reader already knows how to write a program.

  • Test-Driven Development with Python - Harry J. W. Percival. An excellent guide to developing web apps, including most importantly how to test as you go to make sure your app works and is secure.

Linguistics

  • Natural Language Processing with Python - Bird, Klein, & Loper. The definitive introductory text for working with natural language text in Python. The print edition of the book is currently based on Python 2 only, but there is an online version updated for Python 3.

Psychology

  • Python for Experimental Psychologists - Edwin Dalmaijer. Explains how to use Python to create interactive psychology experiments, and also includes a brief introduction to Python in general. Edwin Dalmaijer is an expert in eyetracking technology, so the book is mostly oriented towards visual and eye movement experiments.

  • Programming Visual Illusions for Everyone - Marco Bertamini. Also covers creating interactive experiments with Python, but focusing specifically on demonstrating visual illusions. This is a more fun, but somewhat more challenging, way to learn. Also includes a lot of interesting background on the illusions themselves.