Course Outline
Day 1 — Solid Python Foundations & Developer Tools
Contemporary Python Features and Type Systems
- Foundations of type hinting, generic types, Protocols, and TypeGuard utilities
- Overview of dataclasses, immutable dataclasses, and the attrs library
- Implementation and best practices for structural pattern matching (PEP 634+)
Code Integrity and Development Workflows
- Configuration and usage of formatters and linters: black, isort, flake8, ruff
- Static type analysis using MyPy and pyright
- Integration of pre-commit hooks and optimized developer routines
Project Administration and Packaging Strategies
- Managing dependencies via Poetry and isolating environments using virtual setups
- Optimal package structures, entry point definitions, and semantic versioning guidelines
- Processes for building and publishing packages to PyPI and internal registries
Day 2 — Design Patterns & Architectural Frameworks
Application of Design Patterns in Python
- Object creation patterns: Factory, Builder, and Singleton (including Python-specific adaptations)
- Composition patterns: Adapter, Facade, Decorator, and Proxy
- Behavior management patterns: Strategy, Observer, and Command
Architectural Core Principles
- Application of SOLID principles within Python codebases
- Hexagonal/Clean Architecture concepts and domain boundaries
- Techniques for dependency injection and effective configuration handling
Modularity and Code Reusability
- Differentiating design approaches for libraries versus application logic
- Defining stable APIs, interfaces, and semantic versioning standards
- Strategies for managing configuration files, secrets, and environment-specific variables
Day 3 — Concurrency, Asynchronous I/O, and Performance Tuning
Concurrency and Parallel Processing
- Basics of threading and understanding the Global Interpreter Lock (GIL) constraints
- Utilizing multiprocessing and process pools for CPU-intensive workloads
- Decision frameworks for choosing between concurrent.futures and multiprocessing
Asynchronous Programming via asyncio
- Mastery of async/await syntax, event loop mechanics, and task cancellation
- Architecting asynchronous libraries and ensuring compatibility with synchronous code
- Handling I/O-bound tasks, implementing backpressure, and managing rate limits
Performance Profiling and Optimization
- Utilization of profiling utilities: cProfile, pyinstrument, perf, and memory_profiler
- Refining critical code paths and leveraging C-extensions or Numba for speed improvements
- Metrics tracking for latency, throughput, and resource consumption
Day 4 — Testing, CI/CD, Observability, and Release Strategies
Testing Methodologies and Automation
- Unit test design and fixture management with pytest; structuring test suites
- Property-based testing via Hypothesis and contract verification
- Techniques for mocking, monkeypatching, and validating asynchronous code
CI/CD, Release Management, and Monitoring
- Incorporating test suites and quality checks into GitHub Actions/GitLab CI pipelines
- Creating reproducible Docker images using multi-stage build strategies
- Implementing application observability through structured logs, Prometheus metrics, and distributed tracing
Security, Hardening, and Operational Best Practices
- Dependency audits, Software Bill of Materials (SBOM) fundamentals, and vulnerability detection
- Secure coding standards for input validation and credential management
- Runtime security measures: resource constraints, permission scoping, and container safety
Capstone Assignment & Evaluation
- Collaborative lab: designing and building a microservice utilizing course-covered patterns
- Implementation of testing, type-checking, packaging, and CI automation for the assignment
- Final assessment, peer code review, and development of an actionable improvement roadmap
Conclusion and Future Directions
Requirements
- Solid proficiency in intermediate-level Python programming
- Working knowledge of object-oriented principles and fundamental testing procedures
- Practical experience with command-line interfaces and Git version control
Intended Learners
- Experienced Python developers
- Engineers tasked with maintaining code integrity and architectural design in Python projects
- Technical leaders and MLOps/DevOps specialists managing Python-based codebases
Testimonials (2)
everything was perfect
Florin Vrincianu
Course - Python Programming Fundamentals
Hands-on exercises related to content really helps to understand more about each topic. Also, style of start class with lecture and continue with hands-on exercise is good and helpful to relate with the lecture that presented earlier.