Schița de curs
Ziua 1 — Fundamente Python robuste și tooling
Funcționalități moderne Python și typing
- Bazele typing-ului, generice, Protocols și TypeGuard
- Dataclasses, frozen dataclasses și prezentare generală attrs
- Pattern matching (PEP 634+) și utilizare idiomatică
Calitatea codului și tooling
- Formatters și linters: black, isort, flake8, ruff
- Verificare statică a tipurilor cu MyPy și pyright
- Pre-commit hooks și fluxuri de lucru pentru dezvoltatori
Managementul proiectelor și packaging
- Managementul dependențelor cu Poetry și medii virtuale
- Structura pachetelor, entry points și bune practici de versionare
- Construirea și publicarea pachetelor pe PyPI și în registry-uri private
Ziua 2 — Design Patterns și practici de arhitectură
Design Patterns în Python
- Pattern-uri creaționale: Factory, Builder, Singleton (variante pythonice)
- Pattern-uri structurale: Adapter, Facade, Decorator, Proxy
- Pattern-uri comportamentale: Strategy, Observer, Command
Principii de arhitectură
- Principii SOLID aplicate codebase-urilor Python
- Arhitectură Hexagonală/Clean și granițe
- Pattern-uri de dependency injection și managementul configurației
Modularitate și reutilizare
- Proiectarea codului de bibliotecă vs codul de aplicație
- API-uri, interfețe stabile și versionare semantică
- Gestionarea configurației, a secretelor și a setărilor specifice mediului
Ziua 3 — Concurență, Async IO și performanță
Concurență și paralelism
- Fundamentele threading-ului și implicațiile GIL
- Multiprocessing și pool-uri de procese pentru sarcini CPU-bound
- Când să folosești concurrent.futures vs multiprocessing
Programare asincronă cu asyncio
- Pattern-uri async/await, event loop și anulare
- Proiectarea bibliotecilor async și interoperabilitatea cu codul sincron
- Pattern-uri IO-bound, backpressure și rate limiting
Profiling și optimizare
- Instrumente de profiling: cProfile, pyinstrument, perf, memory_profiler
- Optimizarea căilor critice și utilizarea extensiilor C/Numba acolo unde este potrivit
- Măsurarea latenței, throughput-ului și utilizării resurselor
Ziua 4 — Testare, CI/CD, observabilitate și deployment
Strategii de testare și automatizare
- Unit testing și fixtures cu pytest; organizarea testelor
- Property-based testing cu Hypothesis și contract testing
- Mocking, monkeypatching și testarea codului asincron
CI/CD, release și monitorizare
- Integrarea testelor și a quality gates în GitHub Actions/GitLab CI
- Construirea de containere reproductibile cu Docker și multi-stage builds
- Observabilitatea aplicațiilor: structured logging, metrici Prometheus și tracing
Securitate, hardening și bune practici
- Auditarea dependențelor, noțiuni de bază SBOM și scanarea vulnerabilităților
- Practici de codare sigură pentru validarea inputului și managementul secretelor
- Hardening la runtime: limite de resurse, drepturi de utilizator și securitatea containerelor
Proiect final și recapitulare
- Laborator în echipă: proiectează și implementează un serviciu mic folosind pattern-urile din curs
- Testare, type-checking, packaging și pipeline CI pentru proiect
- Recapitulare finală, code critique și plan de îmbunătățire acționabil
Rezumat și pașii următori
Cerințe
- Experiență solidă de programare Python la nivel intermediar
- Familiaritate cu programarea orientată pe obiecte și testare de bază
- Experiență în utilizarea liniei de comandă și a Git
Public țintă
- Dezvoltatori Python seniori
- Ingineri software responsabili de calitatea codului Python și de arhitectură
- Lideri tehnici și ingineri MLOps/DevOps care lucrează cu codebase-uri Python
Mărturii (2)
totul a fost perfect
Florin Vrincianu
Curs - Python Programming Fundamentals
Tradus de catre o masina
Exercițiile practice legate de conținut ajută cu adevărat la înțelegerea mai profundă a fiecărui subiect. De asemenea, stilul de a începe cursul cu o prezentare teoretică și de a continua cu exerciții practice este bun și util pentru a lega conținutul de ce s-a prezentat anterior.
Nazeera Mohamad - Ministry of Science, Technology and Innovation
Curs - Introduction to Data Science and AI using Python
Tradus de catre o masina