Lectures are using markdown with some additional plugins for Obsidian ("dataview") in case if we decide to link files one to the other.
Section 1: Python Ecosystem Basics for TS Developers
- Python version differences (2 vs 3)
- Python installation across different systems (comparison with Node.js)
- Python REPL vs Node.js REPL
- Running scripts (python script.py vs node script.js)
- PEP 8 and naming conventions (vs JS/TS conventions)
Section 2: Project and Dependency Management
- Python vs Node.js project structure
- Environment Isolation (venv vs nvm)
- Package Management (pip vs npm/yarn)
- Jupyter Notebooks
Section 3: Module System and Scope
- import/export in Python vs ES modules
- Module paths and PYTHONPATH vs NODE_PATH
- Namespaces in Python vs scope in JS
- _init_.py and its role
Section 4: Basic Syntax and Types
- Dynamic typing in Python vs JS
- Type hints in Python vs TypeScript
- Basic types (str, int, float, bool)
- None vs null/undefined
- Comparison operators (== vs is)
- Logical operators (and/or vs &&/||)
Section 5: Functions and Parameters
- Function definition (def vs function/arrow functions)
- Default and named parameters (key difference vs JS)
- *args and **kwargs vs rest/spread operator
- Decorators vs Higher Order Functions
- Type annotations in functions
Section 6: Data Collections
- list vs Array (fundamental differences)
- tuple vs readonly Array
- set vs Set
- dict vs Object/Map
- Immutability in Python vs JS
Section 7: Advanced Collection Operations
- Python Specialized Collections: deque, heapq, bisect
Section 8: OOP Basics
- Class definition in Python vs JS/TS
- Constructor (init vs constructor)
- self vs this
- Properties and methods
- Encapsulation in Python
Section 9: Advanced OOP
- Multiple inheritance (not available in TS)
- super() in Python vs JS
- Abstract Base Classes vs Interfaces
- Dataclasses
Section 10: Python Magic Methods
- Magic methods
Section 11: Error Handling and Context
- Exception handling (try/except vs try/catch)
- Exception hierarchy
- finally and else
- Context managers and with
- @contextmanager
Section 12: Functional Programming
- Lambda expressions vs arrow functions
- map, filter, reduce vs Array methods
- Partial functions and currying
- functools module
- Pure functions and immutability
Section 13: Asynchronous Programming
- async/await syntax comparison
- Event loops in Python vs JS
- asyncio basics
- Asynchronous patterns
- Differences in asynchronicity approach