Post

Python Programming Roadmap

A structured roadmap for going from Python beginner to expert, organised by skill level.

Basic

  1. Variables and data types
  2. Basic data structures: lists, tuples, sets, dictionaries
  3. Boolean conditions and comparisons
  4. Chained and compound conditions (and, or, not)
  5. Operators: +, *, %, /, //, **
  6. Control flow: if / elif / else
  7. Loops: for and while over lists, dicts, ranges
  8. Functions: definition, arguments, return values
  9. Mutable vs immutable types
  10. Common methods: list operations, string methods (.upper(), .lower(), .split(), .join())
  11. String formatting: f-strings, .format()
  12. I/O operations: reading and writing files

Intermediate

  1. Object-oriented programming: classes, inheritance, encapsulation
  2. Exception handling: try / except / finally, custom exceptions
  3. Data structures: stacks, queues, linked lists
  4. Comprehensions: list, dict, set, generator expressions
  5. Lambda functions
  6. collections module: defaultdict, Counter, deque, namedtuple
  7. *args and **kwargs
  8. Dunder methods: __init__, __repr__, __len__, __eq__, etc.
  9. map(), filter(), zip(), enumerate()
  10. itertools module
  11. Type hints and annotations
  12. pip and dependency management
  13. Virtual environments: venv, conda
  14. Modules and packages: imports, __init__.py, relative imports
  15. Asyncio: async/await, event loops, asynchronous programming

Advanced

  1. Decorators: function and class decorators, functools.wraps
  2. Generators and yield: lazy evaluation, itertools pipelines
  3. Context managers: with statement, __enter__ / __exit__, contextlib
  4. Metaclasses: type, custom metaclasses, __new__
  5. Concurrency and parallelism: threading, multiprocessing, concurrent.futures
  6. Logging: logging module, handlers, formatters, log levels
  7. Profiling and optimisation: cProfile, timeit, memory profiling
  8. Testing: unittest, pytest, mocking, fixtures, coverage

Expert

  1. Building and publishing packages: pyproject.toml, setuptools, PyPI
  2. CPython internals: interpreter, bytecode, the GIL, reference counting, garbage collection
  3. Extending Python with C: ctypes, cffi, Cython
  4. Descriptor protocol: __get__, __set__, __delete__
  5. Import system internals: importlib, custom finders and loaders
  6. Specialised ecosystems: PyTorch, TensorFlow, NumPy internals, Django/FastAPI
This post is licensed under CC BY 4.0 by the author.