• Last edited on Nov 4, 2016, 12:56:59 PM by 4014959 PM 2Ring

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.

  • 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.

  • 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.