diff --git a/Skills/JavaScript.md b/Skills/JavaScript.md index 0ff8fc89..9ed2c193 100644 --- a/Skills/JavaScript.md +++ b/Skills/JavaScript.md @@ -1,50 +1,50 @@ ## JavaScript -- Language - - `Object` - - `Function` - - `Boolean` - - `Number` - - `BigInt` - - `String` - - `Symbol` - - `Infinity` - - `NaN` - - `undefined` - - `null` - - `this` - - `instanceof` - - `...spread` - - `...rest` - - `typeof` - - Destructuring +- 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 + - Chaining ~ - Optional chaining - IIFE - Async IIFE - `global` - `globalThis` - `window` - - Getters and setters + - Getters and setters ~ - `__proto__` - `prototype` - - Equality operators - - Logical operators - - Logical Assignment - - Bitwise operators - - Ternary operator + - Equality operators + + - Logical operators + + - Logical Assignment + + - Bitwise operators ~ + - Ternary operator ~ - `void` - `yield` - `await` - Template literal - - Strict mode - - Hoisting - - `delete` - - `in` + - Strict mode + + - Hoisting + + - `delete` + + - `in` + - `super` - `eval` - `static` @@ -58,65 +58,65 @@ - Static class fields - Private class fields - Private class methods -- Statements - - `if` - - `while` - - `do..while` - - `for` - - `for..in` - - `for..of` - - `for await` - - `throw` - - `break` - - `continue` - - `import` - - `export` +- Statements + + - `if` + + - `while` + + - `do..while` + + - `for` + + - `for..in` + + - `for..of` + + - `for await` ~ + - `throw` + - `break` + + - `continue` + + - `import` + + - `export` + - `label` - - `try..catch` - - `switch` + - `try..catch` + + - `switch` + - `class` - `extends` - `with` - - `new` -- Functions - - Arrow function + - `new` + +- Functions + + - Arrow function + - Async function - - Function declaration - - Function expression - - Default parameters - - Functional object - - `Function.prototype.call` - - `Function.prototype.bind` - - `Function.prototype.apply` - - `return` -- Data structures - - `Array` - - `Map` - - `Set` + - Function declaration + + - Function expression + + - Default parameters + + - Functional object ~ + - `Function.prototype.call` ~ + - `Function.prototype.bind` ~ + - `Function.prototype.apply` ~ + - `return` + +- Data structures + + - `Array` + + - `Map` + + - `Set` + - `WeakMap` - `WeakSet` - Typed arrays - Mixins - `Object.assign` -- Standard classes and namespaces +- Standard classes and namespaces + - `Proxy` - `RegExp` - - `Date` - - `Math` + - `Date` + + - `Math` + - `Reflect` - - `Error` + - `Error` + - `Atomics` - - `JSON` + - `JSON` ~ - `WeakRef` - `FinalizationRegistry` - `Intl` - `Promise` - - `console` + - `console` + - Timers - Infrastructure - - V8 - - Node.js - - npm + - V8 + + - Node.js + + - npm + - prettier - MDN - TC39 diff --git a/Skills/Paradigms.md b/Skills/Paradigms.md index 91d5f7e5..096d13ac 100644 --- a/Skills/Paradigms.md +++ b/Skills/Paradigms.md @@ -1,13 +1,13 @@ ## Multi-paradigm programming -- Theory - - Procedural programming +- Theory + + - Procedural programming + - Imperative programming - - Structured programming + - Structured programming ~ - Non-structured programming - - Functional programming + - Functional programming ~ - Prototype-based programming - - Object-oriented programming + - Object-oriented programming + - Object-based programming - Generic programming - Concurrent computing @@ -26,13 +26,13 @@ - Aspect-oriented programming - Anemic domain model - Class composition -- OOP basics +- OOP basics ~ - Constructor - Operator `new` - Static method - - Method + - Method + - Async method - - Getters, Setters + - Getters, Setters + - Public fields - Private fields - Field declarations diff --git a/Skills/Programming.md b/Skills/Programming.md index e976b503..ae3122b5 100644 --- a/Skills/Programming.md +++ b/Skills/Programming.md @@ -4,98 +4,98 @@ - Model - Modeling - Subject domain - - Algorithm - - Syntax - - Semantics + - Algorithm + + - Syntax + + - Semantics + - Abstraction - Paradigm - - Programm + - Programm + - Programming paradigm - - Programming language - - Contract - - Module - - Library + - Programming language + + - Contract + + - Module + + - Library + - Package - Component - Framework - Platform - - Source code + - Source code + - Object code - - Machine code + - Machine code + - Microcode - - Software engineering + - Software engineering + - Decomposition - Control flow - Data flow - - Code reuse + - Code reuse + - Defensive programming - Don't repeat yourself (DRY) - KISS principle -- Syntax and concepts - - Value - - Identifier - - Variable - - Constant - - Scalar - - Literal - - Expression +- Syntax and concepts + + - Value + + - Identifier + + - Variable + + - Constant + + - Scalar + + - Literal + + - Expression + - Heap - - Function - - Procedure - - Method - - Class - - Prototype - - Event - - Type - - Flag - - Lexical scope - - Code block - - Conditions - - Loops - - Assignment - - Regular expression - - Interface - - Namespaces - - Call stack - - Naming conventions - - Coding conventions - - Camel case - - Snake case - - Kebab case - - Trailing commas - - Return early + - Function + + - Procedure + + - Method + + - Class ~ + - Prototype ~ + - Event ~ + - Type + + - Flag + + - Lexical scope ~ + - Code block + + - Conditions + + - Loops + + - Assignment + + - Regular expression ~ + - Interface ~ + - Namespaces + + - Call stack ~ + - Naming conventions + + - Coding conventions + + - Camel case + + - Snake case ~ + - Kebab case ~ + - Trailing commas+ + - Return early ~ - Fail-fast -- Types - - Primitive types - - Reference types +- Types + + - Primitive types + + - Reference types ~ - Type systems - - Strong typing - - Weak typing + - Strong typing + + - Weak typing + - Duck typing - Static typing - - Dynamic typing + - Dynamic typing + - Nominal typing - Structural typing - Explicit typing - Type inference - Covariance - Contravariance -- Functions - - Signature - - Argument - - Parameter - - Pure function - - Lambda expression - - Side effects - - Closure +- Functions + + - Signature + + - Argument + + - Parameter + + - Pure function + + - Lambda expression ~ + - Side effects + + - Closure + - Partial application - Currying - Higher order - - Recursion + - Recursion + - Tail call optimisation - - Callback + - Callback + - Listener - - Composition + - Composition + - Pipe - Memoize - Wrapper @@ -104,96 +104,96 @@ - Monoid - Generator - Coroutine -- Data structures - - Array - - Structure - - Record - - Enum - - Instance - - Object - - Collection - - Set - - Hash table - - Linked list - - Doubly list +- Data structures + + - Array + + - Structure + + - Record ~ + - Enum + + - Instance + + - Object + + - Collection ~ + - Set ~ + - Hash table + + - Linked list ~ + - Doubly list ~ - Unrolled list - - Circular list - - Queue - - Stack + - Circular list ~ + - Queue ~ + - Stack ~ - Deque - - Tree - - Graph - - Iterator - - Mutable state - - Immutable state - - Serialization - - String parsing + - Tree + + - Graph + + - Iterator + + - Mutable state ~ + - Immutable state ~ + - Serialization ~ + - String parsing + - JSON - JSON5 - YAML - Networking - - DNS + - DNS ~ - CDN - CORS - - IPv4 - - IPv6 + - IPv4 ~ + - IPv6 ~ - NAT - - URL + - URL + - URN - URI -- Process and tools - - Compiler +- Process and tools + + - Compiler + - Just-in-time compilation - Ahead-of-time compilation - Transpiler - - Linter - - Polyfill - - Interpreter + - Linter + + - Polyfill + - Interpreter + - Linker - Dynamic linking - Static linking - - Runtime - - Virtual machine + - Runtime + + - Virtual machine ~ - Register-based VM - Stack-based VM - Containerization - - Debugger - - Tracing + - Debugger + + - Tracing + - Garbage collection - Refactoring - - Code review - - Exception - - Unittesting - - git - - Github - - Docker + - Code review ~ + - Exception + + - Unittesting + + - git + + - Github + + - Docker ~ - Kubernetes - GCC - LLVM -- Antipatterns - - Magic numbers - - Hard code - - Soft code +- Antipatterns + + - Magic numbers + + - Hard code + + - Soft code + - Cryptic code - Improbability factor - Accidental complexity - Action at a distance - - Spaghetti - - Silver bullet + - Spaghetti + + - Silver bullet ~ - Not invented here - Dead code - Unreachable code - - Duplicate code + - Duplicate code + - Premature optimization - Micro-optimization - - Nested loops + - Nested loops + - Long method/function/procedure - Long inheritance - Large class/file - - Too many parameters + - Too many parameters + - Pass-through parameters - Accumulate and fire - - Use switch/case + - Use switch/case + - Temporary field - Handle object as instances and hashes at the same time - Use fields instead of arguments @@ -209,21 +209,21 @@ - Mono - Operating systems - Interrupts - - Drivers + - Drivers + - Kernel - Ring - - Virtual memory - - File system - - Linux - - Unix + - Virtual memory + + - File system + + - Linux + + - Unix + - BSD - MacOS - - Windows + - Windows + - Real-time OS - Embedded OS -- Standards - - ASCII - - Escape sequence +- Standards + + - ASCII + + - Escape sequence + - RFC - IETF - IANA @@ -234,6 +234,6 @@ - ISO - MIME - OWASP - - UTF-8 + - UTF-8 + - W3C - ODMG