Schulungsübersicht
Tag 1 – Robuste Python-Grundlagen & Tooling
Modernes Python-Feature und Typisierung
- Grundlagen der Typisierung, Generics, Protocols und TypeGuard
- Dataclasses, eingefrorene Dataclasses und Überblick über attrs
- Pattern Matching (PEP 634+) und idiomatische Nutzung
Codequalität und Tooling
- Code-Formatter und Linter: black, isort, flake8, ruff
- Statische Typprüfung mit MyPy und pyright
- Pre-Commit-Hooks und Entwickler-Workflows
Projektmanagement und Packaging
- Abhängigkeitsmanagement mit Poetry und virtuellen Umgebungen
- Paketstruktur, Entry Points und beste Praktiken für Versionierung
- Erstellung und Veröffentlichung von Paketen in PyPI und privaten Registern
Tag 2 – Design-Patterns & Architekturpraktiken
Design-Patterns in Python
- Erstellende Patterns: Factory, Builder, Singleton (Pythonische Varianten)
- Strukturelle Patterns: Adapter, Facade, Decorator, Proxy
- Verhaltensbezogene Patterns: Strategy, Observer, Command
Architekturprinzipien
- Anwendung der SOLID-Prinzipien auf Python-Codebasen
- Hexagonale/Clean Architecture und Grenzen
- Dependency-Injection-Patterns und Konfigurationsmanagement
Modularität und Wiederverwendung
- Gestaltung von Bibliotheks- vs. Anwendungskod
- APIs, stabile Schnittstellen und semantische Versionierung
- Umgang mit Konfiguration, Secrets und umgebungsspezifischen Einstellungen
Tag 3 – Konkurrenz, Async IO und Leistung
Konkurrenz und Parallelisierung
- Grundlagen des Threading und Auswirkungen des GIL
- Multiprocessing und Process Pools für CPU-lastige Aufgaben
- Wann concurrent.futures vs. multiprocessing verwenden
Async-Programmierung mit asyncio
- Async/Await-Patterns, Event Loop und Abbruch
- Gestaltung asynchroner Bibliotheken und Interoperabilität mit Synchron-Code
- IO-lastige Patterns, Backpressure und Rate Limiting
Profiling und Optimierung
- Profiling-Tools: cProfile, pyinstrument, perf, memory_profiler
- Optimierung von Hot Paths und Verwendung von C-Erweiterungen/Numba, wo geeignet
- Messung von Latenz, Durchsatz und Ressourcennutzung
Tag 4 – Testing, CI/CD, Observability und Bereitstellung
Testing-Strategien und Automatisierung
- Unit-Testing und Fixtures mit pytest; Testorganisation
- Property-basiertes Testing mit Hypothesis und Vertragstesting
- Mocking, Monkeypatching und Testing asynchronen Codes
CI/CD, Release und Monitoring
- Integration von Tests und Qualitätsschwellen in GitHub Actions/GitLab CI
- Erstellung reproduzierbarer Container mit Docker und Multi-Stage-Builds
- Anwendungs-Observability: Strukturierte Logging, Prometheus-Metriken und Tracing
Sicherheit, Härtung und beste Praktiken
- Abhängigkeitsprüfung, SBOM-Grundlagen und Schwachstellenscanning
- Sichere Programmierpraktiken für Eingabevalidierung und Secret-Management
- Laufzeit-Härtung: Ressourcengrenzen, Benutzerrechte und Container-Sicherheit
Capstone-Projekt & Review
- Team-Labor: Entwurf und Implementierung eines kleinen Dienstes unter Verwendung der im Kurs behandelten Patterns
- Testing, Typprüfung, Packaging und CI-Pipeline für das Projekt
- Abschließendes Review, Code-Kritik und planbarer Verbesserungsplan
Zusammenfassung und nächste Schritte
Voraussetzungen
- Starke Erfahrung in der Python-Programmierung auf mittlerem Niveau
- Vertrautheit mit objektorientierter Programmierung und grundlegendem Testing
- Erfahrung in der Nutzung der Kommandozeile und von Git
Zielgruppe
- Senior-Python-Entwickler
- Softwareingenieure, die für die Codequalität und Architektur in Python verantwortlich sind
- Technische Leiter und 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