Python Programming
Master Python from scratch with our comprehensive, interactive curriculum — 52 lessons from Beginner to Advanced.
Sign in to track your progress through this course
👋 New to Python? No experience needed.
Start with Lesson 1 and build real skills step by step — at your own pace.
Beginner Track
✦ Start Here ~2–3 hoursWrite your first Python programs and understand the core building blocks of the language.
Introduction to Python
Install Python, run your first script, and understand how Python works
Variables and Data Types
Learn how to store text, numbers, and booleans in your programs
Operators and Expressions
Arithmetic, comparison, and logical operators explained with examples
Control Flow - If/Else
Make decisions in code with if, elif, and else statements
Loops - For and While
Repeat actions automatically with for loops and while loops
Intermediate Track
~3–4 hoursWork with real data, build functions, and handle errors like a professional Python developer.
Functions
Write reusable blocks of code and pass data in and out with parameters
Lists and Collections
Store and manipulate ordered sequences of data with Python lists
Dictionaries
Work with key-value pairs to structure and look up real-world data
File Handling
Read from and write to files — txt, csv, and more
Exception Handling
Handle errors gracefully so your programs don't crash unexpectedly
Modules and Packages
Organise code into reusable files and import the Python standard library
Expert Track
~2–3 hoursApply object-oriented design, write elegant code with decorators, and think like a senior developer.
Advanced Track
~10–15 hoursDeep-dive topics for engineers who want to master Python internals, performance, architecture, and professional tooling.
Advanced Functions & Parameters Masterclass
args, kwargs, keyword-only args, and function signatures in depth
Higher-Order Functions & Function Factories
Pass and return functions, build factories and pipelines
Closures & Lexical Scope in Real Projects
Understand variable capture and build stateful function patterns
Context Managers & the with Statement in Depth
Write custom context managers for resource and lifecycle control
Generators & Iterators Mastery
Produce values lazily for memory-efficient data pipelines
Advanced Async & Await Patterns
Write clean asynchronous code with async/await and coroutines
AsyncIO: Event Loop, Tasks & Futures
Deep dive into the AsyncIO event loop, tasks, and concurrent I/O
Concurrency in Python: Threads vs Processes
Understand the GIL and choose between threading and multiprocessing
Parallelism with concurrent.futures
Run CPU-bound tasks in parallel with ProcessPoolExecutor
Profiling & Optimising Python Performance
Find bottlenecks with cProfile, timeit, and memory profilers
Memory Management & Garbage Collection Internals
How Python allocates, tracks, and frees memory under the hood
Type Hints & Static Typing with mypy
Add type annotations and catch bugs before runtime with mypy
Data Classes & Advanced Class Patterns
Reduce boilerplate with @dataclass and slots
Magic Methods & the Python Data Model
Implement __repr__, __len__, __eq__, and more to integrate with Python
Operator Overloading & Custom Behaviours
Make your objects work with +, -, *, and comparison operators
Mixins, Multiple Inheritance & OOP Patterns
Compose behaviour with mixins and navigate multiple inheritance safely
Design Patterns in Python (Singleton, Factory, Strategy)
Apply classic GoF patterns idiomatically in Python
Module & Package Architecture for Large Codebases
Structure growing projects with namespaces, imports, and __init__.py
Logging, Debugging & Error Handling at Scale
Add structured logging, use pdb, and handle errors in production
Testing with pytest: Fixtures, Parametrisation & Mocks
Write reliable tests with pytest fixtures, parametrize, and unittest.mock
Building Command-Line Tools with argparse & Typer
Build polished CLI tools with argument parsing and subcommands
Virtual Environments & Dependency Management Best Practices
Isolate projects with venv and manage packages with pip and Poetry
Packaging & Publishing Python Libraries to PyPI
Package your code and publish it so others can pip install it
Working with Files, Streams & Large Datasets
Handle large files with streaming, chunking, and pathlib
Advanced Collections, itertools & functools
Use Counter, defaultdict, chain, groupby, partial and more
Functional Programming Techniques in Python
Write pure, composable code with map, filter, reduce, and comprehensions
Metaprogramming & Introspection with inspect
Dynamically inspect, modify, and create classes and functions at runtime
Building and Reusing Custom Decorator Libraries
Create your own decorator toolkit with functools.wraps and class decorators
Using SQLite & ORMs (SQLAlchemy) in Python
Query databases with raw SQLite and the SQLAlchemy ORM
REST API Clients & External Service Integrations
Call REST APIs with requests, handle auth, and parse JSON responses
Automation & Scripting for DevOps and System Tasks
Automate file operations, shell commands, and scheduled tasks
Integrating Python with Other Languages (C, Rust & more)
Call C extensions with ctypes and Cython, and interface with Rust
Architecture Patterns for Python Apps (MVC, Clean Architecture)
Structure large Python applications with proven architectural patterns
Final Project Ideas
Guided project ideas to put everything you've learned into practice