| English | Русский | Українська |
- Abstractions as an essence of programming and engenering at all
- Variables and data types, scalar and reference, objects, arrays and data structures
- Functions including anonymous functions and lambdas, pure functions and side effects
- Superposition and Composition, partial application, currying and wrapping functions
- Higher order functions including callbacks and closures
- Iteration and loops
- String operations
- Collections: Set and WeakSet, Map and WeakMap
- Development tools and environment configuration
- Version control systems and working in groups
- Code style and code conventions
- Code benchmarking
- Project template
- Linked lists: singly, doubly, circular
- Trees: classification, implementation, traversion
- Graphs including directed graphs
- Functors, applicative functors and monads
- Caching and Memoization
- Mixins as decorators and nonlinear inheritance
- Iterators and generators
- Asynchronous execution, I/O and parallelism
- Events and EventEmitter
- Promises and chaining
- Serialization and deserialization
- Regular expressions
- Modularity and Dependency
- Inversion of Control
- Dependency Injection
- Inter-process Communication
- Sandboxing
- Multi-layer and Multi-tier Architecture
- Data Access Layer, Cursors and Object-Relational Mapping
- Application Servers, thin and thic clients
- Introspection, Reflection and Scaffolding
- Routing for HTTP Server
- Websocket Chat
- Interactive multi-user LiveTable
- Data Projection
- Imperative, non-structured, structured and procedural programming
- Functional programming
- Logic, declarative and automata-based programming
- Language-oriented programming and domain-specific languages
- Object-oriented and prototype-oriented programming
- Asynchronous, Reactive and Event-driven programming
- Probabilistic programming
- Data-driven programming
- Metaprogramming