Skip to main content

Learning path

Python learning path: everything to study, topic by topic

Comprehensive Python assessment covering fundamentals through expert-level topics including async programming, metaclasses, and CPython internals.

Short answer

To learn Python, work through 6 modules and 49 topics in the order they build on each other. It starts with Fundamentals, then moves on to Data Structures and OOP & Design. Use the map as a checklist, or measure your level and study only what is missing.

6
modules
49
topics
45
min to assess

What you will study

Topics are grouped by module. Open one to see its objectives and key concepts.

1 · Fundamentals9 topics
  • Python Syntax

    Basic Python syntax rules, indentation, comments, and program structure

    Objectives

    • Write syntactically valid Python
    • Understand indentation rules

    Key concepts

    • indentation
    • comments
    • line continuation
    • semicolons
    • pass statement
  • Variables & Data Types

    Variable assignment, naming, primitive types (int, float, str, bool, None), type conversion

    Objectives

    • Explain dynamic typing
    • Convert between types correctly

    Key concepts

    • dynamic typing
    • type()
    • isinstance()
    • type casting
    • None
    • mutability
  • Control Flow

    if/elif/else, for loops, while loops, break, continue, match/case

    Objectives

    • Write correct conditional logic
    • Use loops effectively with itertools

    Key concepts

    • if/elif/else
    • for loops
    • while loops
    • break/continue
    • range()
    • enumerate()
    • zip()
    • match/case
  • Functions

    Function definition, arguments, return values, scope, *args/**kwargs, lambda

    Objectives

    • Define functions with various argument types
    • Explain Python scoping rules

    Key concepts

    • def
    • return
    • default arguments
    • *args/**kwargs
    • lambda
    • scope (LEGB)
    • docstrings
    • first-class functions
  • String Operations

    String methods, formatting (f-strings, .format), slicing, encoding

    Objectives

    • Manipulate strings with built-in methods
    • Use f-strings effectively

    Key concepts

    • f-strings
    • .format()
    • slicing
    • split/join
    • strip()
    • replace()
    • encoding/decoding
  • File Handling & I/O

    open(), context managers for files, JSON/CSV/YAML reading and writing, pathlib, binary files

    Objectives

    • Read and write files safely
    • Parse structured data formats

    Key concepts

    • open()
    • context managers for files
    • JSON reading/writing
    • CSV reading/writing
    • YAML reading/writing
    • pathlib
    • binary files
  • Data Structures & Algorithms

    Arrays, linked lists, hash tables, stacks, queues, trees, sorting, searching, and complexity

    Objectives

    • Analyze time and space complexity of algorithms
    • Choose appropriate data structures for different problems

    Key concepts

    • arrays and lists
    • linked lists
    • hash tables
    • stacks and queues
    • binary trees
    • sorting algorithms
    • searching algorithms
    • time complexity
  • Type Casting & Conversion

    Explicit and implicit type conversion, casting functions, coercion rules, and common pitfalls

    Objectives

    • Convert between Python types safely
    • Predict the result of implicit and explicit type conversions

    Key concepts

    • int()
    • float()
    • str()
    • bool()
    • implicit vs explicit casting
    • type coercion rules
    • casting errors
  • Lambda Expressions

    Lambda syntax, anonymous functions, map/filter/reduce, sorting with lambda, functional style

    Objectives

    • Write concise lambda expressions for inline operations
    • Decide when lambda is appropriate vs a named function

    Key concepts

    • lambda syntax
    • anonymous functions
    • map/filter/reduce
    • lambda vs def
    • sorting with lambda
    • lambda limitations
    • functional style
2 · Data Structures5 topics
  • Lists & Tuples

    List/tuple operations, methods, slicing, unpacking, named tuples

    Objectives

    • Choose between lists and tuples
    • Use slicing and unpacking

    Key concepts

    • list methods
    • tuple immutability
    • slicing
    • unpacking
    • sorted()
    • namedtuple
    • list vs tuple performance
  • Dictionaries & Sets

    Dict operations, set operations, defaultdict, OrderedDict, hashability

    Objectives

    • Use dictionaries for data lookup
    • Understand hashability requirements

    Key concepts

    • dict methods
    • set operations
    • hashability
    • dict comprehensions
    • .get()
    • .setdefault()
    • dict unpacking (**)
  • Collections Module

    defaultdict, Counter, deque, ChainMap, and specialized containers

    Objectives

    • Choose the right collection type for each use case

    Key concepts

    • defaultdict
    • Counter
    • deque
    • ChainMap
    • OrderedDict
    • namedtuple
  • Comprehensions

    List, dict, set comprehensions, nested comprehensions, generator expressions

    Objectives

    • Rewrite loops as comprehensions
    • Know when comprehensions hurt readability

    Key concepts

    • list comprehension
    • dict comprehension
    • set comprehension
    • nested comprehension
    • generator expression
    • conditional comprehension
  • Regular Expressions

    re module, match/search/findall, groups, lookahead/lookbehind, compile, substitution

    Objectives

    • Write and debug regular expressions
    • Choose between regex and string methods

    Key concepts

    • re module
    • match/search/findall
    • groups
    • lookahead/lookbehind
    • re.compile
    • substitution
3 · OOP & Design5 topics
  • Classes & Inheritance

    Class definition, __init__, inheritance, super(), MRO, class vs instance attributes

    Objectives

    • Design class hierarchies
    • Understand MRO and super()

    Key concepts

    • __init__
    • self
    • inheritance
    • super()
    • MRO
    • class attributes vs instance attributes
    • multiple inheritance
  • Magic Methods

    Dunder methods: __repr__, __str__, __eq__, __hash__, __len__, __getitem__, protocols

    Objectives

    • Implement Python protocols via dunder methods

    Key concepts

    • __repr__
    • __str__
    • __eq__/__hash__
    • __len__
    • __getitem__
    • __contains__
    • __iter__
    • operator overloading
  • Design Patterns

    Common patterns in Python: Singleton, Factory, Strategy, Observer, Iterator

    Objectives

    • Apply common design patterns in Python idiomatically

    Key concepts

    • Singleton
    • Factory
    • Strategy
    • Observer
    • Iterator
    • Decorator pattern vs @decorator
  • SOLID Principles

    Single responsibility, Open/Closed, Liskov substitution, Interface segregation, DI

    Objectives

    • Identify SOLID violations and refactor accordingly

    Key concepts

    • Single Responsibility
    • Open/Closed
    • Liskov Substitution
    • Interface Segregation
    • Dependency Inversion
    • ABC
  • Dataclasses

    @dataclass decorator, field(), frozen dataclasses, __post_init__, inheritance, slots=True

    Objectives

    • Create dataclasses for structured data with minimal boilerplate
    • Use frozen and slots options for immutability and performance

    Key concepts

    • @dataclass decorator
    • field() function
    • frozen dataclasses
    • __post_init__
    • dataclass inheritance
    • slots=True
    • comparison and ordering
4 · Advanced Python7 topics
  • Closures & Scoping

    Closures, free variables, nonlocal keyword, functools.partial

    Objectives

    • Explain what a closure captures
    • Avoid late-binding pitfalls

    Key concepts

    • closure
    • free variables
    • nonlocal
    • late binding
    • functools.partial
    • cell objects
  • Decorators

    Function decorators, class decorators, @wraps, parameterized decorators, stacking

    Objectives

    • Write decorators with and without arguments
    • Understand wraps()

    Key concepts

    • @decorator
    • functools.wraps
    • parameterized decorators
    • class decorators
    • decorator stacking order
  • Generators & Iterators

    yield, generator functions, generator expressions, itertools, lazy evaluation

    Objectives

    • Use generators for memory-efficient processing
    • Chain generators

    Key concepts

    • yield
    • yield from
    • generator expression
    • itertools
    • lazy evaluation
    • StopIteration
    • __iter__/__next__
  • Async / Await

    asyncio, coroutines, event loop, async generators, aiohttp patterns

    Objectives

    • Write concurrent I/O with asyncio
    • Avoid common async pitfalls

    Key concepts

    • async def
    • await
    • asyncio.gather
    • event loop
    • async context manager
    • async generator
    • asyncio.Queue
  • Context Managers

    with statement, __enter__/__exit__, contextlib, custom context managers

    Objectives

    • Implement context managers for resource cleanup

    Key concepts

    • __enter__
    • __exit__
    • contextlib.contextmanager
    • contextlib.suppress
    • nested context managers
  • Metaclasses

    type(), __new__, __init_subclass__, metaclass programming, class creation flow

    Objectives

    • Explain when metaclasses are appropriate
    • Trace class creation flow

    Key concepts

    • type()
    • __new__
    • __init_subclass__
    • metaclass=
    • class creation order
    • __prepare__
  • GIL (Global Interpreter Lock)

    GIL purpose, impact on threading, CPU-bound vs I/O-bound, releasing the GIL, alternatives

    Objectives

    • Explain why the GIL exists and its impact on concurrency
    • Choose between threading and multiprocessing based on workload type

    Key concepts

    • GIL purpose
    • GIL impact on threading
    • CPU-bound vs I/O-bound
    • releasing the GIL
    • multiprocessing as alternative
    • C extensions and GIL
    • GIL-free Python proposals
5 · Ecosystem & Tooling13 topics
  • Packaging & Dependencies

    pip, venv, pyproject.toml, setuptools, poetry, dependency management

    Objectives

    • Set up a Python project with proper packaging

    Key concepts

    • venv
    • pip
    • pyproject.toml
    • setuptools
    • poetry
    • wheel
    • requirements.txt
    • dependency resolution
  • Testing

    pytest, unittest, mocking, fixtures, parametrize, coverage

    Objectives

    • Write effective tests with pytest
    • Use mocking correctly

    Key concepts

    • pytest
    • fixtures
    • parametrize
    • mock.patch
    • assert
    • conftest.py
    • coverage
  • Type Hints

    Type annotations, typing module, Generic, Protocol, TypeVar, mypy

    Objectives

    • Add type hints to codebases
    • Understand structural subtyping

    Key concepts

    • type annotations
    • typing.Optional
    • typing.Union
    • Generic
    • Protocol
    • TypeVar
    • mypy
    • runtime vs static checks
  • Error Handling

    Exception hierarchy, custom exceptions, try/except/finally patterns, EAFP vs LBYL

    Objectives

    • Design exception hierarchies
    • Choose EAFP vs LBYL

    Key concepts

    • try/except/else/finally
    • custom exceptions
    • exception chaining
    • BaseException vs Exception
    • EAFP vs LBYL
    • exception groups
  • Django Basics

    MTV pattern, ORM, views, URLs, middleware, admin, and project configuration

    Objectives

    • Build web applications with Django
    • Understand the MTV architecture

    Key concepts

    • MTV pattern
    • ORM
    • views
    • URL routing
    • middleware
    • admin
    • settings
  • Flask Basics

    Routes, decorators, request context, Blueprints, Jinja2 templates, and Flask extensions

    Objectives

    • Build lightweight web applications with Flask
    • Understand request context

    Key concepts

    • routes
    • decorators
    • request context
    • Blueprints
    • Jinja2
    • Flask extensions
  • FastAPI

    Path operations, Pydantic models, dependency injection, async endpoints, OpenAPI docs

    Objectives

    • Build modern async APIs with FastAPI
    • Leverage automatic docs and validation

    Key concepts

    • path operations
    • Pydantic models
    • dependency injection
    • async endpoints
    • OpenAPI docs
  • mypy & Pydantic

    mypy strict mode, pyright, Pydantic BaseModel, validators, field types, serialization

    Objectives

    • Enforce type safety with mypy
    • Validate data with Pydantic models

    Key concepts

    • mypy strict mode
    • pyright
    • Pydantic BaseModel
    • validators
    • field types
    • serialization
  • Code Quality Tools

    Ruff, Black, isort, flake8, pre-commit hooks, and linting configuration

    Objectives

    • Set up automated code quality tooling
    • Configure linting for a team

    Key concepts

    • Ruff
    • Black
    • isort
    • flake8
    • pre-commit hooks
    • linting configuration
  • Virtual Environments & uv

    venv, virtualenv, uv, pyproject.toml, Poetry, pip-tools, and dependency resolution

    Objectives

    • Manage Python environments effectively
    • Resolve dependency conflicts

    Key concepts

    • venv
    • virtualenv
    • uv
    • pyproject.toml
    • Poetry
    • pip-tools
    • dependency resolution
  • Standard Library Modules

    os, pathlib, sys, datetime, itertools, functools, math, statistics, json, csv modules

    Objectives

    • Use standard library modules to avoid reinventing the wheel
    • Choose the right module for common tasks

    Key concepts

    • os and pathlib
    • sys module
    • datetime and time
    • itertools
    • functools
    • math and statistics
    • json and csv
  • Package Managers

    pip, requirements.txt, Poetry, Conda, uv, pdm, dependency resolution, and lock files

    Objectives

    • Compare and select the right package manager for a project
    • Manage dependencies reproducibly with lock files

    Key concepts

    • pip basics
    • requirements.txt
    • Poetry
    • Conda
    • uv package manager
    • pdm
    • dependency resolution
    • lock files
  • Debugging & Profiling

    pdb debugger, breakpoint(), logging module, cProfile, line_profiler, traceback analysis

    Objectives

    • Debug Python code systematically using built-in tools
    • Profile applications to identify performance bottlenecks

    Key concepts

    • pdb debugger
    • breakpoint()
    • logging module
    • cProfile
    • line_profiler
    • traceback analysis
    • IDE debugging
6 · Expert Topics10 topics
  • CPython Internals

    GIL, reference counting, garbage collection, bytecode, C extensions

    Objectives

    • Explain GIL implications
    • Read bytecode output

    Key concepts

    • GIL
    • reference counting
    • gc module
    • bytecode (dis)
    • C extensions
    • PyObject
    • memory management
  • Concurrency Patterns

    threading, multiprocessing, concurrent.futures, async coordination patterns

    Objectives

    • Choose between threading, multiprocessing, and asyncio

    Key concepts

    • threading.Thread
    • multiprocessing.Process
    • concurrent.futures
    • ThreadPoolExecutor
    • ProcessPoolExecutor
    • locks/semaphores
    • asyncio.gather vs TaskGroup
  • Performance Optimization

    Profiling, caching, algorithmic complexity, memory optimization, Cython hints

    Objectives

    • Profile and optimize Python code
    • Reduce memory footprint

    Key concepts

    • cProfile
    • line_profiler
    • functools.lru_cache
    • slots
    • intern()
    • memory_profiler
    • algorithmic complexity
  • Multiprocessing

    Process class, Pool and map, shared memory, Queue and Pipe, fork vs spawn, ProcessPoolExecutor

    Objectives

    • Implement parallel processing with multiprocessing
    • Choose between fork and spawn start methods

    Key concepts

    • Process class
    • Pool and map
    • shared memory
    • Queue and Pipe
    • process synchronization
    • fork vs spawn
    • ProcessPoolExecutor
  • Python C Extensions & ctypes

    Writing C extensions with ctypes, cffi, and the Python/C API for performance-critical code

    Objectives

    • Build a C extension using ctypes
    • Explain Python/C API memory semantics

    Key concepts

    • ctypes
    • cffi
    • Python/C API
    • PyArg_ParseTuple
    • Py_INCREF/DECREF
    • CFFI ABI mode
    • Cython
  • Custom asyncio Protocols & Transports

    Implementing custom asyncio transports and protocols for low-level network communication

    Objectives

    • Implement a custom asyncio Protocol and Transport
    • Explain the event loop callback and scheduling model

    Key concepts

    • asyncio.Protocol
    • asyncio.Transport
    • create_connection
    • BufferedProtocol
    • StreamReader
    • event loop internals
  • Security & Safe Deserialization

    Identifying and mitigating Python deserialization vulnerabilities in pickle, yaml, and eval

    Objectives

    • Identify unsafe deserialization patterns and their exploits
    • Apply safe alternatives across pickle, yaml, and eval contexts

    Key concepts

    • pickle security
    • yaml.safe_load
    • eval injection
    • __reduce__
    • restricted execution
    • input validation
  • Memory Profiling & Leak Detection

    Using memory_profiler, tracemalloc, and objgraph to identify and fix memory leaks in Python apps

    Objectives

    • Use tracemalloc and objgraph to locate memory leaks
    • Apply __slots__ and weak references to reduce memory pressure

    Key concepts

    • tracemalloc
    • memory_profiler
    • objgraph
    • weak references
    • reference cycles
    • __slots__
    • gc.get_referrers
  • Python Observability & OpenTelemetry

    Instrumenting Python applications with OpenTelemetry for distributed tracing, metrics, and logs

    Objectives

    • Instrument a Python service with OpenTelemetry spans and metrics
    • Configure context propagation across async boundaries

    Key concepts

    • OpenTelemetry SDK
    • spans and traces
    • context propagation
    • OTLP exporter
    • auto-instrumentation
    • custom metrics
    • structured logging
  • Custom AST Manipulation

    Using Python's ast module to parse, analyze, and transform code for static analysis and code generation

    Objectives

    • Write a NodeVisitor to collect metrics from a Python AST
    • Implement a NodeTransformer to rewrite function calls

    Key concepts

    • ast.parse
    • ast.NodeVisitor
    • ast.NodeTransformer
    • ast.unparse
    • code generation
    • linters
    • macro-like transforms

Levels: Junior, Mid, Senior, and Expert

Explain it in your own words

Graded by AI · no account · 1 question

No options to guess from: you write, the AI grades against the topic's rubric and tells you what level your answer reads at.

0 / 600

Already studying Python?

The assessment measures topic by topic, and your plan skips what you already know.

Open to read. An account is only needed to be measured.

Frequently asked questions

Where should I start studying Python?

Start with Fundamentals: Python Syntax, Variables & Data Types, and Control Flow. The map orders topics by what they depend on, so each one prepares the next.

How long does a full Python assessment take?

A full assessment of this path takes about 45 minutes. Study time depends on where you start; a diagnostic shows which topics you can skip.

Do I need an account to use this page?

No. The map, objectives and key concepts are open. You only need an account to be measured, get your gap by topic and receive a plan.