Best Python Resources

The Python community is amazing at sharing detailed resources and helping beginners learn to program with the language. There are so many resources out there though that it can be difficult to know how to find them.

This page aggregates the best general Python resources with descriptions of what they provide to readers.

If you prefer to learn by watching videos check out the best Python videos. You may also be interested in reading about development environments to use for coding.

New to programming

If you're learning your first programming language these books were written with you in mind. Developers learning Python as a second or later language should skip down to the next section for "experienced developers".

  • TwilioQuest is an free and incredible 16-bit adventure game that teaches programming in the Python basics mission. It's an absolutely way to stay engaged with the core concepts that can often be otherwise dry to learn. There are also more advanced missions to learn about web APIs, and new learning missions are added regularly on new programming topics.

  • Automate the Boring Stuff with Python is an incredible book for both non-developers and professional developers alike. Each chapter walks through a situation that can be automated using Python such as manipulating images, organizing your files and programmatically controlling your mouse and keyboard to handle any sort of tasks.

  • CS for All is an open book by professors at Harvey Mudd College which teaches the fundamentals of computer science using Python. It's an accessible read and perfect for programming beginners.

  • This short 5 minute video explains why it's better to think of projects you'd like to build and problems you want to solve with programming. Start working on those projects and problems rather than jumping into a specific language that's recommended to you by a friend.

  • The Python projects tag on the Twilio blog is constantly updated with fun tutorials you can build to learn Python, such as the International Space Station Tracker with Flask and Redis-Queue, Choose Your Own Adventures Presentations using Flask and WebSockets and Martianify Photos with OpenCV.

  • Google put together a great compilation of materials and subjects you should read and learn from if you want to be a professional programmer. Those resources are useful not only for Python beginners but any developer who wants to have a strong professional career in software.

  • The O'Reilly book Think Python: How to Think Like a Computer Scientist is available in HTML form for free on the web.

  • Looking for ideas about what projects to use to learn to code? Check out this list of 5 programming projects for Python beginners.

  • Python for you and me is an approachable book with sections for Python syntax and the major language constructs. The book also contains a short guide at the end to get programmers to write their first Flask web application.

Python for specific occupations

Python is powerful for many professions. If you're seeking to use Python in a specific field, one of these guides may be the most appropriate for you.

  • Python for Social Scientists contains a textbook, course outline and slides for a college course that taught social scientists to use Python for their profession.

  • Practical Business Python is a blog that covers topics such as how to automate generating large Excel spreadsheets or perform analysis when your data is locked in Microsoft Office files.

  • Python for the Humanities is a textbook and course on the basics of Python and text processing. Note if you've never worked with Python before the material ramps up quickly after the first chapter so you will likely want to combine it with some other introduction to Python resources.

  • Practical Python for Astronomers provides open source workshop materials for teaching students studying astronomy to use Python for data analysis.

Experienced developers new to Python

If you can already program in another language, these resources are better for getting up to speed because they are more concise when explaining introductory topics.

  • Learn Python in y minutes provides a whirlwind tour of the Python language. The guide is especially useful if you're coming in with previous software development experience and want to quickly grasp how the language is structured.

  • Developing a Real-Time Taxi App with Django Channels and Angular is a great tutorial for jumping into a real project instead of a simple starter application while learning common Python concepts and tools such as Django, Angular, WebSockets and Redis.

  • Developers familiar with other languages often have difficulty adapting to accepted Python code style. Make sure to read the PEP8 code style guidelines as well as The Elements of Python Style to know the Python community standards.

  • Authentication with Flask, React, and Docker is another detailed course that shows how to combine Flask, React, Docker and Heroku to build a solid intermediate-to-advanced web application and deploy it.

  • Essential Reads for Any Python Programmer is a great collection of advice for developers coming to Python from another programming language ecosystem such as Java.

  • How to Develop Quality Python Code is a good read to begin learning about development environments, application dependencies and project structure.

  • The Python module of the week chapters are a good way to get up to speed with the standard library. Doug Hellmann is also now updating the list for changes brought about from the upgrade to Python 3 from 2.x.

  • Composing Programs shows how to build compilers with Python 3, which is a good undertaking if you're looking to learn both more about the Python language and how compiles work.

  • free-for-dev is not specific to Python but it's a fantastic list of free tier resources for experienced developers. The list is especially handy if you want to try building a Python project and need new third party services to kick around while experimenting.

Videos, screencasts and presentations

Videos from conferences and meetups along with screencasts are listed on the best Python videos page.

Curated Python packages lists

  • awesome-python is an incredible list of Python frameworks, libraries and software. I wish I had this page when I was just getting started.

  • easy-python is like awesome-python although instead of just a Git repository this site is in the Read the Docs format.

  • Hacker News Tools of the Trade is not specific to Python but almost all of the tools and services are useful to building software projects.

Podcasts

Take a look at the best Python podcasts section for a curated list of both Python-specific and general software development podcasts.

Newsletters

Python's active community constantly publishes new tutorials and walkthroughs. It is easier to keep up if you follow along by subscribing to several email newsletters that round up and curate the best new resources. I subscribe to all of the following newsletters and find that each one has its own unique take on what resources are most important to send out to the community.

  • Python Weekly is a free weekly roundup of the latest Python articles, videos, projects and upcoming events.

  • PyCoder's Weekly is another great free weekly email newsletter similar to Python Weekly. The best resources are generally covered in both newsletters but they often cover different articles and projects from around the web.

  • Talk Python's Friends of the Show always highlights new episodes of this wonderful podcast as well as new useful tools to add to your developer toolbelt.

  • Awesome Python Newsletter provides another solid selection of new and existing tutorials along with an extensive issues archive with previous links to resources.

Those resources should help you get started. What's next?

I want to learn how to code a Python web application using a framework.

I've built a Python web app, now how do I deploy it?

What editor should I use to code my Python app?


Matt Makai 2012-2022