This repository provides a comprehensive path for Python re-familiarization, from basics to advanced concepts.
It is open sourced using CC0.
- 010-020: Fundamentals (data types, control structures)
- 030-037: Functions and type system
- 040-047: Object-Oriented Programming
- 050-060: Modules and libraries
- 070+: Advanced topics
-
025 Advanced Data Structures (Priority: High)
- Collections module (defaultdict, Counter, OrderedDict)
- heapq module
- bisect module
- Advanced list/dict comprehensions
-
055 File Operations and Context Managers (Priority: High)
- Advanced file operations
- Context managers (
with
statement) - Creating custom context managers
- File-like objects
-
065 Decorators and Metaprogramming (Priority: High)
- Function decorators
- Class decorators
- Decorator factories
- Metaprogramming basics
-
075 Advanced Exception Handling (Priority: Medium)
- Custom exceptions
- Exception hierarchies
- Context managers for error handling
- Best practices
-
080 Iterators and Generators (Priority: High)
- Iterator protocol
- Generator functions and expressions
- yield and yield from
- Memory efficiency
-
In 040 classes.ipynb:
- Abstract Base Classes (ABC)
- Multiple inheritance
- Method Resolution Order (MRO)
- Metaclasses
- Properties and descriptors
-
In 045 objects.ipynb:
- Object serialization
- Pickling and unpickling
- Deep vs shallow copy
- Memory management
-
In 060 libraries and imports.ipynb:
- Package organization
- Relative imports
- Import hooks
- Namespace packages
-
In 070 concurrency.ipynb:
- asyncio basics
- Async/await syntax
- Threading vs Multiprocessing
- Concurrent.futures
See the numbered Jupyter notebook names for current materials.