Python
Readable, powerful and beginner-friendly — the language of automation, data and AI.
A complete, job-ready Python course built on Python 3.12+. Start from zero with installation, the REPL, variables, strings, conditionals, loops and Python’s core data structures; write Pythonic code with comprehensions, modules, virtual environments, files and exceptions; master object-oriented Python, dataclasses, generators, decorators, type hints and the standard library; then go professional with regular expressions, HTTP APIs, pytest, logging, concurrency, sqlite3 and MySQL, pandas and NumPy, Flask and FastAPI, and modern packaging.
38 lessons ~9 h 21 min Beginner → Advanced
What you’ll learn
- Install Python 3.12+, work in the REPL, and run, debug and structure scripts from the terminal
- Use numbers, strings, f-strings, lists, tuples, sets and dictionaries confidently and idiomatically
- Control program flow with conditionals, match statements and loops, and write reusable functions with a clear grasp of scope
- Write Pythonic code with comprehensions, *args/**kwargs, lambdas, generators, decorators and context managers
- Organise projects into modules and packages, manage dependencies with pip and virtual environments, and package code with pyproject.toml
- Handle errors robustly with exceptions and custom exception classes, and read and write files, CSV and JSON
- Design object-oriented programs with classes, inheritance, magic methods, properties and dataclasses, checked with type hints and mypy
- Call web APIs with requests, process text with regular expressions, and test code with pytest
- Add logging, debug with pdb, and speed up I/O- and CPU-bound work with threads, processes and asyncio
- Store data in sqlite3 and MySQL, analyse it with pandas and NumPy, and build web APIs with Flask and FastAPI
Syllabus
7 modules · 38 lessons- 1Getting started: install, REPL & scriptsInstall Python 3.12+, explore the interactive REPL, run your first script and read tracebacks. 15 min
- 2Variables & data typesDynamic typing, naming rules, core built-in types, None, type conversion and how names reference objects. 13 min
- 3Numbers & operatorsint and float, arithmetic and division gotchas, precedence, comparisons, math and Decimal for money. 12 min
- 4Strings & f-stringsIndexing and slicing, everyday string methods, split/join, Unicode and powerful f-string formatting. 13 min
- 5Input & outputprint() options, reading and validating input(), stdout vs stderr, sys.argv, argparse and exit codes. 12 min
- 6Conditionals: if, elif, else & matchBranching, truthiness, combining conditions, guard clauses, the ternary expression and pattern matching. 14 min
- 7Loops: for, while & friendsfor and while loops, range, enumerate, zip, break/continue, loop else and loop-replacing built-ins. 13 min
- 8ListsCreate, slice, modify and sort lists, key functions, unpacking, shallow vs deep copies and common traps. 14 min
- 9Tuples & setsImmutable tuples, unpacking and NamedTuple; sets for uniqueness, fast membership and set algebra. 13 min
- 10DictionariesKey-value lookups, safe access, merging, looping, dict comprehensions, nested data, Counter and defaultdict. 12 min
- 11Functionsdef, parameters and arguments, defaults, keyword-only parameters, return values, docstrings and recursion. 13 min
- 12Scope, LEGB & closuresLocal and global scope, the LEGB rule, UnboundLocalError, global/nonlocal and closures. 14 min
- 13*args, **kwargs & lambdasFlexible parameters, argument unpacking, forwarding calls, lambdas, key functions, map and filter. 13 min
- 14Comprehensions & generator expressionsList, dict and set comprehensions, filtering, nesting, generator expressions and when not to use them. 15 min
- 15Modules, packages & importsSplitting code into modules, import styles, __name__ == "__main__", sys.path, packages and relative imports. 14 min
- 16pip & virtual environmentsCreate venvs, install packages with pip, requirements.txt, the externally-managed error, pipx and uv. 15 min
- 17Files & context managersRead and write text and binary files, file modes, pathlib basics, the with statement and custom context managers. 15 min
- 18Exceptions & custom exceptionstry/except/else/finally, raising, the exception hierarchy, custom exception classes, chaining and EAFP. 16 min
- 19Classes & objectsDefine classes, __init__ and self, instance vs class attributes, __repr__/__str__ and encapsulation. 13 min
- 20Inheritance & polymorphismSubclasses, overriding, super(), duck typing, abstract base classes, mixins, the MRO and composition. 14 min
- 21Magic (dunder) methodsMake objects work with ==, <, +, len(), indexing, iteration, calls and with statements. 14 min
- 22Properties, class & static methods@property getters and setters, cached_property, alternative constructors with @classmethod and @staticmethod. 15 min
- 23DataclassesGenerate __init__, __repr__ and __eq__ automatically; defaults, field(), __post_init__, frozen, slots and asdict. 14 min
- 24Iterators & generatorsThe iterator protocol, generator functions and yield, lazy pipelines, infinite sequences and itertools. 15 min
- 25DecoratorsWrap functions with @ syntax, functools.wraps, decorators with arguments, caching and registration. 14 min
- 26Standard library tourpathlib, os, shutil, subprocess, datetime and zoneinfo, json, collections, itertools, re, random and more. 14 min
- 27Working with CSV & JSONRead and write CSV with DictReader/DictWriter, JSON load/dump, invalid input, custom types and JSON Lines. 16 min
- 28Type hints & static typingAnnotations, unions and Optional, collections.abc types, generics, Protocols and checking code with mypy. 16 min
- 29Regular expressionsThe re module: patterns, quantifiers, groups and named groups, greedy vs lazy, substitution and validation. 16 min
- 30HTTP requests & web APIsCall REST APIs with requests: GET/POST, params, JSON, auth, timeouts, error handling, sessions, retries and pagination. 15 min
- 31Testing with pytestWrite and run tests, readable assertion failures, parametrize, fixtures, mocking and organising a test suite. 16 min
- 32Logging & debuggingThe logging module, levels, per-module loggers, handlers and files; debugging with breakpoint() and pdb. 18 min
- 33Concurrency: threads, processes & asyncioI/O-bound vs CPU-bound work, thread and process pools, the GIL, locks, and async/await with asyncio. 20 min
- 34Databases: sqlite3 & MySQLSQL from Python with sqlite3, parameters vs SQL injection, transactions, connecting to MySQL and a peek at ORMs. 19 min
- 35Data analysis with NumPy & pandasVectorised NumPy arrays, pandas DataFrames, filtering, groupby, pivot tables, cleaning data and merging. 15 min
- 36Web apps & APIs with Flask and FastAPIRouting, JSON APIs, templates and testing in Flask; type-driven validation and auto docs in FastAPI. 17 min
- 37Packaging & project structureThe src layout, pyproject.toml, editable installs, console scripts, building wheels and essential tooling. 16 min
- 38Pythonic style, performance & next stepsPEP 8 and idioms, measuring and improving performance, maintainable code and career paths after this course. 18 min