Course Outline
Day 1 — Solid Python Fundamentals & Developer Tools
Contemporary Python Features and Type Safety
- Foundations of typing, generics, Protocols, and TypeGuard.
- Dataclasses, frozen dataclasses, and an overview of attrs.
- Pattern matching (PEP 634+) and idiomatic implementation.
Code Quality and Developer Tools
- Code formatting and linting utilities: black, isort, flake8, and ruff.
- Static type analysis using MyPy and pyright.
- Pre-commit hooks and optimized developer workflows.
Project Management and Packaging
- Dependency management via Poetry and virtual environments.
- Package structure, entry points, and versioning best practices.
- Building and publishing packages to PyPI and private registries.
Day 2 — Design Patterns & Architectural Methodologies
Design Patterns within Python
- Creational patterns: Factory, Builder, and Singleton (with Pythonic variations).
- Structural patterns: Adapter, Facade, Decorator, and Proxy.
- Behavioral patterns: Strategy, Observer, and Command.
Architectural Principles
- Application of SOLID principles to Python codebases.
- Hexagonal and Clean Architecture concepts, including boundary definition.
- Dependency injection strategies and configuration management.
Modularity and Code Reuse
- Distinguishing between library design and application code.
- API design, stable interfaces, and semantic versioning.
- Managing configuration, secrets, and environment-specific settings.
Day 3 — Concurrency, Asynchronous IO, and Performance
Concurrency and Parallelism
- Threading fundamentals and the implications of the Global Interpreter Lock (GIL).
- Multiprocessing and process pools for CPU-intensive tasks.
- Selecting between concurrent.futures and multiprocessing appropriately.
Asynchronous Programming with asyncio
- Async/await patterns, event loops, and cancellation mechanisms.
- Designing async libraries and ensuring interoperability with synchronous code.
- IO-bound patterns, backpressure management, and rate limiting.
Profiling and Optimization
- Profiling tools: cProfile, pyinstrument, perf, and memory_profiler.
- Optimizing critical paths and utilizing C-extensions or Numba where suitable.
- Measuring latency, throughput, and resource consumption.
Day 4 — Testing, CI/CD, Observability, and Deployment
Testing Strategies and Automation
- Unit testing and fixture management with pytest; organizing test suites.
- Property-based testing using Hypothesis and contract testing.
- Mocking, monkeypatching, and testing asynchronous code.
CI/CD, Release Management, and Monitoring
- Integrating tests and quality gates into GitHub Actions and GitLab CI.
- Creating reproducible containers with Docker and multi-stage builds.
- Application observability: structured logging, Prometheus metrics, and distributed tracing.
Security, Hardening, and Best Practices
- Dependency auditing, SBOM fundamentals, and vulnerability scanning.
- Secure coding practices for input validation and secret management.
- Runtime hardening: resource constraints, user permissions, and container security.
Capstone Project & Evaluation
- Group lab: design and implement a small service incorporating course patterns.
- Testing, type-checking, packaging, and CI pipeline setup for the project.
- Final review, code critique, and development of an actionable improvement plan.
Summary and Future Steps
Requirements
- Proficient intermediate-level proficiency in Python programming.
- Working knowledge of object-oriented programming concepts and fundamental testing practices.
- Practical experience with command-line interfaces and Git version control.
Target Audience
- Senior Python developers.
- Software engineers tasked with maintaining Python code quality and architecture.
- Technical leads, as well as MLOps and DevOps engineers, who manage Python-based codebases.
Select an available course date
- Format Online
- Language Polish
- Course Public course
- Start Date 2027-01-11
- Duration 4 days (28 hours)
Net price per participant
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.