Learning path¶
Pick one thing from your level and finish it. Collecting resources is a procrastination technique with excellent branding.
Complete beginner¶
You've never written code, or you've written a little and it didn't stick.
| Resource | Format | Why this one |
|---|---|---|
| Automate the Boring Stuff | Book, free online | Every chapter ends with something useful. Best hit rate for people who bounce off theory |
| CS50P | Video course, free | Harvard's Python course. Structured, graded, genuinely well taught |
| The official tutorial | Docs | Dry but correct, and it teaches you to read the docs, which is the real skill |
| W3Schools Python | Lessons, free | Byte-sized pages with a runnable example on each. Good when you want one topic, not a course |
| SoloLearn | App and web, free tier | Short lessons that fit a commute. Won't get you all the way, gets you started |
| Twilio Quest | Game, free | You learn Python by playing it. Genuinely fun, and unusual enough to keep people going |
Type the examples out
Don't copy-paste them. The typos you make while typing are the lesson.
If you'd rather see the whole route before you start, roadmap.sh/python lays the topics out as a map. Read it once for orientation, then close it — the map isn't the walk.
An hour of video first¶
Not a substitute for a course, but a decent way to find out whether the syntax scares you.
- Python in one hour — current, and a reasonable tour of the basics.
- An older one-hour crash course — some details have dated, the concepts haven't.
Getting comfortable¶
You can write a script. You're unsure whether you're writing it well.
| Resource | Format | Why this one |
|---|---|---|
| Python Crash Course | Book | Second half is three real projects, which is where most beginner books stop |
| Real Python | Articles, tutorials | Reliable depth on specific topics. Search it before asking |
| Exercism's Python track | Exercises with mentoring | Human feedback on your solutions, free |
| GeeksforGeeks Python | Articles, examples | Wide coverage with a worked example for nearly everything. Check the Python version on older articles |
Paid courses, without paying
Courson collects 100%-off vouchers for Udemy courses. The vouchers expire quickly and the quality varies as much as Udemy does, so check the reviews before you spend an evening on one.
Building things¶
You can build something that works. You want it to be good.
| Resource | Format | Why this one |
|---|---|---|
| Fluent Python | Book | Explains why Python is shaped the way it is. Best read once you've been bitten |
| Architecture Patterns with Python | Book, free online | Structure for applications that outgrew a single file |
Practice between sessions¶
Short problems keep the syntax in your fingers on the days you don't have an evening to spend. They're a supplement to building things, not a replacement — nobody ever shipped anything by grinding exercises.
| Site | Shape | Notes |
|---|---|---|
| PracticePython | 30-odd exercises with solutions | Start here if you've just finished a beginner course |
| Python Principles | Small challenges in the browser | No setup, instant feedback |
| HackerRank's Python domain | Graded problems by topic | Also what a lot of interview screens look like |
| Codecademy's advanced challenges | Article with worked problems | For when the easy ones stopped teaching you anything |
| Advent of Code | December puzzle calendar | Good for algorithms. Bad for learning to write maintainable code — that's not what it's for |
Read someone else's answer afterwards
Solve it yourself first, then look. The gap between your version and a good one is the part worth studying.
Reference¶
Worth bookmarking rather than reading start to finish. There's more of this on the cheat sheets and tools page.
- The standard library index — read this before installing a dependency. The answer is often already installed.
- PEP 8 — the style guide. Most of it is handled by a formatter now.
- PEP 20 — the Zen of Python. Quoted more often than it's followed.
What we don't recommend¶
Tutorials older than about five years, unless they're teaching something that hasn't changed. Python 2 material, obviously. Anything promising fluency in a weekend.
Video playlists that never build anything are also a trap — you'll feel productive and retain very little. If a course has no exercises, add your own.
Stuck choosing?
Ask in the help channels and say what you've already tried. Someone will have an opinion, and probably a better one than this page.