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. All libraries worth using support Python 3 by now - those that do not do by now will be a dead end. Python 3 contains many pages of new features and improvements. Official support for Python 2 ended in 2020, so don’t get stuck in the past! Any courses, tutorials that today do not teach primarily Python 3 should be considered outright 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!

  • Python Crash Course, 2nd Edition

    A really good book for people new to programming and for those with a little programming experience but who are new to Python. (For those who do have extensive programming experience in other languages but are looking to get into Python, the official Python 3 tutorial will cover the same topics and more.)

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

  • Fluent Python 1st edition - 2nd edition will be released in 2021, prerelease available from O'Reilly

  • Dive Into Python 3

    Aimed at those who are already familiar with programming concepts, and want to see how Python does things. The book was published when Python 3 was still very new and is outdated. Therefore if one were on a tight budget, some newer book would be a better option to purchase. But the contents of the book are available for free online. The sources are also available on GitHub.

  • Advanced Python Development

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