diff --git a/Skills/Async.md b/Skills/Async.md index 63e26c83..f2ddebc9 100644 --- a/Skills/Async.md +++ b/Skills/Async.md @@ -1,8 +1,8 @@ ## Asynchronous programming - Theory - - Event loop - - `try..catch` + - Event loop * + - `try..catch` * - Non-blocking - Async I/O - Thread pool @@ -22,7 +22,7 @@ - Thread - Process - Async contracts - - Callbacks + - Callbacks * - Callback-last-error-first - Thenable - Promise @@ -59,17 +59,17 @@ - Mutex - Spin Lock - JavaScript & Node.js specific - - Timers + - Timers * - `setImmediate` - - `nextTick` + - `nextTick` * - AbortController - AbortSignal - Promise unhandled rejection - Promise double resolve - Atomics - High resolution clock - - Callback hell - - Promise hell + - Callback hell * + - Promise hell * - ref() and unref() - Error handling in async code - Better stack traces with return await @@ -79,10 +79,10 @@ - Techniques - Async.js library - RxJS library - - Promise.all + - Promise.all * - Promise.allSettled - Promise.race - - Promise.any + - Promise.any * - Web Locks API - IPC - Channel API diff --git a/Skills/JavaScript.md b/Skills/JavaScript.md index 0ff8fc89..673f4eeb 100644 --- a/Skills/JavaScript.md +++ b/Skills/JavaScript.md @@ -1,64 +1,64 @@ ## JavaScript -- Language - - `Object` - - `Function` - - `Boolean` - - `Number` - - `BigInt` - - `String` - - `Symbol` - - `Infinity` - - `NaN` - - `undefined` - - `null` - - `this` - - `instanceof` - - `...spread` - - `...rest` - - `typeof` +- Language * + - `Object` * + - `Function` * + - `Boolean` * + - `Number` * + - `BigInt` * + - `String` * + - `Symbol` * + - `Infinity` * + - `NaN` * + - `undefined` * + - `null` * + - `this` * + - `instanceof` * + - `...spread`ΠΌ + - `...rest` * + - `typeof` * - Destructuring - Generators - - Iterators - - Async generator - - Async iterator - - Chaining - - Optional chaining + - Iterators * + - Async generator * + - Async iterator * + - Chaining * + - Optional chaining * - IIFE - - Async IIFE + - Async IIFE * - `global` - `globalThis` - `window` - - Getters and setters + - Getters and setters * - `__proto__` - `prototype` - - Equality operators - - Logical operators + - Equality operators * + - Logical operators * - Logical Assignment - Bitwise operators - - Ternary operator + - Ternary operator * - `void` - `yield` - `await` - Template literal - Strict mode - - Hoisting - - `delete` - - `in` - - `super` - - `eval` - - `static` + - Hoisting * + - `delete` * + - `in` * + - `super` * + - `eval` * + - `static` * - `Number.parseInt` - `Number.parseFloat` - Property descriptors - Sealing properties - Freezing properties - Computed properties - - Instance class fields - - Static class fields - - Private class fields - - Private class methods -- Statements + - Instance class fields * + - Static class fields * + - Private class fields * + - Private class methods * +- Statements * - `if` - `while` - `do..while` @@ -79,17 +79,17 @@ - `with` - `new` - Functions - - Arrow function - - Async function - - Function declaration - - Function expression + - Arrow function * + - Async function * + - Function declaration * + - Function expression * - Default parameters - - Functional object - - `Function.prototype.call` - - `Function.prototype.bind` - - `Function.prototype.apply` - - `return` -- Data structures + - Functional object * + - `Function.prototype.call` * + - `Function.prototype.bind` * + - `Function.prototype.apply` * + - `return` * +- Data structures * - `Array` - `Map` - `Set` @@ -101,20 +101,20 @@ - Standard classes and namespaces - `Proxy` - `RegExp` - - `Date` - - `Math` + - `Date` * + - `Math` * - `Reflect` - - `Error` + - `Error` * - `Atomics` - `JSON` - `WeakRef` - `FinalizationRegistry` - `Intl` - - `Promise` + - `Promise` * - `console` - - Timers + - Timers * - Infrastructure - - V8 + - V8 * - Node.js - npm - prettier diff --git a/Skills/Paradigms.md b/Skills/Paradigms.md index 91d5f7e5..7b6c3c47 100644 --- a/Skills/Paradigms.md +++ b/Skills/Paradigms.md @@ -1,17 +1,17 @@ ## Multi-paradigm programming - Theory - - Procedural programming - - Imperative programming - - Structured programming + - Procedural programming * + - Imperative programming * + - Structured programming * - Non-structured programming - - Functional programming - - Prototype-based programming - - Object-oriented programming - - Object-based programming + - Functional programming * + - Prototype-based programming * + - Object-oriented programming * + - Object-based programming * - Generic programming - Concurrent computing - - Asynchronous programming + - Asynchronous programming * - Parallel programming - Reactive programming - Functional-reactive (FRP) @@ -25,25 +25,25 @@ - Information hiding - Aspect-oriented programming - Anemic domain model - - Class composition + - Class composition * - OOP basics - - Constructor - - Operator `new` - - Static method - - Method - - Async method - - Getters, Setters - - Public fields - - Private fields + - Constructor * + - Operator `new` * + - Static method * + - Method * + - Async method * + - Getters, Setters * + - Public fields * + - Private fields * - Field declarations - Inheritance - - Parent class - - Polymorphism + - Parent class * + - Polymorphism * - Abstract class - Interface - Encapsulation - Hidden class - - Object form + - Object form * - Instance - Introspection - Reflection diff --git a/Skills/Programming.md b/Skills/Programming.md index e976b503..a89e7cbc 100644 --- a/Skills/Programming.md +++ b/Skills/Programming.md @@ -4,34 +4,34 @@ - Model - Modeling - Subject domain - - Algorithm - - Syntax + - Algorithm * + - Syntax * - Semantics - Abstraction - - Paradigm - - Programm - - Programming paradigm - - Programming language + - Paradigm * + - Programm * + - Programming paradigm * + - Programming language * - Contract - Module - - Library - - Package - - Component - - Framework - - Platform - - Source code - - Object code - - Machine code - - Microcode - - Software engineering - - Decomposition + - Library * + - Package * + - Component * + - Framework * + - Platform * + - Source code * + - Object code * + - Machine code * + - Microcode * + - Software engineering * + - Decomposition * - Control flow - - Data flow - - Code reuse - - Defensive programming + - Data flow * + - Code reuse * + - Defensive programming * - Don't repeat yourself (DRY) - KISS principle -- Syntax and concepts +- Syntax and concepts * - Value - Identifier - Variable @@ -66,9 +66,9 @@ - Return early - Fail-fast - Types - - Primitive types - - Reference types - - Type systems + - Primitive types * + - Reference types * + - Type systems * - Strong typing - Weak typing - Duck typing @@ -81,45 +81,45 @@ - Covariance - Contravariance - Functions - - Signature - - Argument - - Parameter - - Pure function + - Signature * + - Argument * + - Parameter * + - Pure function * - Lambda expression - Side effects - - Closure - - Partial application + - Closure * + - Partial application * - Currying - - Higher order + - Higher order * - Recursion - Tail call optimisation - - Callback + - Callback * - Listener - - Composition + - Composition * - Pipe - Memoize - - Wrapper + - Wrapper * - Functor - Monad - Monoid - Generator - Coroutine - Data structures - - Array - - Structure + - Array * + - Structure * - Record - Enum - - Instance - - Object - - Collection - - Set - - Hash table - - Linked list + - Instance * + - Object * + - Collection * + - Set * + - Hash table * + - Linked list * - Doubly list - Unrolled list - Circular list - Queue - - Stack + - Stack * - Deque - Tree - Graph @@ -127,9 +127,9 @@ - Mutable state - Immutable state - Serialization - - String parsing - - JSON - - JSON5 + - String parsing * + - JSON * + - JSON5 * - YAML - Networking - DNS @@ -153,7 +153,7 @@ - Dynamic linking - Static linking - Runtime - - Virtual machine + - Virtual machine * - Register-based VM - Stack-based VM - Containerization @@ -164,8 +164,8 @@ - Code review - Exception - Unittesting - - git - - Github + - git * + - Github * - Docker - Kubernetes - GCC @@ -203,7 +203,7 @@ - Yo-yo problem - Runtimes and virtual machines - Bytecode - - V8 + - V8 * - VJM - CLR - Mono @@ -218,7 +218,7 @@ - Unix - BSD - MacOS - - Windows + - Windows * - Real-time OS - Embedded OS - Standards