Advanced Python im Detail: Moderne Features von Python 3 für robuste, saubere Anwendungen meistern.
Hands-on mit Generatoren, Coroutines, Typing, Context Managern und Dekoratoren.
Best Practices zu Concurrency, Design Patterns und Performance-Tuning anwenden.
Praktische Erfahrung sammeln durch ~70% Coding-Labs und Projektübungen.
Nutzen: Zuverlässige, wartbare Python-Systeme für Produktion entwickeln.
Für wen: gedacht für Personen mit Python-Grundlagen, die fortgeschrittene Skills suchen.
Optionale Themen: Metaprogrammierung, Async-Frameworks und Packaging.
Curriculum
Einführung
- Setup und erste Codezeilen
- Python‑Syntax — Grundlagen
- Python 2 → 3 Unterschiede (kurz)
- Wichtige Datentypen & Typing‑Mechanismus (str/bytes/unicode, Zahlen, Sequenzen)
- I/O‑Basics in Python
More I/O
- Arbeiten mit CSV, XML, JSON, PDF
- File Locks; Seeking; sicheres Schreiben (Tempfiles) und einfache Rollback‑Muster
- Binärdateien und Serialisierung (struct, pickle); Endianness und Framing
- pathlib‑Essentials für Files & Paths (Ergänzung)
Praktische funktionale Programmierung in Python
- First‑Class Functions; map/reduce/filter (Hinweise 2 vs 3)
- List/Dict/Set Comprehensions; Generator Expressions
- Lambdas; Closures; Partial Application
- Function Annotations; kurze Hinweise zum Type Checking
- Iterators & itertools (Ergänzung)
Praktisches OOP in Python
- Klassen/Objekte; Vererbung & Multiple Inheritance
- Spezielle Methoden; Operator Overloading; Functors
- Decorators für Methoden und Klassen
- Intention von ‚Const‑ness‘; Abstract Base Classes
- Metaclasses (Überblick) und dataclasses (Ergänzung)
- Descriptors & Properties (Ergänzung)
Verschiedene Themen
- Generatoren, Immutability‑Ideen, Thunks
- Regular Expressions
- Multi‑Threading: Grundlagen von Concurrency & Synchronisation; Queues und Patterns
- Networking: von Sockets zu Message Systems
- Asyncio‑Überblick (Ergänzung): Event Loop, Tasks vs. Threads; wann welches
Environment setup
- pip, PyPI, virtualenv/venv; conda (wo es passt)
- setuptools‑Basics und Dependency Pinning
- pyproject.toml (Ergänzung): moderne Builds im Überblick
- Reproduzierbarkeit: Constraints/Lock Files (kurz)
Packages erstellen & externe Bibliotheken einbinden
- Eigenes Package veröffentlichen; Versionierung & Layout
- Native Libraries einbinden: ctypes/cffi, pybind11 (Überblick)
- Wheels und manylinux (Überblick)
Ad‑hoc‑Lösung für ein nutzerdefiniertes Problem
- Zeitfenster für Projektthema (z. B. Hardware‑Geräte steuern, PoE, Telemetrie‑Parsing)
Optionale Module
Optional — Testing & Quality (kompakt)
- pytest‑Basics; Fixtures; Parametrisierung
- mypy/Typing Hints; ruff/black; pre‑commit (Kurzüberblick)
Kursablauf
- Part 1: 09:00–10:30
- Break: 10:30–10:45
- Part 2: 10:45–12:15
- Lunch break: 12:15–13:15
- Part 3: 13:15–15:15
- Break: 15:15–15:30
- Part 4: 15:30–17:30