From 913f37bc8690491d6057d6ebc18b1f36c7a8ab40 Mon Sep 17 00:00:00 2001 From: inryceu Date: Fri, 10 Jan 2025 21:07:40 +0200 Subject: [PATCH] my skills now --- Skills/Architecture.md | 32 ++++---- Skills/Async.md | 18 ++--- Skills/DotNET.md | 14 ++-- Skills/JavaScript.md | 124 ++++++++++++++--------------- Skills/NodeJS.md | 18 ++--- Skills/Paradigms.md | 64 +++++++-------- Skills/Programming.md | 176 ++++++++++++++++++++--------------------- 7 files changed, 223 insertions(+), 223 deletions(-) diff --git a/Skills/Architecture.md b/Skills/Architecture.md index 62dac42c..a961edf7 100644 --- a/Skills/Architecture.md +++ b/Skills/Architecture.md @@ -1,15 +1,15 @@ ## Architecture - Application structure - - Modularity - - Components - - Directories - - GRASP - - SOLID + - Modularity h + - Components h + - Directories u + - GRASP u + - SOLID u - GoF patterns - CQS - Leaking abstractions - - Multiparadigm code + - Multiparadigm code h - Contract programming - Platform-agnostic - Transport-agnostic @@ -18,13 +18,13 @@ - Cohesion - Coupling - Cyclomatic complexity - - Reliability - - Quality - - Availability - - Flexibility + - Reliability u + - Quality u + - Availability u + - Flexibility u - Law of Demeter (LoD) - Application architecture - - Isolation between layer + - Isolation between layer k - Domain-specific language (DSL) - System vs applied code - Multilayer approach @@ -45,7 +45,7 @@ - E-R data modeling - Entity-relationship diagram - IDEF1X - - UML + - UML u - Work breakdown structure - Budget estimation - Distributed systems @@ -53,9 +53,9 @@ - Load balancing - Gateways - On-premises - - IaaS - - PaaS - - SaaS + - IaaS h + - PaaS h + - SaaS h - FaaS clouds - Serverless - Vendor lock-in @@ -70,7 +70,7 @@ - Solution components - Risk assessment - Non Functional Requirements (NFR) - - Clouds + - Clouds h - BPMN - Low-code - No-code diff --git a/Skills/Async.md b/Skills/Async.md index 63e26c83..8535d1fe 100644 --- a/Skills/Async.md +++ b/Skills/Async.md @@ -1,10 +1,10 @@ ## Asynchronous programming - Theory - - Event loop + - Event loop h - `try..catch` - Non-blocking - - Async I/O + - Async I/O h - Thread pool - Pattern Reactor - CAS operations @@ -19,14 +19,14 @@ - Concurrent programming - Parallel programming - Actor Model - - Thread + - Thread h - Process - Async contracts - - Callbacks + - Callbacks k - Callback-last-error-first - Thenable - Promise - - Async/await + - Async/await k - Future - Deferred - Sync generator @@ -42,12 +42,12 @@ - Locks - Async adapters and utils - callbackify - - promisify + - promisify h - asyncify - Callbacks compose - Async compose - Async abstractions interfaces - - EventEmitter + - EventEmitter h - Observable/Observer - Readable - Writable @@ -59,7 +59,7 @@ - Mutex - Spin Lock - JavaScript & Node.js specific - - Timers + - Timers h - `setImmediate` - `nextTick` - AbortController @@ -71,7 +71,7 @@ - Callback hell - Promise hell - ref() and unref() - - Error handling in async code + - Error handling in async code h - Better stack traces with return await - JSON streaming serialization - AsyncLocalStorage diff --git a/Skills/DotNET.md b/Skills/DotNET.md index cc2b08e2..bee72c98 100644 --- a/Skills/DotNET.md +++ b/Skills/DotNET.md @@ -5,7 +5,7 @@ - Stateful and stateless services - Asynchronous and synchronous programming - Task-based asynchronous pattern - - Garbage collection in .NET + - Garbage collection in .NET h - .NET runtime versions and support - I/O-bound, CPU-bound tasks - Real-time applications with SignalR @@ -29,7 +29,7 @@ - Multithreading with Task Parallel Library (TPL) - Performance monitoring and diagnostics - APIs and Framework Features - - LINQ + - LINQ h - SignalR for real-time web functionality - High-performance RPC with `gRPC` - Security features (authentication, authorization) @@ -78,11 +78,11 @@ - Kubernetes for orchestration - Serverless computing - C# Development - - C# syntax and language fundamentals + - C# syntax and language fundamentals u - Advanced C# features (LINQ, async/await, delegates, events) - Reflection and dynamic programming - - Data types and collections - - Generics and extension methods + - Data types and collections u + - Generics and extension methods u - Attributes and annotations - Interoperability with other .NET languages - `F#` Development @@ -103,7 +103,7 @@ - Office automation and VSTO - Migration strategies for legacy VB6 applications - C++/CLI Development Development - - C++ syntax and language fundamentals + - C++ syntax and language fundamentals u - Interoperability between managed (.NET) and unmanaged (native) code - Memory management in mixed environments - `C++/CLI` syntax and usage @@ -113,7 +113,7 @@ - Developing custom .NET libraries in `C++` - Managing resource disposal and finalization - Creating and consuming DLLs (Dynamic Link Libraries) - - Working with Windows API + - Working with Windows API k - Migration of legacy `C++` code to .NET - Enhancing existing .NET applications with `C++/CLI` - Mobile development diff --git a/Skills/JavaScript.md b/Skills/JavaScript.md index 0ff8fc89..ecba5124 100644 --- a/Skills/JavaScript.md +++ b/Skills/JavaScript.md @@ -1,22 +1,22 @@ ## JavaScript - Language - - `Object` - - `Function` - - `Boolean` - - `Number` - - `BigInt` - - `String` - - `Symbol` - - `Infinity` - - `NaN` - - `undefined` - - `null` - - `this` - - `instanceof` + - `Object` u + - `Function` u + - `Boolean` u + - `Number` u + - `BigInt` k + - `String` u + - `Symbol` + - `Infinity` k + - `NaN` u + - `undefined` u + - `null` u + - `this` u + - `instanceof` h - `...spread` - - `...rest` - - `typeof` + - `...rest` u + - `typeof` u - Destructuring - Generators - Iterators @@ -28,27 +28,27 @@ - Async IIFE - `global` - `globalThis` - - `window` - - Getters and setters - - `__proto__` - - `prototype` - - Equality operators - - Logical operators + - `window` h + - Getters and setters k + - `__proto__` h + - `prototype` h + - Equality operators u + - Logical operators u - Logical Assignment - - Bitwise operators - - Ternary operator - - `void` + - Bitwise operators u + - Ternary operator u + - `void` u - `yield` - - `await` + - `await` k - Template literal - Strict mode - - Hoisting - - `delete` - - `in` - - `super` + - Hoisting k + - `delete` k + - `in` k + - `super` u - `eval` - `static` - - `Number.parseInt` + - `Number.parseInt` u - `Number.parseFloat` - Property descriptors - Sealing properties @@ -59,42 +59,42 @@ - Private class fields - Private class methods - Statements - - `if` - - `while` - - `do..while` - - `for` - - `for..in` - - `for..of` + - `if` u + - `while` u + - `do..while` u + - `for` u + - `for..in` u + - `for..of` u - `for await` - - `throw` - - `break` - - `continue` - - `import` - - `export` + - `throw` k + - `break` u + - `continue` u + - `import` u + - `export` u - `label` - - `try..catch` - - `switch` - - `class` - - `extends` + - `try..catch` k + - `switch` u + - `class` u + - `extends` u - `with` - - `new` + - `new` u - Functions - - Arrow function - - Async function + - Arrow function u + - Async function h - Function declaration - - Function expression - - Default parameters + - Function expression h + - Default parameters u - Functional object - `Function.prototype.call` - - `Function.prototype.bind` + - `Function.prototype.bind` h - `Function.prototype.apply` - `return` - Data structures - - `Array` - - `Map` - - `Set` + - `Array` u + - `Map` h + - `Set` u - `WeakMap` - - `WeakSet` + - `WeakSet` h - Typed arrays - Mixins - `Object.assign` @@ -104,19 +104,19 @@ - `Date` - `Math` - `Reflect` - - `Error` + - `Error` h - `Atomics` - - `JSON` + - `JSON` h - `WeakRef` - `FinalizationRegistry` - `Intl` - - `Promise` + - `Promise` h - `console` - - Timers + - Timers h - Infrastructure - V8 - - Node.js - - npm + - Node.js u + - npm u - prettier - - MDN + - MDN u - TC39 diff --git a/Skills/NodeJS.md b/Skills/NodeJS.md index bd891457..ae5f9454 100644 --- a/Skills/NodeJS.md +++ b/Skills/NodeJS.md @@ -1,24 +1,24 @@ ## Node.js and backend - Internals and concepts - - Strong and weak sides of node.js + - Strong and weak sides of node.js h - Stateful and stateless servers - Nonblocking I/O and blocking code - Event loop phases - Event loop microtasks and macrotasks - - Garbage collection + - Garbage collection h - Node.js LTS schedule - I/O-bound, CPU-bound, memory-bound tasks - Interactive applications (close to real-time) - Modularity, layers and dependencies - CommonJS modules - - ECMAScript modules + - ECMAScript modules h - Module `node:module` - Caching in CJS and ESM - Modules as singletons - Contexts and scripts module `node:vm` - - Dependencies: `npm`, `node_modules` - - Files `package.json`, `package-lock.json` + - Dependencies: `npm`, `node_modules` u + - Files `package.json`, `package-lock.json` k - Module-based permissions model - Isolation with modularity - Dependency injection @@ -35,7 +35,7 @@ - Internal API - Streams API - Web Streams API - - Crypto API + - Crypto API h - Password hashing with crypto.scrypt - Web Crypto API - File system API (sync and async) @@ -110,9 +110,9 @@ - CRUD - DTO - Error handling and debugging - - `Error` + - `Error` h - `error.cause` - - `error.code` + - `error.code` h - `error.message` - `error.stack` - `Error.captureStackTrace` @@ -121,7 +121,7 @@ - Heap dump - Debugging tools - Flame graph - - Memory leaks + - Memory leaks h - Resource leaks - Data race - Integrations and bindings diff --git a/Skills/Paradigms.md b/Skills/Paradigms.md index 91d5f7e5..c8cba6d4 100644 --- a/Skills/Paradigms.md +++ b/Skills/Paradigms.md @@ -1,13 +1,13 @@ ## Multi-paradigm programming - Theory - - Procedural programming - - Imperative programming - - Structured programming - - Non-structured programming - - Functional programming + - Procedural programming u + - Imperative programming u + - Structured programming u + - Non-structured programming k + - Functional programming u - Prototype-based programming - - Object-oriented programming + - Object-oriented programming u - Object-based programming - Generic programming - Concurrent computing @@ -17,7 +17,7 @@ - Functional-reactive (FRP) - Automata-based programming - Domain-specific languages - - Multi-paradigm programming + - Multi-paradigm programming k - Metaprogramming - Actor model - Lambda calculus @@ -27,27 +27,27 @@ - Anemic domain model - Class composition - OOP basics - - Constructor - - Operator `new` - - Static method - - Method + - Constructor u + - Operator `new` u + - Static method u + - Method u - Async method - - Getters, Setters - - Public fields - - Private fields - - Field declarations - - Inheritance - - Parent class - - Polymorphism - - Abstract class - - Interface - - Encapsulation + - Getters, Setters u + - Public fields u + - Private fields u + - Field declarations u + - Inheritance u + - Parent class u + - Polymorphism u + - Abstract class u + - Interface u + - Encapsulation u - Hidden class - Object form - - Instance + - Instance h - Introspection - Reflection - - The diamond problem + - The diamond problem e - GRASP - Information expert - Creator @@ -58,25 +58,25 @@ - Protected variations - Pure fabrication - SOLID - - Single-responsibility principle (SRP) + - Single-responsibility principle (SRP) u - Open–closed principle (OCP) - Liskov substitution principle (LSP) - Interface segregation principle (ISP) - Dependency inversion principle (DIP) - Patterns - - Singleton - - Factory Method - - Abstract Factory - - Adapter - - Observer + - Singleton h + - Factory Method h + - Abstract Factory h + - Adapter h + - Observer h - Strategy - - Facade + - Facade h - Proxy - Chain of Responsibility - Command - - Iterator + - Iterator h - State - - Bridge + - Bridge h - Builder - Prototype - Composite diff --git a/Skills/Programming.md b/Skills/Programming.md index e976b503..71ab90ea 100644 --- a/Skills/Programming.md +++ b/Skills/Programming.md @@ -1,29 +1,29 @@ ## Programming fundamental concepts - Concepts - - Model - - Modeling + - Model u + - Modeling u - Subject domain - - Algorithm - - Syntax + - Algorithm u + - Syntax u - Semantics - - Abstraction - - Paradigm - - Programm - - Programming paradigm - - Programming language + - Abstraction u + - Paradigm u + - Programm u + - Programming paradigm u + - Programming language u - Contract - Module - - Library - - Package + - Library u + - Package k - Component - - Framework + - Framework h - Platform - - Source code - - Object code - - Machine code + - Source code h + - Object code h + - Machine code h - Microcode - - Software engineering + - Software engineering h - Decomposition - Control flow - Data flow @@ -32,60 +32,60 @@ - Don't repeat yourself (DRY) - KISS principle - Syntax and concepts - - Value - - Identifier - - Variable - - Constant - - Scalar - - Literal - - Expression - - Heap - - Function - - Procedure - - Method - - Class - - Prototype - - Event + - Value u + - Identifier u + - Variable u + - Constant u + - Scalar u + - Literal u + - Expression u + - Heap u + - Function u + - Procedure u + - Method u + - Class u + - Prototype h + - Event h - Type - Flag - Lexical scope - Code block - - Conditions - - Loops + - Conditions u + - Loops u - Assignment - - Regular expression + - Regular expression u - Interface - - Namespaces + - Namespaces u - Call stack - - Naming conventions + - Naming conventions h - Coding conventions - - Camel case - - Snake case + - Camel case u + - Snake case u - Kebab case - Trailing commas - Return early - Fail-fast - Types - - Primitive types - - Reference types + - Primitive types u + - Reference types u - Type systems - - Strong typing - - Weak typing + - Strong typing u + - Weak typing u - Duck typing - - Static typing - - Dynamic typing + - Static typing u + - Dynamic typing u - Nominal typing - Structural typing - - Explicit typing + - Explicit typing u - Type inference - Covariance - Contravariance - Functions - Signature - - Argument - - Parameter + - Argument u + - Parameter u - Pure function - - Lambda expression + - Lambda expression h - Side effects - Closure - Partial application @@ -98,28 +98,28 @@ - Composition - Pipe - Memoize - - Wrapper + - Wrapper h - Functor - Monad - Monoid - Generator - Coroutine - Data structures - - Array - - Structure + - Array u + - Structure u - Record - - Enum + - Enum h - Instance - - Object - - Collection - - Set - - Hash table + - Object u + - Collection u + - Set u + - Hash table u - Linked list - Doubly list - Unrolled list - Circular list - - Queue - - Stack + - Queue u + - Stack u - Deque - Tree - Graph @@ -128,7 +128,7 @@ - Immutable state - Serialization - String parsing - - JSON + - JSON k - JSON5 - YAML - Networking @@ -142,18 +142,18 @@ - URN - URI - Process and tools - - Compiler - - Just-in-time compilation - - Ahead-of-time compilation + - Compiler k + - Just-in-time compilation k + - Ahead-of-time compilation k - Transpiler - Linter - Polyfill - Interpreter - Linker - - Dynamic linking - - Static linking + - Dynamic linking h + - Static linking h - Runtime - - Virtual machine + - Virtual machine u - Register-based VM - Stack-based VM - Containerization @@ -161,35 +161,35 @@ - Tracing - Garbage collection - Refactoring - - Code review - - Exception - - Unittesting - - git - - Github + - Code review h + - Exception u + - Unittesting h + - git h + - Github h - Docker - Kubernetes - GCC - LLVM - Antipatterns - - Magic numbers - - Hard code + - Magic numbers k + - Hard code k - Soft code - Cryptic code - Improbability factor - Accidental complexity - Action at a distance - - Spaghetti + - Spaghetti h - Silver bullet - Not invented here - Dead code - Unreachable code - - Duplicate code + - Duplicate code k - Premature optimization - Micro-optimization - - Nested loops - - Long method/function/procedure - - Long inheritance - - Large class/file + - Nested loops k + - Long method/function/procedure k + - Long inheritance k + - Large class/file k - Too many parameters - Pass-through parameters - Accumulate and fire @@ -203,7 +203,7 @@ - Yo-yo problem - Runtimes and virtual machines - Bytecode - - V8 + - V8 h - VJM - CLR - Mono @@ -212,28 +212,28 @@ - Drivers - Kernel - Ring - - Virtual memory - - File system - - Linux - - Unix + - Virtual memory k + - File system h + - Linux k + - Unix h - BSD - - MacOS - - Windows + - MacOS k + - Windows u - Real-time OS - Embedded OS - Standards - - ASCII - - Escape sequence + - ASCII u + - Escape sequence u - RFC - IETF - IANA - IEEE - Base64 - - ECMA + - ECMA h - ICANN - ISO - MIME - OWASP - - UTF-8 + - UTF-8 u - W3C - ODMG