Training program
Secure and Efficient JavaScript Programming
- JavaScript language specification and standards
- Correct and efficient script loading strategies
- Debugging code in the browser
- Working in strict mode
- Proper declaration and usage of variables and constants
- Comparison operations and safe type coercion
- Functions, closures, and their practical applications
- Execution context, variable scope, and the role of `this`
- Object-oriented programming using the prototype-based model
- Mix-ins as an alternative to classical inheritance
- Exception handling
Modern JavaScript (ES6/ES2015 and beyond)
- Code transpilation and cross-browser compatibility
- Arrow functions
- Function parameters (default values, spread, rest parameters)
- Template literals and string interpolation
- OOP: class declarations, class members, computed properties, inheritance, static members, getters/setters, access control
- Destructuring (objects, arrays, function parameters)
- Nullish coalescing
- Working with modules
- Symbols
- Generators and iterators
- Collections (Map, Set, WeakMap, WeakSet)
- Summary of major ECMAScript features and upcoming changes
Asynchronous Programming
- Callbacks
- Promises
- Async/await
- Introduction to RxJS
Functional Programming
- Pure functions
- Immutability
- Referential transparency
- Recursion
- Higher-order functions
- Pattern matching
- Function composition, currying, and partial application
- Memoization
- Algebraic Data Types (ADTs)
- Introduction to type class concepts: Functors, Applicatives, Monads, Traversables
- Practical use of common monads: Maybe, Either, Validation, Reader
- Side effects and interacting with the external environment