• Last edited on Jan 18, 2019, 2:37:13 PM by davidism

This question is asked a lot by people first joining the room. These are our standard recommendations. There are of course other tutorials, and resources for specific areas of programming. A good place to start is the official docs of any library you want to use, they often contain a tutorial to introduce major concepts.

Use Python 3. Most libraries now support Python 3, and it contains many pages of new features and improvements. Official support for Python 2 will end in 2020, so don’t get stuck in the past! Any courses, tutorials that today do not teach primarily Python 3 should be considered outdated.

  • The official Python 3 tutorial

    It’s right there in the Python docs! This tutorial covers basic programming blocks, common data structures and functions, and an overview of common advanced topics. Ex. What do the * and ** do in function definitions? - It’s there in the Python tutorial!

  • Dive Into Python 3

    Aimed at those who are already familiar with programming concepts, and want to see how Python does things. There was a previous version of Dive Into Python that was aimed at Python 2, make sure you use the Python 3 version.

    As of early 2019, there does not seem to be an authoritative on-line version of this book any longer. The sources are mirrored at https://github.com/diveintomark/diveintopython3 and the link above goes to the Internet Archive’s copy.

  • Invent With Python

    Multiple books for beginner and intermediate programmers. Takes a practical approach to learning, where you create real scripts, programs, and games while learning the concepts behind them. The books can be read online for free (Creative Commons), or you can buy your own hardcopy. Check out for example Automate the Boring Stuff with Python.

  • Think Python

    Teaches programming for beginners, using Python. Used in various colleges to teach an Intro to Programming classes, the book is freely available online or as an O'Reilly book in the bookstore.

  • Steve Holden’s Python tutorials, published by O'Reilly

    Here are four Python classes written for O'Reilly by Steve Holden (aka holdenweb). They’re somewhat dated now, and they presume an O'Reilly teaching environment that is unfortunately no longer available, but they’re all Python 3. The intended target audience included (e.g.) technicians who might have to program instruments in Python and the like, rather than just professional programmers. For experienced programmers there’s probably a lot more value in the first two classes than the last two.
    Class 1 Class 2 Class 3 Class 4

We strongly recommend you don’t use Learn Python The Hard Way. It contains some “interesting” decisions, and its structure tends to lead people into asking premature questions.

We see a lot of questions that could have been avoided if readers continued reading. Remember, tutorials have an end goal, so keep reading even if a concept initially doesn’t make sense.