A structured roadmap to learn Python in approachable, bite-sized lessons.
Each lesson tackles one concept through a mix of explanation, guided practice, and reflection. By following the sequence you will:
- Build solid Python fundamentals before moving to advanced topics.
- Practice daily in small increments to keep your momentum.
- Learn idiomatic, readable Python with real-world patterns.
- Ship meaningful progress to your GitHub profile with every lesson.
Every lesson lives in its own folder and follows the naming convention Lesson n°XX - topic/. Feel free to adapt the names if needed, but the learning experience stays the same:
Lesson n°XX - topic/
├── example.py # Narrative code + extensive inline commentary
├── exercise.md # Practice task with hints and tips
└── solution.py # Fully commented walkthrough of the answer
This consistent template keeps things predictable for learners and makes contributions easy to review.
- Lesson n°01 - Getting Started
- Lesson n°02 - Numbers and Input
- Lesson n°03 - Strings and Formatting
- Lesson n°04 - Booleans and Conditionals
- Lesson n°05 - Lists and Loops
- Lesson n°06 - Dictionaries and Data
- Lesson n°07 - Functions Basics
- Lesson n°08 - Advanced Functions
- Lesson n°09 - Modules and Imports
- Lesson n°10 - Files and Exceptions
- Lesson n°11 - JSON and CSV
- Lesson n°12 - Object Basics
- Lesson n°13 - Inheritance and Polymorphism
- Lesson n°14 - Magic Methods
- Lesson n°15 - Dataclasses and Type Hints
- Lesson n°16 - Iterators and Generators
- Lesson n°17 - Decorators in Depth
- Lesson n°18 - Exceptions and Testing
- Lesson n°19 - Logging and Debugging
- Lesson n°20 - Command Line Tools
- Lesson n°21 - Virtual Environments
- Lesson n°22 - Packaging Projects
- Lesson n°23 - HTTP Requests
- Lesson n°24 - Async Basics
- Lesson n°25 - SQLite Basics
- Lesson n°26 - Pandas DataFrames
- Lesson n°27 - Matplotlib Visualization
- Lesson n°28 - Seaborn Visualization
- Lesson n°29 - FastAPI Basics
- Lesson n°30 - API Testing and Clients
- Lesson n°31 - Background Tasks
- Lesson n°32 - Scheduling with APScheduler
- Lesson n°33 - Celery Workers
- Lesson n°34 - WebSockets and Streaming
- Lesson n°35 - Caching Strategies
- Lesson n°36 - GraphQL APIs
- Lesson n°37 - Request Validation
- Lesson n°38 - Authentication Basics
- Lesson n°39 - Rate Limiting
- Lesson n°40 - Monitoring and Metrics
- Lesson n°41 - API Versioning
- Lesson n°42 - Pagination Techniques
- Lesson n°43 - Webhooks and Callbacks
- Lesson n°44 - File Uploads
- Lesson n°45 - Full Text Search
- Lesson n°46 - Feature Flags
- Lesson n°47 - Secrets Management
- Lesson n°48 - Internationalization
- Lesson n°49 - Circuit Breakers
- Lesson n°50 - Load Testing
- Lesson n°51 - ETag Caching
- Lesson n°52 - Multi-Tenant APIs
- Lesson n°53 - Audit Logging
- Lesson n°54 - Data Export APIs
- Lesson n°55 - Data Anonymization
- Lesson n°56 - Tracing with OpenTelemetry
- Lesson n°57 - API Gateway Patterns
- Lesson n°58 - Graph Analytics
- Lesson n°59 - Task Queues Patterns
- Lesson n°60 - API Security Testing
- Lesson n°61 - API Testing with Schemathesis
- Lesson n°62 - API Rate Plans
- Lesson n°63 - Background Jobs with APScheduler
- Lesson n°64 - Webhook Signature Verification
- Lesson n°65 - Idempotency Keys
- Lesson n°66 - Correlation IDs
- Lesson n°67 - Structured Logging
- Lesson n°68 - Resilient HTTP Clients
- Lesson n°69 - Event Schema Versioning
- Lesson n°70 - API Deprecation Notices
- Lesson n°71 - Problem Details Errors
- Lesson n°72 - Health and Readiness Probes
- Lesson n°73 - Outbox Pattern
- Lesson n°74 - Multi-Tenant Routing
- Lesson n°75 - Graceful Shutdown
- Lesson n°76 - Timeouts and Retries
- Lesson n°77 - Backoff and Jitter
- Lesson n°78 - Bulkhead Isolation
- Lesson n°79 - Saga Orchestration
- Lesson n°80 - Distributed Locks
- Lesson n°81 - Trace Sampling Strategies
- Lesson n°82 - Canary Releases
- Lesson n°83 - Blue-Green Deployments
- Lesson n°84 - Zero-Downtime Migrations
- Lesson n°85 - Read-Write Splitting
- Lesson n°86 - Connection Pooling
- Lesson n°87 - Cache Aside Pattern
- Lesson n°88 - Write-Through Cache
- Lesson n°89 - Event Sourcing Basics
- Lesson n°90 - CQRS Read-Write Models
- Lesson n°91 - Message Deduplication
- Lesson n°92 - Dead Letter Queues
- Lesson n°93 - Tracing Context Propagation
- Lesson n°94 - Client-Side Rate Limiter
- Lesson n°95 - Backpressure with Queues
- Lesson n°96 - Adaptive Concurrency Limits
- Lesson n°97 - Shadow Traffic
- Lesson n°98 - Chaos Engineering Basics
- Lesson n°99 - Incident Playbooks
- Lesson n°100 - Resilience Capstone Project
- Clone the repo and open the next lesson folder in order.
- Read
example.pyto understand the concept with guided commentary. - Work through
exercise.mdusing the embedded hints if you get stuck. - Compare your work to
solution.py, focusing on the reasoning as much as the final code. - Commit the lesson to GitHub (daily or every other day) to keep your streak alive.
Contributions are welcome! You can submit pull requests to:
- Improve explanations or comments.
- Add extra practice challenges.
- Fix typos or code issues.
- Suggest future lessons or mini-project ideas.
Please keep changes clear and well-documented for easy review.
This project is released under the MIT License, so you're free to use, modify, and distribute the material in your own learning journey or teaching resources.