This is an archived version of the course and is no longer updated. Please find the latest version of the course on the main webpage.

Reference books

This course does not strictly follow a single text book. However, if you would like to study Python in more depth, here are some useful references for you.

  • Think Python: 2nd edition is our unofficially text book. It is inline with our principles - it concentrates on teaching programming rather than just teaching coding, and does not try to make programming seemingly complicated just to make itself look smart. The digital version is available for free.

  • Python for Everybody is based on Think Python, but is more Informatics/Data Science focussed rather than Computer Science focussed. The digital version is also available for free.

  • The Official Python Tutorial: The official tutorial focusses on the syntax and features of Python, rather than the problem solving side of programming. You will learn a lot of hidden Python secrets here!

  • Head First Programming and Head First Python are two books for when you need a break from studying. The books are engaging, highly visual and fun, and they focus on practical, hands-on examples. Useful for those with a short attention span 🐟. The main difference between the books is that the former focusses on teaching programming in Python, while the latter teaches Python.

  • On the other side of the spectrum, Learn Python 3 the Hard Way: A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code concentrates on drilling you on one specific topic over and over until you are comfortable, before moving on to another topic. The idea is to do drills after drills after drills. By the end, you will be an effective programmer.

  • Once you are comfortable with Python, the following more advanced books will give you more tips and tricks to turn you into a more efficient and effective Python programmer.

    • Python Cookbook: Recipes for Mastering Python 3
    • Effective Python: 90 Specific Ways to Write Better Python
    • Fluent Python