Python Advanced¶
About¶
- Level: Advanced
- Lectures: 40 hours
- Self-study: 20 hours
- Exercises: 137
- Lines of Code to write: 666
- Format: e-learning + weekly online teleconference with instructor
- Language: English or Polish
Description¶
This advanced, hands-on course explores modern Python features and idioms needed to design robust, maintainable, and high-performance applications. Following the syllabus, students work through advanced syntax, deep object-oriented patterns, operator overloading and accessor protocols, functional programming techniques, metaprogramming, and asynchronous programming; labs emphasize applying these concepts to real problems such as building performant APIs, safe concurrency patterns, and extensible libraries.
Advantages¶
Participants will gain practical mastery of advanced Python tools and patterns that reduce bugs, improve code clarity, and boost performance. The course teaches techniques for better API design, refactoring, debugging and testing of async code, and using metaprogramming safely; these skills help engineers ship features faster, maintain larger codebases with confidence, and take on architecture or library-authoring roles.
Target Audience¶
- Senior and backend Python developers who want to master advanced language features and architecture patterns.
- Library and framework authors who require metaprogramming and API design skills to build extensible, well-tested code.
- Software architects and technical leads responsible for maintainability and performance in Python systems.
- Developers working with concurrency, async I/O, or high-throughput networked services who need robust async patterns and testing.
- Data engineers and researchers who write production code and need deeper language and optimization knowledge.
- Advanced students and learners aiming to level up to senior Python engineering roles.
Format¶
The course is delivered as a blended learning experience, comprising numerous short videos that progressively introduce concepts and techniques through a series of practical examples. The course format combines e-learning modules with weekly online teleconferences with the instructor for Q&A, discussions, and code reviews.
During the self-study phase, students complete practical exercises that apply the learned techniques. Each exercise is designed to have 100% test coverage, allowing students to verify their solutions. Additionally, students will have access to a spreadsheet to track their progress.
Students will also receive downloadable resources, including code samples, exercise templates, and reference materials to support their learning journey. Since 2015, we have refined our materials based on student feedback to ensure clarity, engagement, and practical relevance. All code listings undergo automatic testing (over 28,000 tests) to ensure accuracy and reliability. All materials, code listings, exercises, and assignments are handcrafted by our trainers without the use of AI. All case studies and examples are based on real-world scenarios drawn from our extensive experience in software engineering.
Working language of the course is either English or Polish.
Course Outline¶
-
Introduction:
- Tasks to assess the group’s skill level
- Changes in the latest Python releases
-
Syntax:
- Assignment Expressions
- Exceptions (nested, custom)
- t-strings
-
Object-Oriented Paradigm:
- Attributes: slots, equality, identity, static methods, class methods
- Inheritance: patterns, mixins, overriding, super, MRO
- Abstraction: abstract classes, protocols, polymorphism
- Metaprogramming:
__init_subclass__,__new__,type, class factories, metaclasses
-
Operator Overloading:
- Left-hand, right-hand, and in-place operators
- Arithmetic, binary, and comparison operators
- Accessors:
__setitem__,__getitem__,__delitem__,__missing__,__call__ - Overloading built-in functions
-
Accessors:
- Patterns: Context Manager, Iterator
- Properties: setter, getter, deleter
- Reflection:
setattr,getattr,hasattr,delattr - Descriptors:
__set__,__get__,__delete__,__set_name__
-
Functional Paradigm:
- Lambda expressions
- Pure functions
- Memoization, cache,
lru_cache - Recursion
- Immutable data structures and referential transparency
- Namespaces and function attributes, callable objects
- Function scopes
- Higher-order functions, closures
- Patterns: pipe, callback, closure, maybe, some, map-reduce
functoolsmodule
-
Asynchronous Programming:
- Concurrency models
- Introduction to asynchronous programming and the
asynciolibrary async/awaitkeywords- Coroutines, awaitables, event loop
run,gather,wait_for- Asynchronous iterators and context managers
- AsyncIO:
Future,Task,TaskGroup - Asynchronous testing
- Asynchronous task execution at the operating system level
-
The Future
- Planned changes in future Python versions
- Speculation
- Where to look for further information
Our Experience¶
AATC trainers have been teaching software engineering since 2015. We have already delivered over 11,000 (eleven thousand) hours of software engineering training to more than 32,000 (thirty-two thousand) students worldwide.
Requirements¶
- Intermediate knowledge of Python programming
- Familiarity with using an IDE (e.g., PyCharm, VSCode)
- Familiarity with using version control systems (e.g., Git)
Setup¶
- Newest version of Python
- IDE of your choice (e.g., PyCharm, VSCode)
- Git installed and configured
- GitHub account
- Web browser (e.g., Chrome, Firefox, Safari, etc.)
Apply¶
If you are interested in taking this course, please contact us at info@astronaut.center