Python Developer 2
A second course in Python Development
Welcome to Python Developer 2
These notes cover four modules from the course Python Developer 2, taught at Syntra. The intented audience has taken a first introductory course in programming with Python and is ready for a deep dive into the more advanced concepts.
Course Overview
🐍 Advanced Python
13 Lessons - Deep dive into Python’s syntax, features, and capabilities
From control structures and object-oriented programming to the scientific stack and type systems:
- Python fundamentals and data structures
- Object-oriented programming (OOP) in depth
- Functions and the standard library
- Scientific computing with NumPy, Pandas, and Matplotlib
- Modules, packages, and the import system
- Type systems and linters
🏗️ Architecture
7 Lessons - Advanced architectural patterns and design principles
Focus on making multiple classes work together harmoniously using design patterns and Python’s built-in features:
- Iterators, generators, and decorators
- Python fundamentals and internals
- Package distribution and management
- Design patterns (Gang of Four and Python-specific)
- Logging and context managers
- Advanced OOP concepts
🌐 REST API
5 Lessons - Building robust client-server architectures
Learn to build complex architectures with multiple threads and processes:
- Processes vs. threads
- Multiprocessing and multithreading
- Inter-process communication (IPC)
- Socket programming and TCP/IP
- REST APIs with Flask (WSGI) and FastAPI (ASGI)
- Asynchronous programming
🔧 Practical Python
7 Lessons - Real-world Python development scenarios
“A day in the life of a Python Developer” - practical topics and tools:
- Package development and modification
- Testing with pytest
- Python on WebAssembly (WASM)
- C extensions for Python
- Machine learning applications
- Conference talks and community learning
- Exploring other programming languages
Making the most out of these lectures
Making the most out of these lectures will require you to work alongside of them:
- Try al the snippets of code yourself. Try to modify them here and there to make sure you understand everything.
- Do the exercises.
Prerequisites
To follow along with the course you will need a few things installed:
A Python environment
There are currently two methods I recommend for installing Python:
- Method one is via the conda ecosystem. Here, for license reasons, it is strongly advised that you use miniforge or pixi.
- Method two is via
uv. This is my current recommendation for Python developers. Follow the installation instructions on Astral’s website.
git
We will be sharing a repository on github throughout the course to share our work with other students. Once you have been given access you should clone the repository
Visual Studio Code
My editor of choice for this clas will be Visual Studio Code. Here are the extensions I have installed:
- Python by Microsoft (Extension pack containing Pylance and Python debugger)
- Ruff by Astral Software (Linter)
- Jupyter by Microsoft (Extension pack)
- Even Better TOML by tamasfe (syntax highlighting for files such as pyproject.toml)
- Error Lens by Alexander (see errors inline)
- Git Graph by mhutchie1
Copyright notice
No part of these notes may be reproduced, stored, or transmitted in any form or by any means without the prior written permission of the author.
Footnotes
Still the best Git integration in VS Code that I am aware of. Unfortunately the maintainer seems to have quit and the license doesn’t permit others to take over the work. An interesting alternative is the GitLG project by phil294 but it just doesnt’t look as good.↩︎