Cursusaanbod
Dag 1 — Robuuste Python-basis en tooling
Modieuze Python-kenmerken en typing
- Basis van typing, generics, Protocols en TypeGuard
- Dataclasses, frozen dataclasses en overzicht van attrs
- Pattern matching (PEP 634+) en idiomatic gebruik
Codekwaliteit en tooling
- Codeformatters en linters: black, isort, flake8, ruff
- Statische type checking met MyPy en pyright
- Pre-commit hooks en developer workflows
Projectbeheer en packaging
- Afhankelijkheidbeheer met Poetry en virtuele omgevingen
- Package layout, entry points en best practices voor versiebeheer
- Bouwen en publiceren van packages naar PyPI en private registries
Dag 2 — Ontwerppatronen & architectuurprincipes
Ontwerppatronen in Python
- Creational patterns: Factory, Builder, Singleton (Pythonic varianten)
- Structural patterns: Adapter, Facade, Decorator, Proxy
- Behavioral patterns: Strategy, Observer, Command
Architectuurprincipes
- SOLID principes toegepast op Python-codebases
- Hexagonal/Clean Architecture en boundaries
- Dependency injection patronen en configuratiebeheer
Modulariteit en herbruikbaarheid
- Bibliotheekcode vs. applicatiecode ontwerpen
- APIs, stabiele interfaces en semantisch versiebeheer
- Configuratie, secrets en omgevingsspecifieke instellingen beheren
Dag 3 — Concurrency, Async IO en prestaties
Concurrency en parallelisme
- Basis van threads en GIL-implicaties
- Multiprocessing en process pools voor CPU-bound taken
- Wanneer concurrent.futures vs multiprocessing gebruikt moet worden
Async programming met asyncio
- Async/await patronen, event loop en annulering
- Async libraries ontwerpen en interoperabiliteit met sync code
- IO-bound patronen, backpressure en rate limiting
Profilering en optimalisatie
- Profileringstools: cProfile, pyinstrument, perf, memory_profiler
- Hete paden optimaliseren en C-extensions/Numba waar nodig gebruiken
- Latency, doorvoer en resourcegebruik meten
Dag 4 — Testing, CI/CD, observability en deployment
Testing strategieën en automatisering
- Unit testing en fixtures met pytest; testorganisatie
- Property-based testing met Hypothesis en contracttesting
- Mocking, monkeypatching en het testen van asynchrone code
CI/CD, release en monitoring
- Tests en kwaliteitsgates integreren in GitHub Actions/GitLab CI
- Reproduceerbare containers bouwen met Docker en multi-stage builds
- Toepassingsobservabiliteit: gestructureerd loggen, Prometheus-metrics en tracing
Veiligheid, hardening en best practices
- Afhankelijkheidscontrole, SBOM-basis en vulnerabiliteitsanalyses
- Veilige coderingspraktijken voor inputvalidatie en secrets management
- Runtime hardening: resource limieten, gebruikersrechten en containerbeveiliging
Eindproject & evaluatie
- Team labo: een klein service ontwerpen en implementeren met behulp van patronen uit de cursus
- Testing, type-checking, packaging en CI-pipeline voor het project
- Eindbeoordeling, codekritiek en actieplan voor verbeteringen
Samenvatting en volgende stappen
Vereisten
- Een sterke ervaring op tussen- tot geavanceerd niveau in Python-programmering
- Vertrouwdheid met objectgeoriënteerde programmering en basis testing
- Erfaring met het gebruik van de command line en Git
Doelgroep
- Senior Python-developers
- Software-engineers die verantwoordelijk zijn voor de kwaliteit en architectuur van Python-code
- Technische leiders en MLOps/DevOps-ingenieurs die werken met Python-codebases
Getuigenissen (2)
De aanpassing van de exos aan onze context en het meenemen van onze vraag
Amel Guetat - EURO-INFORMATION DEVELOPPEMENTS
Cursus - Fraud Detection with Python and TensorFlow
Automatisch vertaald
Praktijkopdrachten gerelateerd aan de inhoud helpen echt om meer te begrijpen over elk onderwerp. Bovendien is de manier waarop de les begint met een college en verdergaat met praktijkopdrachten goed en helpt het om de eerder gepresenteerde lesstof beter te relateren.
Nazeera Mohamad - Ministry of Science, Technology and Innovation
Cursus - Introduction to Data Science and AI using Python
Automatisch vertaald