Course is designed to make TS developer grasp an idea of a new language and start working asap.
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:
Section 2: 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 3: Project and Dependency Management
- Python vs Node.js project structure
- Environment Isolation (venv vs nvm)
- Package Management (pip vs npm/yarn)
- Jupyter Notebooks
Section 4: Module System and Scopecd
- 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 5: 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 6: Functions and Parameters
- [Function Definitions Python vs TypeScript](Section-1/S5L1 Function Definitions Python vs TypeScript.md)
- Default and named parameters (key difference vs JS)
- Decorators vs Higher Order Functions
- Type annotations in functions
Section 7: Data Collections
- list vs Array (fundamental differences)
- tuple vs readonly Array
- set vs Set
- dict vs Object/Map
- Immutability in Python vs JS
Section 8: Advanced Collection Operations
- Python Specialized Collections: deque, heapq, bisect
Section 9: OOP Basics
- Class definition in Python vs JS/TS
- Constructor (init vs constructor)
- self vs this
- Properties and methods
- Encapsulation in Python
Section 10: Advanced OOP
- Multiple inheritance (not available in TS)
- super() in Python vs JS
- Abstract Base Classes vs Interfaces
- Dataclasses
Section 11: Python Magic Methods
- Magic methods
Section 12: Error Handling and Context
- Exception handling (try/except vs try/catch)
- Exception hierarchy
- finally and else
- Context managers and with
- @contextmanager
Section 13: Functional Programming
- Lambda expressions vs arrow functions
- map, filter, reduce vs Array methods
- Partial functions and currying
- functools module
- Pure functions and immutability
Section 14: Asynchronous Programming
- async/await syntax comparison
- Event loops in Python vs JS
- asyncio basics
- Asynchronous patterns
- Differences in asynchronicity approach