Python 3.15: What's New
Python 3.15's key changes — lazy imports, a new profiling package, JIT speedups, and the other PEPs worth knowing about ahead of the October release
In-depth articles, comparisons, and roundups — beyond the resource directory.
Python 3.15's key changes — lazy imports, a new profiling package, JIT speedups, and the other PEPs worth knowing about ahead of the October release
What the Model Context Protocol actually standardizes, how it differs from LangChain or DSPy, and a basic FastMCP server example
How Black, Ruff, autopep8, and yapf differ as Python code formatters, and which one to pick for a new or existing project
A short, practical list of Python packages you'll reach for constantly — what each one does and why it's the default choice
What DSPy is, how it differs from hand-writing prompts, and a basic example of defining a module and letting DSPy optimize it
How FastAPI and HTMX pair together to build dynamic, interactive web apps using server-rendered HTML instead of a JavaScript frontend framework
A head-to-head comparison of Poetry, uv, and Hatch — speed, lockfile behavior, and PEP 621 compliance, for picking a new project's tooling
How pytest and Python's built-in unittest module differ, and why most teams choose pytest despite unittest requiring no installation
How Python decorators actually work under the hood, with the built-in decorators you already use and a guide to writing your own
The core set of resources worth starting with when you're new to Python — courses, books, and tools, without the overwhelming full directory
The standard library modules you'll actually reach for regularly — no pip install required, already in every Python installation
What a Python virtual environment actually is, why every project needs one, and how venv, uv, and conda differ in creating them
Why Python packaging moved from requirements.txt to pyproject.toml, what each actually does, and whether you still need a requirements.txt file
What Streamlit actually does, a basic example, and when to reach for it instead of Flask or FastAPI
How Black formats Python code, why it's deliberately unconfigurable, and how it differs from autopep8 and yapf
What Uvicorn actually does, how it relates to FastAPI and Starlette, and when you'd reach for it instead of Gunicorn
Which Python books are actually worth reading as a beginner, and the order to read them in
A practical comparison of the top Python IDEs and editors — what each one is best at, and how to choose
A curated shortlist of the best free and paid resources for learning Python in 2026, organised by skill level and learning style
pytest, unittest, and the surrounding testing ecosystem — what each tool does and when you actually need it
Which Python YouTube channels are actually worth subscribing to, organised by what you're trying to learn
A practical comparison of Django, FastAPI, and Flask — what each is actually good at, and how to pick the right one for your project
A practical comparison of FastAPI, Robyn, and Flask — performance, ecosystem maturity, and which one actually fits your project
Concrete, non-obvious rules for writing clean, readable Python — naming, structure, and the habits that actually matter
A plain-English breakdown of the Python packages with the highest download counts, and why they're downloaded so much
A plain-English explanation of Python's async/await, when it actually helps, and the mistakes that make it worse than sync code
A step-by-step path from zero to job-ready Python — what to learn in what order, and which resources to use at each stage
How pip, Poetry, uv, and Hatch actually differ, and which one to use for a new Python project in 2026
How to use Python's built-in resource module to read and limit CPU time, memory, and file descriptors on Unix systems
How to actually use Python type hints beyond the basics — generics, Optional, Protocol, and when they're worth the effort
A practical method for finding active Python open source projects that are actually welcoming to first-time contributors