Basic
10 weeks · From beginner to functions
Week 1 — Getting Started with Python
Interpreter · Installation · REPL · Comments
Learn what Python is, install Python 3.10+ and VS Code, run your first print statement, and understand the difference between REPL and script mode.
Week 2 — Variables & Data Types
int · float · str · bool · type()
Explore Python's four core data types, learn how to assign variables, use type() to inspect values, and perform basic type conversions.
Week 3 — Operators & I/O
Arithmetic · Comparison · Logical · f-strings · input()
Master Python's arithmetic, comparison, and logical operators, format output with f-strings, and build interactive programs with input().
Week 4 — Conditionals
if · elif · else · nested · ternary
Control program flow with if/elif/else blocks. Learn nested conditions, the ternary expression, and how to structure complex decision logic.
Week 5 — Loops
for · while · range · break · continue · else
Automate repetitive tasks with for and while loops. Master range(), break, continue, and the rarely-known loop else clause.
Week 6 — Lists & Tuples
Indexing · Slicing · Methods · Unpacking
Work with Python's most-used sequence types. Master list CRUD operations, slicing syntax, common list methods, and tuple unpacking.
Week 7 — Dictionaries & Sets
CRUD · Iteration · Comprehension · Set Operations
Use dictionaries for key-value storage and sets for unique collections. Learn dict comprehensions, set algebra, and when to choose each structure.
Week 8 — String Methods & Formatting
Methods · Slicing · format() · f-strings · encode
Strings are immutable sequences with a rich method library. Learn to slice, search, replace, split, join, and format text for real-world use.
Week 9 — Functions
def · return · Arguments · Defaults · Scope
Functions let you name and reuse blocks of logic. Learn def, return, default arguments, keyword arguments, and variable scope (LEGB rule).
Week 10 — Basic Capstone: CLI To-Do App
Review · Integration · File persistence
Combine everything from weeks 1–9 into a full command-line to-do application with add, list, complete, and delete commands. Optionally persist tasks to a JSON file.
Intermediate
10 weeks · Functions deep dive, OOP, regex
Week 1 — Advanced Functions
lambda · Closures · *args · **kwargs · functools
Go beyond basic def: write anonymous functions with lambda, understand closures, handle variable-length arguments, and use functools tools like partial and lru_cache.
Week 2 — Comprehensions & Generators
List · Dict · Set · Generator expressions · yield
Write concise, readable data transformations with list, dict, and set comprehensions. Then step into generators and yield for memory-efficient iteration.
Week 3 — Modules & Packages
import · from · pip · __all__ · __init__.py
Organize code into reusable modules and packages. Understand how Python's import system works, create your own packages, and manage dependencies with pip.
Week 4 — Standard Library
datetime · pathlib · collections · itertools · random
The Python standard library has batteries included. Learn the most useful modules: datetime for time, pathlib for files, collections for advanced data structures, and itertools for efficient looping.
Week 5 — Exception Handling
try · except · else · finally · raise · Custom exceptions
Write robust programs by handling errors gracefully. Learn the full try/except/else/finally pattern, re-raise exceptions, and define custom exception classes.
Week 6 — File I/O
open · read · write · with · CSV · JSON · pathlib
Persist data to disk with Python's file I/O. Read and write plain text, CSV, and JSON files using context managers, the csv module, and json module.
Week 7 — OOP Part 1: Classes & Instances
class · __init__ · Methods · Properties · dataclass
Model real-world entities with classes. Learn to define attributes in __init__, write instance methods, use properties for validation, and simplify data classes with @dataclass.
Week 8 — OOP Part 2: Inheritance & Dunder Methods
Inheritance · super() · Polymorphism · __str__ · __eq__ · __len__
Extend classes with inheritance, call parent methods with super(), implement polymorphism, and customize object behavior with dunder (magic) methods.
Week 9 — Regular Expressions
re module · Patterns · Groups · Flags · findall · sub
Unlock powerful text-matching with regular expressions. Learn pattern syntax, groups, lookahead/lookbehind, and use re.findall, re.sub, and re.fullmatch for text extraction and cleaning.
Week 10 — Intermediate Capstone: Text Analysis Tool
CLI · File I/O · OOP · Regex · Statistics
Combine the intermediate track skills to build a command-line text analysis tool that reads files, tokenizes text, computes statistics, and produces a formatted report.
Advanced
10 weeks · Typing, concurrency, testing, packaging
Week 1 — Type Hints & Dataclasses
Annotations · TypeVar · Generic · dataclass · Protocol
Add static type information to Python code with type hints, use TypeVar for generic functions, model data with @dataclass, and define structural subtypes with Protocol.
Week 2 — Decorators & Context Managers
functools.wraps · Stacking · Class decorators · __enter__ · __exit__
Master decorators for cross-cutting concerns like logging, caching, and timing. Then implement reusable context managers with both the class-based and contextlib.contextmanager approaches.
Week 3 — Iterators & Generators
__iter__ · __next__ · yield · yield from · send()
Implement the iterator protocol from scratch, write memory-efficient generators with yield, compose pipelines with yield from, and use generator's send() for two-way communication.
Week 4 — Threading & Multiprocessing
Thread · Process · Lock · Queue · concurrent.futures
Write concurrent programs with threading and multiprocessing. Understand the GIL, synchronize shared state with Lock and Queue, and use concurrent.futures for a clean high-level API.
Week 5 — Asyncio
async/await · Event loop · gather · aiohttp · asyncio.Queue
Write asynchronous programs with asyncio. Understand coroutines, tasks, the event loop, and use aiohttp for non-blocking HTTP requests.
Week 6 — Testing with pytest
pytest · Fixtures · parametrize · Mock · Coverage
Write professional tests with pytest. Use fixtures for setup/teardown, parametrize for data-driven tests, mock external dependencies, and measure code coverage.
Week 7 — Web Scraping
requests · BeautifulSoup · Rate limiting · robots.txt · Caching
Extract structured data from web pages ethically. Use requests for HTTP and BeautifulSoup for parsing HTML. Implement rate limiting, respect robots.txt, and cache results.
Week 8 — NumPy & Pandas
ndarray · Broadcasting · DataFrame · GroupBy · Matplotlib
Accelerate numerical computation with NumPy arrays and explore tabular data with Pandas. Combine them with Matplotlib to visualize results.
Week 9 — Packaging & Distribution
pyproject.toml · hatch · wheel · PyPI · entry_points
Turn your Python code into a distributable package. Learn pyproject.toml, build tools (hatch/setuptools), create CLI entry points, and publish to PyPI (or TestPyPI).
Week 10 — Advanced Capstone: Async REST Client
asyncio · aiohttp · Typed API · pytest · packaging
Combine the full advanced track into a production-grade async REST API client library, complete with type hints, retry logic, caching, pytest test suite, and a pip-installable package.
Practice Projects
16 projects · Console projects by difficulty (★ ~ ★★★★)
Project 1 — Rock Paper Scissors
Conditionals · Loops · random
Build a best-of-3 Rock Paper Scissors game against the computer with input validation and a running win/loss record.
Project 2 — Number Guessing Game
Random · Input · Loops · Hint logic
Guess the secret number with too-high/too-low hints. Add difficulty levels (attempts limit) and a high-score leaderboard.
Project 3 — Calculator
String parsing · Functions · Error handling
Build a command-line calculator that parses infix expressions (+, -, *, /, **, %) and handles division-by-zero and invalid input gracefully.
Project 4 — Unit Converter
Dictionaries · Functions · Input menus
Convert between common units (length, weight, temperature) using a menu-driven CLI. Extend the conversion table with new units without changing the core logic.
Project 5 — To-Do List App
Lists · Dicts · Functions · JSON persistence
Build a full-featured to-do list with priorities, due dates, categories, and JSON file persistence.
Project 6 — Vocabulary Quiz
Dicts · Random · Score tracking · Spaced repetition
Create an interactive vocabulary quiz that shuffles questions, tracks performance per word, and prioritizes words you get wrong (basic spaced repetition).
Project 7 — Contacts Manager
OOP · JSON · Search · Sort · CSV export
Build an object-oriented contacts manager with name, phone, email, and tags. Support search, sort, and CSV/JSON export.
Project 8 — BMI Tracker
Functions · OOP · History · Charts
Track BMI over time with a history log, trend analysis, and an ASCII chart of weight progression.
Project 9 — Budget Tracker
OOP · CSV · Categories · Monthly summary
Track income and expenses by category. Generate monthly summaries, spending breakdowns, and savings rate reports — all stored in CSV.
Project 10 — Library Manager
OOP · JSON · Search · Borrowing system
Manage a book library with borrow/return tracking, member accounts, overdue detection, and full-text search.
Project 11 — Diary App
File I/O · Encryption · Search · Markdown
Write encrypted daily journal entries, search past entries by keyword or date, and export to Markdown.
Project 12 — Text Adventure Game
OOP · State machine · JSON maps · Parser
Build a text adventure game with rooms, items, NPCs, and a simple command parser. Load the world map from a JSON file.
Project 13 — Argparse CLI Tool
argparse · subcommands · Config · Entry point
Build a professional command-line tool with argparse subcommands, a config file, logging, and a pip-installable entry point.
Project 14 — CSV Report CLI
pandas · argparse · Jinja2 · HTML report
Analyse a CSV file from the command line: filter rows, compute statistics, and generate HTML and Markdown reports using Pandas and Jinja2 templates.
Project 15 — Markov Chain Chatbot
Markov chains · Text processing · Probability
Build a text generator chatbot using Markov chains. Train it on any text corpus and generate statistically plausible responses.
Project 16 — TUI App with curses / textual
curses · textual · Widgets · Keyboard events
Build a terminal user interface (TUI) for one of your earlier projects. Use curses for low-level control or the modern textual framework for high-level widgets.