Schulungsübersicht
Tag 1 — Robuste Python-Grundlagen & Tooling
Moderne Python-Funktionen und Typisierung
- Typisierung-Grundlagen, Generics, Protocols und TypeGuard
- Dataclasses, gefrorene Dataclasses und Überblick über attrs
- Pattern-Matching (PEP 634+) und idiomatische Verwendung
Codequalität und Tooling
- Code-Formattierer und Linter: black, isort, flake8, ruff
- Statische Typprüfung mit MyPy und pyright
- Pre-Commit-Hooks und Entwickler-Workflows
Projektmanagement und Paketierung
- Abhängigkeitsverwaltung mit Poetry und virtuellen Umgebungen
- Paketlayout, Entry Points und beste Versionierungspraktiken
- Erstellen und Veröffentlichen von Paketen auf PyPI und privaten Registries
Tag 2 — Design Patterns & Architekturen
Design Patterns in Python
- Erstellende Patterns: Factory, Builder, Singleton (Pythonic-Varianten)
- Strukturierende Patterns: Adapter, Facade, Decorator, Proxy
- Verhaltensbezogene Patterns: Strategy, Observer, Command
Architekturprinzipien
- SOLID-Prinzipien angewendet auf Python-Codebasen
- Hexagonale/Clean Architecture und Grenzen
- Dependency-Injection-Patterns und Konfigurationsmanagement
Modularität und Wiederverwendbarkeit
- Gestaltung von Bibliothekscode vs. Anwendungscode
- APIs, stabile Schnittstellen und semantische Versionierung
- Behandlung von Konfiguration, Secrets und umgebungsspezifischen Einstellungen
Tag 3 — Concurrency, Async IO und Performance
Concurrency und Parallelismus
- Grundlagen des Threading und die Implikationen des GIL
- Multiprocessing und Prozesspools für CPU-gebundene Aufgaben
- Wann concurrent.futures vs. multiprocessing verwendet werden sollte
Async-Programmierung mit asyncio
- Async/await-Patterns, Event-Loop und Abbruch
- Gestaltung asynchroner Bibliotheken und Interoperabilität mit synchonem Code
- IO-gebundene Patterns, Backpressure und Rate Limiting
Profiling und Optimierung
- Profiling-Tools: cProfile, pyinstrument, perf, memory_profiler
- Optimierung von Hot Paths und Verwendung von C-Extensions/Numba, wo angemessen
- Messung von Latenz, Durchsatz und Ressourcennutzung
Tag 4 — Testing, CI/CD, Observability und Deployment
Teststrategien und Automatisierung
- Unit-Testing und Fixtures mit pytest; Testorganisation
- Property-based Testing mit Hypothesis und Contract-Testing
- Mocking, Monkeypatching und das Testen asynchronen Codes
CI/CD, Release und Monitoring
- Integration von Tests und Qualitäts-Gates in GitHub Actions/GitLab CI
- Erstellen reproduzierbarer Container mit Docker und Multi-Stage-Builds
- Anwendungs-Observability: strukturiertes Logging, Prometheus-Metriken und Tracing
Sicherheit, Absicherung und Best Practices
- Abhängigkeits-Auditing, SBOM-Grundlagen und Schwachstellen-Scans
- Sichere Coding-Praktiken für Eingabevalidierung und Secrets-Management
- Runtime-Absicherung: Ressourcenlimits, Benutzerrechte und Container-Sicherheit
Capstone-Projekt & Review
- Team-Labor: Entwurf und Implementierung eines kleinen Dienstes unter Verwendung der Patterns aus dem Kurs
- Testing, Type-Checking, Paketierung und CI-Pipeline für das Projekt
- Endgültiges Review, Code-Kritik und umsetzbarer Verbesserungsplan
Zusammenfassung und nächste Schritte
Voraussetzungen
- Fundierte Erfahrungen in der Python-Programmierung auf mittlerem Niveau
- Vertrautheit mit objektorientierter Programmierung und grundlegendem Testing
- Erfahrung in der Verwendung der Befehlszeile und Git
Zielgruppe
- Senior Python-Entwickler
- Software-Ingenieure, die für Codequalität und Architektur in Python verantwortlich sind
- Technische Leads sowie MLOps-/DevOps-Ingenieure, die mit Python-Codebasen arbeiten
Erfahrungsberichte (2)
Alles war perfekt.
Florin Vrincianu
Kurs - Python Programming Fundamentals
Maschinelle Übersetzung
Praktische Übungen zum Inhalt helfen wirklich, jedes Thema besser zu verstehen. Außerdem ist es gut und hilfreich, die Kurse mit einer Vorlesung zu beginnen und dann mit praktischen Übungen fortzusetzen, um den vorgestellten Stoff besser einordnen zu können.
Nazeera Mohamad - Ministry of Science, Technology and Innovation
Kurs - Introduction to Data Science and AI using Python
Maschinelle Übersetzung