Roadmaps › Python Backend
Python Backend Roadmap
Learn Python Backend step by step — 71 free lessons with spaced repetition and active recall on RetainHQ, so what you study actually sticks.
Lessons
- Database Migrations with Alembic
- API Tests: TestClient vs HTTPX
- *args & **kwargs
- Async Tests
- async vs def Endpoints
- Background Tasks
- Blocking Calls in Async Code
- Closures & LEGB scope
- Concurrency vs Parallelism
- ConfigDict & from_attributes
- Database Connection Pooling
- Coroutines, async / await
- Coverage and CI
- Custom exceptions & EAFP
- dataclasses
- Decorators
- Dependency Injection (Depends)
- dict internals & ordering
- Dockerfile & Multi-stage Builds
- Duck typing
- Eager Loading with selectinload
- Env Vars and Secrets
- functools.wraps
- Reference counting & GC
- Generator expressions
- Hardening, Health, and Rate Limits
- HTTPException and Error Shape
- None & truthiness
- Inheritance & super() (MRO)
- Class vs instance attributes
- is vs ==
- Iterators & the iterator protocol
- Positional vs keyword arguments
- Comprehensions
- Slicing
- instance / class / static methods
- Middleware & CORS
- Mocking and Patching
- Mutable default argument pitfall
- Mutable vs immutable types
- The N+1 Queries Problem
- None & Truthiness
- Variables as references
- Dunder methods (__eq__/__hash__)
- Parametrized Tests
- Path & Query Parameters
- @property
- Pydantic Models and Validators
- Config & Pydantic Settings
- Pytest Basics and Fixtures
- Request Body & response_model
- Routers & App Structure
- Sessions and expire_on_commit
- set & membership
- Shallow vs deep copy
- Slicing
- Async SQLAlchemy and SQLModel
- Status Codes & OpenAPI
- __str__ vs __repr__
- Structured Logging in Prod
- Tasks & gather
- The event loop
- The GIL (Global Interpreter Lock)
- Threading vs Multiprocessing
- Transactions and Atomicity
- try / except / else / finally
- list vs tuple
- Uvicorn, Gunicorn, and Workers
- Context managers (with)
- WSGI vs ASGI
- Generators & yield