Python
roadmap.sh: https://roadmap.sh/python
Suggested path through the Python nodes. Each node links to its lesson when written.
Nodes
Basics & syntax
- Basic syntax
- Variables and data types
- Conditionals
- Type casting
- Exceptions
- Functions & built-in functions
- Operators
- Working with strings
Data structures
- Lists
- Tuples
- Sets
- Dictionaries
Loops & comprehensions
- Loops
- List comprehensions
- Generator expressions
Object-oriented programming
- Classes
- Methods
- Inheritance
- Encapsulation
- Decorators
- Lambdas
Modules & functional concepts
- Modules
- Iterators
- Context managers
- Recursion
- Regular expressions
- Paradigms
- Variable scope
Package managers & environments
- pip
- PyPI
- Virtualenv
- Pipenv
- Conda
- Poetry
- PDM
- uv
- pyenv
- pyproject.toml
Static typing
- Static typing
- typing module
- mypy
- Pyright
- Pyre
- Pydantic
Code formatting & linting
- Code formatting
- Black
- YAPF
- Ruff
Testing
- Testing
- unittest (PyUnit)
- pytest
- doctest
- tox
Documentation
- Sphinx
Concurrency & async
- Concurrency
- Asynchrony
- Threading
- Multiprocessing
- The GIL
- gevent
Frameworks & libraries
- Learn a framework
- Django
- Flask
- FastAPI
- Sanic
- Tornado
- Pyramid
- aiohttp
- Plotly Dash
- Common packages
Data structures & algorithms
- Arrays & linked lists
- Heaps, stacks & queues
- Hashmaps
- Binary search tree
- Sorting algorithms
Resources
See resources.md.
Project ideas
- Build a CLI task manager with
argparse, JSON persistence, and a pytest suite. - Write an async web scraper using
aiohttp+asynciothat fans out across many URLs with a concurrency limit. - Create a typed FastAPI service with Pydantic models, dependency injection, and full test coverage.