1.2. Agenda¶
Training course: 9:00 - 17:00
Lunch break: 13:15 - 14:00
10 min break every one/one-and-half hour
1.2.1. Day 1¶
15m - Welcome note, agenda, work organization
60m - Prepare work environment: github, git, python, doctest
30m - Entry test evaluating proficiency, skills and knowledge
45m - Live coding solution and IDE demonstration: debugging, version control, refactoring, documentation, type annotations and Python syntactic sugars
30m - Generators: Builtin generator-like objects
30m - Generators: Generator expression
45m - Generators: Generator function
15m - Generators: Introspection
15m - Generators: Yield-from and Send
15m - Generators: Itertools module
30m - Functional Programming: Lambda
30m - Functional Programming: Scope
30m - Functional Programming: Pure-function
30m - Functional Programming: Recurrence
1.2.2. Day 2¶
15m - Functional Programming: Mutable and immutable data structures
30m - Functional Programming: Higher-order functions and referential transparency
30m - Functional Programming: Namespace and function attributes
45m - Functional Programming: Callable and closures
180m - Decorators: Function decorators
45m - Decorators: Method decorators
45m - Decorators: Class decorators
30m - Decorators: Decorator arguments and functools.wraps
1.2.3. Day 3¶
45m - OOP Mutable and immutable data structures in parameters
45m - OOP Access modifiers for methods and attributes
45m - OOP Static and dynamic attributes
45m - OOP: Slots
60m - OOP: Staticmethod and classmethod
45m - OOP: Inheritance, Mixin, Composition
30m - OOP: Method Resolution Order and super()
30m - OOP: Polymorphism
75m - OOP: Interfaces, Protocols and Abstract Base Classes
1.2.4. Day 4¶
120m - OOP: Object Relation Mapping
60m - OOP: Object identity and equality
60m - OOP: Class constructor __new__ vs __init__
90m - OOP: Class creation and Metaclass
60m - Performance: Optimization, micro-benchmarking and profiling
15m - Performance: Alternative compilers, interpreters and modules
15m - Performance: Python code compilation (mypyc)
1.2.5. Day 5¶
90m - Protocol: Context Manager, Iterator
150m - Protocol: Reflection, Property, Descriptor
30m - Concurrency: Concurrency models and their specificity
30m - Concurrency: Multiprocessing
30m - Concurrency: Threading and queues
90m - Concurrency: Asynchronous programming