From absolute beginner to working pro, Python end-to-end.
10 weeks Basic, 10 weeks Intermediate, 10 weeks Advanced, plus 16 practice projects. Pick the track that fits your level and progress step by step. Total beginners should start at Week 1 of the Basic track; learners with experience in another language can jump straight to Intermediate. The track wraps up with 16 console projects designed to cement real, hands-on experience.
10 weeks
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.
Explore Python's four core data types, learn how to assign variables, use type() to inspect values, and perform basic type conversions.
Master Python's arithmetic, comparison, and logical operators, format output with f-strings, and build interactive programs with input().
Control program flow with if/elif/else blocks. Learn nested conditions, the ternary expression, and how to structure complex decision logic.
Automate repetitive tasks with for and while loops. Master range(), break, continue, and the rarely-known loop else clause.
Work with Python's most-used sequence types. Master list CRUD operations, slicing syntax, common list methods, and tuple unpacking.
Use dictionaries for key-value storage and sets for unique collections. Learn dict comprehensions, set algebra, and when to choose each structure.
Strings are immutable sequences with a rich method library. Learn to slice, search, replace, split, join, and format text for real-world use.
Functions let you name and reuse blocks of logic. Learn def, return, default arguments, keyword arguments, and variable scope (LEGB rule).
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.
10 weeks
Go beyond basic def: write anonymous functions with lambda, understand closures, handle variable-length arguments, and use functools tools like partial and lru_cache.
Write concise, readable data transformations with list, dict, and set comprehensions. Then step into generators and yield for memory-efficient iteration.
Organize code into reusable modules and packages. Understand how Python's import system works, create your own packages, and manage dependencies with pip.
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.
Write robust programs by handling errors gracefully. Learn the full try/except/else/finally pattern, re-raise exceptions, and define custom exception classes.
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.
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.
Extend classes with inheritance, call parent methods with super(), implement polymorphism, and customize object behavior with dunder (magic) methods.
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.
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.
10 weeks
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.
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.
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.
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.
Write asynchronous programs with asyncio. Understand coroutines, tasks, the event loop, and use aiohttp for non-blocking HTTP requests.
Write professional tests with pytest. Use fixtures for setup/teardown, parametrize for data-driven tests, mock external dependencies, and measure code coverage.
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.
Accelerate numerical computation with NumPy arrays and explore tabular data with Pandas. Combine them with Matplotlib to visualize results.
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).
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.
16 projects · Console projects by difficulty (★ ~ ★★★★)
Build a best-of-3 Rock Paper Scissors game against the computer with input validation and a running win/loss record.
Guess the secret number with too-high/too-low hints. Add difficulty levels (attempts limit) and a high-score leaderboard.
Build a command-line calculator that parses infix expressions (+, -, *, /, **, %) and handles division-by-zero and invalid input gracefully.
Convert between common units (length, weight, temperature) using a menu-driven CLI. Extend the conversion table with new units without changing the core logic.
Build a full-featured to-do list with priorities, due dates, categories, and JSON file persistence.
Create an interactive vocabulary quiz that shuffles questions, tracks performance per word, and prioritizes words you get wrong (basic spaced repetition).
Build an object-oriented contacts manager with name, phone, email, and tags. Support search, sort, and CSV/JSON export.
Track BMI over time with a history log, trend analysis, and an ASCII chart of weight progression.
Track income and expenses by category. Generate monthly summaries, spending breakdowns, and savings rate reports — all stored in CSV.
Manage a book library with borrow/return tracking, member accounts, overdue detection, and full-text search.
Write encrypted daily journal entries, search past entries by keyword or date, and export to Markdown.
Build a text adventure game with rooms, items, NPCs, and a simple command parser. Load the world map from a JSON file.
Build a professional command-line tool with argparse subcommands, a config file, logging, and a pip-installable entry point.
Analyse a CSV file from the command line: filter rows, compute statistics, and generate HTML and Markdown reports using Pandas and Jinja2 templates.
Build a text generator chatbot using Markov chains. Train it on any text corpus and generate statistically plausible responses.
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.