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