Schulungsübersicht
Tag 1 — Fundamentale Python-Konzepte & Tooling
Moderne Python-Features und Typisierung
- Grundlagen der Typisierung, Generics, Protocols und TypeGuard
- Überblick über Dataclasses, gefrorene Dataclasses und attrs
- Pattern Matching (PEP 634+) und idiomatische Nutzung
Code-Qualität und Tooling
- Code-Formatter und Linter: black, isort, flake8, ruff
- Statisches Type-Checking mit MyPy und pyright
- Pre-commit-Hooks und Entwickler-Workflows
Projektmanagement und Paketierung
- Dependency-Management mit Poetry und virtuellen Umgebungen
- Paket-Struktur, Einstiegspunkte und Best Practices für Versionierung
- Bauen und Veröffentlichen von Paketen auf PyPI und privaten Registries
Tag 2 — Design Patterns & Architekturelle Praktiken
Design Patterns in Python
- Kreatorische Patterns: Factory, Builder, Singleton (Pythonic-Varianten)
- Strukturelle Patterns: Adapter, Facade, Decorator, Proxy
- Behaviorale 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
- Design von Bibliotheks- vs. Anwendungscode
- APIs, stabile Schnittstellen und semantische Versionierung
- Umgang mit Konfiguration, Secrets und umgebungsspezifischen Einstellungen
Tag 3 — Concurrentity, Async IO und Performance
Concurrentity und Parallelität
- Grundlagen von Threading und die Auswirkungen des GIL
- Multiprocessing und Process Pools für CPU-bound Tasks
- Wann concurrent.futures vs. Multiprocessing einsetzen
Asynchrone Programmierung mit asyncio
- Async/await-Patterns, Event-Loop und Cancellation
- Design asynchroner Bibliotheken und Interoperabilität mit synchronem Code
- IO-bound Patterns, Backpressure und Rate Limiting
Profiling und Optimierung
- Profiling-Tools: cProfile, pyinstrument, perf, memory_profiler
- Optimieren von Hot Paths und Einsatz von C-Erweiterungen/Numba wo angemessen
- Messen von Latenz, Durchsatz und Ressourcenauslastung
Tag 4 — Testing, CI/CD, Observability und Deployment
Test-Strategien und Automatisierung
- Unit Testing und Fixtures mit pytest; Test-Organisation
- Property-Based Testing mit Hypothesis und Contract Testing
- Mocking, Monkeypatching und Testen asynchronen Codes
CI/CD, Release und Monitoring
- Integration von Tests und Quality Gates in GitHub Actions/GitLab CI
- Bauen reproduzierbarer Container mit Docker und Multi-Stage Builds
- Anwendungs-Observability: strukturiertes Logging, Prometheus-Metriken und Tracing
Sicherheit, Härten und Best Practices
- Dependency-Auditing, SBOM-Grundlagen und Vulnerability Scanning
- Sichere Coding-Praktiken für Input-Validierung und Secrets Management
- Runtime-Härten: Ressourcenlimits, Benutzerrechte und Container-Sicherheit
Capstone-Projekt & Review
- Team-Labor: Entwerfen und Implementieren eines kleinen Services unter Nutzung der Kurs-Patterns
- Testing, Type-Checking, Paketierung und CI-Pipeline für das Projekt
- Abschliessende Review, Code-Kritik und massnahmbarer Verbesserungsplan
Zusammenfassung und Nächste Schritte
Voraussetzungen
- Solide Python-Programmiererfahrung auf mittlerem Niveau
- Vertrautheit mit objektorientierter Programmierung und grundlegendem Testing
- Erfahrung im Umgang mit der Kommandozeile und Git
Zielgruppe
- Senior Python-Entwickler
- Software-Ingenieure, die für die Code-Qualität und Architektur von Python-Code verantwortlich sind
- Technische Leitende 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