This page is intended to be a listing of useful resources for beginner and experienced Python programmers alike. This page is generated from a JSON file on GitHub - if there's a great resource that you love and you don't see it on this page, feel free to submit a pull request!

Some resources aren't free - the below key will help you figure out whether you need to pay for a resource or not. You can also hover them for more information on the payment (or tap them on mobile).

Payment optional


Subreddit: r/Python

News about the Python programming language, and language-related discussion


A Simple Guide to Git

A simple, no-nonsense guide to the basics of using Git.

Get Started with Flask Web Development

A fully featured mega-tutorial for learning how to create web applications with the Flask framework.

Getting Started with Python

The list of resources for programmers and non-programmers from Python's official beginners' guide

Python Cheat Sheet

A Python 3 cheat sheet with useful information and tips, as well as common pitfalls for beginners. This is a PDF.

The Hitchhiker's Guide to Python

This opinionated guide exists to provide both novice and expert Python developers a best practice handbook to the installation, configuration, and usage of Python on a daily basis.

Python Tutorials by Corey Schafer on YouTube

An in-depth look at the Python programming language, from one of YouTube's most popular Python tutors.

Python Tutorials by The New Boston on YouTube

A Python basics tutorial based around Python 3.4 - A more casual feel when compared to Corey's tutorials, but still competent.

The Modern Python 3 Bootcamp

A unique interactive python experience with nearly 200 exercises and quizzes.


A Byte of Python

A free book on programming using the Python language. It serves as a tutorial or guide to the Python language for a beginner audience. If all you know about computers is how to save text files, then this is the book for you.

Automate the Boring Stuff with Python

One of the best books out there for Python beginners. This book will teach you the basics of Python, while also teaching invaluable automation tools and techniques for solving common problems. You'll learn how to go about scraping the web, manipulating files and automating keyboard and mouse input. Ideal for an office worker who wants to make himself more useful.

Effective Python

A book that gives 59 best practices for writing excellent Python. Great for intermediates.

Python Tricks

Full of useful Python tips, tricks and features. Get this if you have a good grasp of the basics and want to take your Python skills to the next level, or are a experienced programmer looking to add to your toolbelt.

Mission Python

Learn programming and Python while building a complete and awesome space-themed game using cutting-edge Python 3.6 and Pygame Zero. Extensive use of code examples, images, and walk-throughs make this a pleasure to both read and follow along. Excellent book for beginners.

Flask Web Development

A comprehensive Flask walkthrough that has you building a complete social blogging application from scratch.

Fluent Python

A veritable tome of intermediate and advanced Python information. A must-read for any Python professional.

Python Cookbook

Complete with 'recipes' for various Python topics, including moving from Python 2 to Python 3.3

Two Scoops of Django

This book is chock-full of material that will help you with your Django projects.

Interactive Learning Tools

Code Combat

Learn Python while gaming - an open-source project with thousands of contributors, which teaches you Python through a deep, top-down RPG.

MIT: Introduction to Computer Science and Programming Using Python

This MITx offering teaches computer science with Python. It covers computational thinking, algorithms, data structures and the Python programming language itself.

University of Michigan: Programming for Everybody

A 5-part specialization course that teaches Python from scratch. The course has no pre-requisites and avoids all but the simplest mathematics.

University of Toronto: Learn to Program

A 2-part course that teaches Python. Primarily intended for high school students and first-year university students who want to learn programming.

Automate the Boring Stuff with Python

The interactive course version of Al Sweigart's excellent book for beginners, taught by the author himself. This link has a discounted version of the course which will always cost 10 dollars. Thanks, Al!

Level up your programming skills with more than 2600 exercises across 47 programming languages, Python included. The website provides a mentored mode, where you can get your code reviewed for each solution you submit. The mentors will give you insightful advice to make you a better programmer.


Issue Haven

Aggregates open issues from thousands of open source projects. This is a good place to look for your first open source contribution.


Talk Python To Me

The essential weekly Python podcast. Michael Kennedy and a prominent name within the Python community dive into a topic that relates to their experience.

Python Bytes

A byte-sized podcast where Michael Kennedy and Brian Okken work through this week's notable Python headlines.


The podcast about Python and the people who make it great. Weekly long-form interviews with the creators of notable Python packages.



A free Electron-based editor, a "hackable text editor for the 21st century", maintained by the GitHub team.

Visual Studio Code

A fully-featured editor based on Electron, extendable with plugins.

Sublime Text

A powerful Python-backed editor with great community support and a wealth of extensions.


An editor aimed at beginners for the purpose of learning how to code without the distractions more advanced editors sometimes cause.



The Scientific PYthon Development EnviRonment. Simpler and lighter than PyCharm, but still packs a punch.


The very best Python IDE, with a wealth of advanced features and convenience functions.


A Python IDE specifially aimed at learning programming. Has a lot of helpful features to help you understand your code.