From 41fcc308e9dab8d6270ac716754b178eaf864986 Mon Sep 17 00:00:00 2001 From: Artem Syvashenko Date: Wed, 15 Jan 2025 19:26:32 +0200 Subject: [PATCH 01/15] This is what I knew before KPI --- Skills/Programming.md | 238 +----------------------------------------- 1 file changed, 1 insertion(+), 237 deletions(-) diff --git a/Skills/Programming.md b/Skills/Programming.md index e976b503..b9396c7c 100644 --- a/Skills/Programming.md +++ b/Skills/Programming.md @@ -1,239 +1,3 @@ ## Programming fundamental concepts -- Concepts - - Model - - Modeling - - Subject domain - - Algorithm - - Syntax - - Semantics - - Abstraction - - Paradigm - - Programm - - Programming paradigm - - Programming language - - Contract - - Module - - Library - - Package - - Component - - Framework - - Platform - - Source code - - Object code - - Machine code - - Microcode - - Software engineering - - Decomposition - - Control flow - - Data flow - - Code reuse - - Defensive programming - - Don't repeat yourself (DRY) - - KISS principle -- 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 - - Fail-fast -- Types - - Primitive types - - Reference types - - Type systems - - Strong typing - - Weak typing - - Duck typing - - Static typing - - Dynamic typing - - Nominal typing - - Structural typing - - Explicit typing - - Type inference - - Covariance - - Contravariance -- Functions - - Signature - - Argument - - Parameter - - Pure function - - Lambda expression - - Side effects - - Closure - - Partial application - - Currying - - Higher order - - Recursion - - Tail call optimisation - - Callback - - Listener - - Composition - - Pipe - - Memoize - - Wrapper - - Functor - - Monad - - Monoid - - Generator - - Coroutine -- Data structures - - Array - - Structure - - Record - - Enum - - Instance - - Object - - Collection - - Set - - Hash table - - Linked list - - Doubly list - - Unrolled list - - Circular list - - Queue - - Stack - - Deque - - Tree - - Graph - - Iterator - - Mutable state - - Immutable state - - Serialization - - String parsing - - JSON - - JSON5 - - YAML -- Networking - - DNS - - CDN - - CORS - - IPv4 - - IPv6 - - NAT - - URL - - URN - - URI -- Process and tools - - Compiler - - Just-in-time compilation - - Ahead-of-time compilation - - Transpiler - - Linter - - Polyfill - - Interpreter - - Linker - - Dynamic linking - - Static linking - - Runtime - - Virtual machine - - Register-based VM - - Stack-based VM - - Containerization - - Debugger - - Tracing - - Garbage collection - - Refactoring - - Code review - - Exception - - Unittesting - - git - - Github - - Docker - - Kubernetes - - GCC - - LLVM -- Antipatterns - - Magic numbers - - Hard code - - Soft code - - Cryptic code - - Improbability factor - - Accidental complexity - - Action at a distance - - Spaghetti - - Silver bullet - - Not invented here - - Dead code - - Unreachable code - - Duplicate code - - Premature optimization - - Micro-optimization - - Nested loops - - Long method/function/procedure - - Long inheritance - - Large class/file - - Too many parameters - - Pass-through parameters - - Accumulate and fire - - Use switch/case - - Temporary field - - Handle object as instances and hashes at the same time - - Use fields instead of arguments - - Data clump - - Feature envy - - Monkey patch - - Yo-yo problem -- Runtimes and virtual machines - - Bytecode - - V8 - - VJM - - CLR - - Mono -- Operating systems - - Interrupts - - Drivers - - Kernel - - Ring - - Virtual memory - - File system - - Linux - - Unix - - BSD - - MacOS - - Windows - - Real-time OS - - Embedded OS -- Standards - - ASCII - - Escape sequence - - RFC - - IETF - - IANA - - IEEE - - Base64 - - ECMA - - ICANN - - ISO - - MIME - - OWASP - - UTF-8 - - W3C - - ODMG + From 1cde5c1f4199bb69c6d4ea204f8f5b5cbf565da1 Mon Sep 17 00:00:00 2001 From: Artem Syvashenko Date: Wed, 15 Jan 2025 19:26:49 +0200 Subject: [PATCH 02/15] This is what I knew before KPI --- Skills/Paradigms.md | 90 +-------------------------------------------- 1 file changed, 1 insertion(+), 89 deletions(-) diff --git a/Skills/Paradigms.md b/Skills/Paradigms.md index 91d5f7e5..5dcc5dfb 100644 --- a/Skills/Paradigms.md +++ b/Skills/Paradigms.md @@ -1,91 +1,3 @@ ## Multi-paradigm programming -- Theory - - Procedural programming - - Imperative programming - - Structured programming - - Non-structured programming - - Functional programming - - Prototype-based programming - - Object-oriented programming - - Object-based programming - - Generic programming - - Concurrent computing - - Asynchronous programming - - Parallel programming - - Reactive programming - - Functional-reactive (FRP) - - Automata-based programming - - Domain-specific languages - - Multi-paradigm programming - - Metaprogramming - - Actor model - - Lambda calculus - - Black box - - Information hiding - - Aspect-oriented programming - - Anemic domain model - - Class composition -- OOP basics - - Constructor - - Operator `new` - - Static method - - Method - - Async method - - Getters, Setters - - Public fields - - Private fields - - Field declarations - - Inheritance - - Parent class - - Polymorphism - - Abstract class - - Interface - - Encapsulation - - Hidden class - - Object form - - Instance - - Introspection - - Reflection - - The diamond problem -- GRASP - - Information expert - - Creator - - Controller - - Indirection - - Low coupling - - High cohesion - - Protected variations - - Pure fabrication -- SOLID - - Single-responsibility principle (SRP) - - Open–closed principle (OCP) - - Liskov substitution principle (LSP) - - Interface segregation principle (ISP) - - Dependency inversion principle (DIP) -- Patterns - - Singleton - - Factory Method - - Abstract Factory - - Adapter - - Observer - - Strategy - - Facade - - Proxy - - Chain of Responsibility - - Command - - Iterator - - State - - Bridge - - Builder - - Prototype - - Composite - - Decorator - - Flyweight - - Mediator - - Memento - - Template Method - - Visitor - - Reactor - - Active object - - Delegation + From 1878cc4df1f3eab66d122b140232ecb890c4d245 Mon Sep 17 00:00:00 2001 From: Artem Syvashenko Date: Wed, 15 Jan 2025 19:26:59 +0200 Subject: [PATCH 03/15] This is what I knew before KPI --- Skills/NodeJS.md | 141 ----------------------------------------------- 1 file changed, 141 deletions(-) diff --git a/Skills/NodeJS.md b/Skills/NodeJS.md index bd891457..0b2c1854 100644 --- a/Skills/NodeJS.md +++ b/Skills/NodeJS.md @@ -1,143 +1,2 @@ ## Node.js and backend -- Internals and concepts - - Strong and weak sides of node.js - - Stateful and stateless servers - - Nonblocking I/O and blocking code - - Event loop phases - - Event loop microtasks and macrotasks - - Garbage collection - - 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 - - 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` - - Module-based permissions model - - Isolation with modularity - - Dependency injection - - DI containers - - Coupling and cohesion - - Framework agnostic approach -- Environment - - Command line arguments - - Node.js CLI - - Process-based permissions - - Graceful shutdown - - Clustering - - Watch filesystem changes with --watch -- Internal API - - Streams API - - Web Streams API - - Crypto API - - Password hashing with crypto.scrypt - - Web Crypto API - - File system API (sync and async) - - Copy folder recursively - - Worker threads - - Performance hooks - - Native fetch and nodejs/undici - - async_hooks - - AsyncLocalStorage - - AsyncResource - - Deprecated domain API - - Node.js single executable - - SharedArrayBuffer - - Module `node:worker_threads` - - Module `node:child_process` - - MessageChannel, MessagePort - - BroadcastChannel - - Generating crypto random UUID - - Module `node:url` vs `new URL` - - Module `node:assert` - - Internationalization - - Blob, File, Buffer, module `node:buffer` - - Module `node:zlib` -- Network - - Endpoint throttling - - ALPN - - SNI callback - - SSL certificates - - Protocol agnostic approach - - Fetch API - - IncomingMessage - - HTTP(S) - - TCP/SSL - - UDP - - TLS - - Websocket - - SSE - - HTTP/3 (QUIC) - - Long polling - - REST - - RPC - - Routing - - DoS - - DDoS - - XSS - - Path traversal - - CSRF - - DNS - - SQL injection - - noDelay - - keep-alive - - IP sticky sessions -- Technique and tools - - Native test runner - - Logging - - Application configuring - - Testing - - CI/CD - - Readable - - Writable - - Transform - - Back pressure - - Buffer - - Console - - Inspector -- Data access - - Data access layer - - Repository - - Active record - - Query builder - - Object-Relational Mapping - - CRUD - - DTO -- Error handling and debugging - - `Error` - - `error.cause` - - `error.code` - - `error.message` - - `error.stack` - - `Error.captureStackTrace` - - How to avoid mixins - - Uncaught exceptions - - Heap dump - - Debugging tools - - Flame graph - - Memory leaks - - Resource leaks - - Data race -- Integrations and bindings - - Native addons - - `C` and `C++` addons - - `Rust` addons - - `Zig` addons - - NAN (Native Abstractions for Node.js) - - Node-API (formerly N-API) - - NAPI `C` and `C++` - - NAPI `Rust` - - NAPI `Zig` - - Webassembly `WAT` - - Webassembly `C` and `C++` - - Webassembly `Rust` - - Webassembly `Zig` - - Webassembly `AssemblyScript` - - Shared memory - - V8 binary serialization From 8ea6f1d914a00dc225df2dd06aabf771ef741167 Mon Sep 17 00:00:00 2001 From: Artem Syvashenko Date: Wed, 15 Jan 2025 19:27:10 +0200 Subject: [PATCH 04/15] This is what I knew before KPI --- Skills/JavaScript.md | 120 ------------------------------------------- 1 file changed, 120 deletions(-) diff --git a/Skills/JavaScript.md b/Skills/JavaScript.md index 0ff8fc89..a1d193a0 100644 --- a/Skills/JavaScript.md +++ b/Skills/JavaScript.md @@ -1,122 +1,2 @@ ## JavaScript -- 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 - - IIFE - - Async IIFE - - `global` - - `globalThis` - - `window` - - Getters and setters - - `__proto__` - - `prototype` - - Equality operators - - Logical operators - - Logical Assignment - - Bitwise operators - - Ternary operator - - `void` - - `yield` - - `await` - - Template literal - - Strict mode - - 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 - - `if` - - `while` - - `do..while` - - `for` - - `for..in` - - `for..of` - - `for await` - - `throw` - - `break` - - `continue` - - `import` - - `export` - - `label` - - `try..catch` - - `switch` - - `class` - - `extends` - - `with` - - `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` - - `WeakMap` - - `WeakSet` - - Typed arrays - - Mixins - - `Object.assign` -- Standard classes and namespaces - - `Proxy` - - `RegExp` - - `Date` - - `Math` - - `Reflect` - - `Error` - - `Atomics` - - `JSON` - - `WeakRef` - - `FinalizationRegistry` - - `Intl` - - `Promise` - - `console` - - Timers -- Infrastructure - - V8 - - Node.js - - npm - - prettier - - MDN - - TC39 From b4f6160a78760526d6b0d524c3b0b8df4d78ec7a Mon Sep 17 00:00:00 2001 From: Artem Syvashenko Date: Wed, 15 Jan 2025 19:28:58 +0200 Subject: [PATCH 05/15] This is what I knew before KPI --- Skills/DotNET.md | 126 ----------------------------------------------- 1 file changed, 126 deletions(-) diff --git a/Skills/DotNET.md b/Skills/DotNET.md index cc2b08e2..c146db17 100644 --- a/Skills/DotNET.md +++ b/Skills/DotNET.md @@ -1,128 +1,2 @@ ## .NET -- Core Concepts and Internals - - Strengths and weaknesses of .NET - - Stateful and stateless services - - Asynchronous and synchronous programming - - Task-based asynchronous pattern - - Garbage collection in .NET - - .NET runtime versions and support - - I/O-bound, CPU-bound tasks - - Real-time applications with SignalR -- Modularity and Dependencies - - .NET assemblies - - NuGet package management - - Dependency management in .NET - - Dependency Injection in .NET - - Inversion of Control (IoC) - - IoC containers in .NET - - Middleware and pipeline configuration - - Modular applications -- Environment and Tools - - Command line interface (CLI) tools - - .NET CLI - - Windows Services and Linux Daemons - - Hosting and Deployment models - - IIS and Kestrel web server - - Environment variables and configuration - - File system I/O operations - - Multithreading with Task Parallel Library (TPL) - - Performance monitoring and diagnostics -- APIs and Framework Features - - LINQ - - SignalR for real-time web functionality - - High-performance RPC with `gRPC` - - Security features (authentication, authorization) - - Cryptography and secure data handling - - Memory and resource management - - Globalization and localization -- Network and Protocols - - HTTP/HTTPS support - - WebSockets for real-time communication - - TCP/UDP networking - - SSL/TLS for secure connections - - Efficient network communication with `gRPC` - - HTTP/2 and HTTP/3 support - - Network security (DDoS, XSS, CSRF prevention) - - Serialization and deserialization (JSON, XML) -- Testing and Debugging - - Unit testing with frameworks like xUnit, NUnit - - Integration testing - - Logging and tracing - - Application monitoring and telemetry - - Debugging tools and strategies - - Performance profiling and analysis -- Data Access and ORM - - Entity Framework Core - - Dapper - - ADO.NET for database access - - Data modeling and migration - - Repository and Unit of Work patterns - - CRUD operations -- Error Handling and Debugging - - Exception handling in .NET - - Custom error classes - - Debugging and diagnostic tools - - Profiling and performance analysis - - Memory leak detection -- Integration and Extensibility - - Interoperability with native libraries - - P/Invoke for calling `C/C++` libraries - - COM interop - - .NET for `WebAssembly` - - Custom middleware development -- Cloud and Microservices - - Integration with cloud platforms (Azure, AWS) - - Microservices architecture - - Containerization with Docker - - Kubernetes for orchestration - - Serverless computing -- C# Development - - C# syntax and language fundamentals - - Advanced C# features (LINQ, async/await, delegates, events) - - Reflection and dynamic programming - - Data types and collections - - Generics and extension methods - - Attributes and annotations - - Interoperability with other .NET languages -- `F#` Development - - `F#` syntax and language fundamentals - - Immutable data structures - - Pattern matching and discriminated unions - - Functional-first design and development - - Type providers and metaprogramming - - Asynchronous and parallel programming - - Using .NET libraries in `F#` - - Building web applications with F# and Giraffe or Saturn - - Testing with `FsUnit` -- VB.NET Development - - VB.NET syntax and language fundamentals - - Event-driven programming - - COM interop and P/Invoke - - XML and file handling - - Office automation and VSTO - - Migration strategies for legacy VB6 applications -- C++/CLI Development Development - - C++ syntax and language fundamentals - - Interoperability between managed (.NET) and unmanaged (native) code - - Memory management in mixed environments - - `C++/CLI` syntax and usage - - Accessing .NET Framework classes in `C++` - - Writing performance-critical modules - - Interfacing with native libraries and APIs - - Developing custom .NET libraries in `C++` - - Managing resource disposal and finalization - - Creating and consuming DLLs (Dynamic Link Libraries) - - Working with Windows API - - Migration of legacy `C++` code to .NET - - Enhancing existing .NET applications with `C++/CLI` -- Mobile development - - .NET MAUI / Xamarin - - Interoperability between managed code and iOS/Android API -- Game development - - Unity -- Web development - - ASP.NET Core - - Blazor - - Razor Syntax - - RESTful API development From 0b3659004f322ac0eaebac604e0c29fd5a95ecd1 Mon Sep 17 00:00:00 2001 From: Artem Syvashenko Date: Wed, 15 Jan 2025 19:30:33 +0200 Subject: [PATCH 06/15] This is what I knew before KPI --- Skills/Databases.md | 92 --------------------------------------------- 1 file changed, 92 deletions(-) diff --git a/Skills/Databases.md b/Skills/Databases.md index c499feb1..47e48333 100644 --- a/Skills/Databases.md +++ b/Skills/Databases.md @@ -1,94 +1,2 @@ ## Databases -- Theory and concepts - - Data types - - Performance tuning - - Migrations - - Schema versioning - - Backup and recovery - - Database scalability - - Relational databases - - Key-value store - - Tuple store - - Graph databases - - Object databases - - Column databases - - Navigational databases - - Hierarchical databases - - In-memory databases - - Inverted index - - Data control language (DCL) - - Data definition language (DDL) - - Data manipulation language (DML) - - Data query language (DQL) -- Relational - - Entity-Relationship Diagram - - Normal forms - - Indexing - - Primary keys - - Foreign keys - - Transactions - - Views - - Subqueries - - Stored procedures - - SQL functions - - Materialized views - - Replications - - Virtualization -- SQL - - `SELECT` - - `INSERT` - - `UPDATE` - - `DELETE` - - `LIMIT` - - `OFFSET` - - `ORDER BY` - - `GROUP BY` - - `HAVING` - - `EXISTS` - - `JOIN` - - `INNER JOIN` - - `LEFT JOIN` - - `RIGHT JOIN` - - `UNION` - - `DISTINCT` - - `WHERE` - - `LIKE` - - `IN` - - `BETWEEN` - - `CREATE TABLE` - - `ALTER TABLE` - - `DROP TABLE` - - `PRIMARY KEY` - - `FOREIGN KEY` - - `CHECK` - - `DEFAULT` - - `INDEX` - - `UNIQUE` - - `GRANT` - - `REVOKE` - - `DENY` - - `EXPLAIN` -- Engines - - PostgreSQL - - Oracle - - MySQL - - MariaDB - - MS SQL Server - - Redis - - Rabbit - - MongoDB - - Memcached - - Riak - - DB2 - - SQLite - - DynamoDB - - Firebase -- Data engineering - - Data warehousing - - Business intelligence - - Big data - - Data analysis - - AI tools - - Cloud databases - - Data Visualization From eaba79341fde1129c732bbdec3f33949e2d41df4 Mon Sep 17 00:00:00 2001 From: Artem Syvashenko Date: Wed, 15 Jan 2025 19:30:49 +0200 Subject: [PATCH 07/15] This is what I knew before KPI --- Skills/Async.md | 87 ------------------------------------------------- 1 file changed, 87 deletions(-) diff --git a/Skills/Async.md b/Skills/Async.md index 63e26c83..e23ace65 100644 --- a/Skills/Async.md +++ b/Skills/Async.md @@ -1,89 +1,2 @@ ## Asynchronous programming -- Theory - - Event loop - - `try..catch` - - Non-blocking - - Async I/O - - Thread pool - - Pattern Reactor - - CAS operations - - epoll - - kqueue - - Completion ports - - Event ports - - libuv - - Race conditions - - Dead locks - - Live locks - - Concurrent programming - - Parallel programming - - Actor Model - - Thread - - Process -- Async contracts - - Callbacks - - Callback-last-error-first - - Thenable - - Promise - - Async/await - - Future - - Deferred - - Sync generator - - Async Generator - - Async Iterator - - Event - - Coroutine - - Goroutine - - Signal - - Stream - - Chain of responsibility - - Middleware - - Locks -- Async adapters and utils - - callbackify - - promisify - - asyncify - - Callbacks compose - - Async compose -- Async abstractions interfaces - - EventEmitter - - Observable/Observer - - Readable - - Writable - - Transform - - Async Pool - - Async Queue - - Async Collector - - Semaphore - - Mutex - - Spin Lock -- JavaScript & Node.js specific - - Timers - - `setImmediate` - - `nextTick` - - AbortController - - AbortSignal - - Promise unhandled rejection - - Promise double resolve - - Atomics - - High resolution clock - - Callback hell - - Promise hell - - ref() and unref() - - Error handling in async code - - Better stack traces with return await - - JSON streaming serialization - - AsyncLocalStorage - - AsyncResource -- Techniques - - Async.js library - - RxJS library - - Promise.all - - Promise.allSettled - - Promise.race - - Promise.any - - Web Locks API - - IPC - - Channel API - - Revealing constructor From 7ee6fc89ea00ac1adc41ef7a2e6fe34acaa1314b Mon Sep 17 00:00:00 2001 From: Artem Syvashenko Date: Wed, 15 Jan 2025 19:31:00 +0200 Subject: [PATCH 08/15] This is what I knew before KPI --- Skills/Architecture.md | 103 ----------------------------------------- 1 file changed, 103 deletions(-) diff --git a/Skills/Architecture.md b/Skills/Architecture.md index 1de42519..f97b422f 100644 --- a/Skills/Architecture.md +++ b/Skills/Architecture.md @@ -1,105 +1,2 @@ ## Architecture -- Application structure - - Separation of concerns - - Inversion of Control - - Dependency Injection - - GoF Creational - - GoF Structural - - GoF Behavioral - - GRASP - - SOLID - - CQS - - Modularity - - Subsystems - - Directories - - Leaking abstractions - - Multiparadigm code - - Contract programming - - Platform-agnostic - - Transport-agnostic - - Framework-agnostic - - Code coverage - - Cohesion - - Coupling - - Cyclomatic complexity - - Reliability - - Quality - - Availability - - Flexibility - - Law of Demeter (LoD) -- Application architecture - - Isolation between layer - - Domain-specific language (DSL) - - System vs applied code - - Multilayer approach - - Hexagonal architecture - - Separation of concerns (SoC) - - Metaprogramming - - Inversion of control (IoC) - - Dependency injection (DI) - - Clean architecture - - Domain-driven design (DDD) - - Pub/sub - - Message brocker - - Agent - - Service locator - - Message Queue (MQ) - - CQRS - - Event sourcing - - E-R data modeling - - Entity-relationship diagram - - IDEF1X - - UML - - Work breakdown structure - - Budget estimation - - Distributed systems - - High-intensive computing - - Load balancing - - Gateways - - On-premises - - IaaS - - PaaS - - SaaS - - FaaS clouds - - Serverless - - Vendor lock-in - - Bus factor -- Solution architecture - - A software requirements specification (SRS) - - Solution visions - - Solution capabilities - - System design - - Process modelling - - Data modelling - - Solution components - - Risk assessment - - Non Functional Requirements (NFR) - - Clouds - - BPMN - - Low-code - - No-code - - Metric - - Metric abuse - - ACID - - CAP theorem - - Single source of truth (SSOT) -- Enterprise architecture - - Understanding business needs - - Enterprise strategy - - Integration with subsystems - - Enterprise vision - - Enterprise capabilities - - Project scope - - Enterprise service bus - - Service-oriented architecture - - Microservices - - Process choreography - - Service orchestration - - Data warehouse - - Business Intelligence - - OLAP - - OLTP - - Conways Law - - Quality assurance - - Engineering Hygiene From 6de606cf1dfe7364c93b173ff55b55c587048410 Mon Sep 17 00:00:00 2001 From: Artem Syvashenko Date: Wed, 15 Jan 2025 20:05:24 +0200 Subject: [PATCH 09/15] What I learned in KPI --- Skills/JavaScript.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Skills/JavaScript.md b/Skills/JavaScript.md index a1d193a0..4251a029 100644 --- a/Skills/JavaScript.md +++ b/Skills/JavaScript.md @@ -1,2 +1,25 @@ ## JavaScript +Language +Object +Function +Boolean +Number +BigInt +String +Symbol +Infinity +undefined +null +Statements +if +while +do..while +for +for..in +throw +break +continue +import +export +switch \ No newline at end of file From f18caaad56fadf3bcb3926c428efbb657a09d962 Mon Sep 17 00:00:00 2001 From: Artem Syvashenko Date: Wed, 15 Jan 2025 20:05:42 +0200 Subject: [PATCH 10/15] What I learned in KPI --- Skills/Programming.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/Skills/Programming.md b/Skills/Programming.md index b9396c7c..33b34086 100644 --- a/Skills/Programming.md +++ b/Skills/Programming.md @@ -1,3 +1,37 @@ ## Programming fundamental concepts +Concepts +Model +Algorithm +Syntax +Abstraction +Paradigm +Programm +Contract +Module +Library +Package +Component +Framework +Source code +Machine code +Software engineering +Decomposition +Syntax and concepts +Value +Identifier +Variable +Constant +Scalar +Expression +Heap +Function +Procedure +Method +Class +Prototype +Event +Type +Flag +Code block \ No newline at end of file From c6503d8c610f0669894d2c4209ec5565c4ac020c Mon Sep 17 00:00:00 2001 From: Artem Syvashenko Date: Wed, 15 Jan 2025 20:50:52 +0200 Subject: [PATCH 11/15] This is what I knew before KPI --- Skills/JavaScript.md | 23 ----------------------- Skills/Programming.md | 35 ----------------------------------- 2 files changed, 58 deletions(-) diff --git a/Skills/JavaScript.md b/Skills/JavaScript.md index 4251a029..a1d193a0 100644 --- a/Skills/JavaScript.md +++ b/Skills/JavaScript.md @@ -1,25 +1,2 @@ ## JavaScript -Language -Object -Function -Boolean -Number -BigInt -String -Symbol -Infinity -undefined -null -Statements -if -while -do..while -for -for..in -throw -break -continue -import -export -switch \ No newline at end of file diff --git a/Skills/Programming.md b/Skills/Programming.md index 33b34086..dbb28c6f 100644 --- a/Skills/Programming.md +++ b/Skills/Programming.md @@ -1,37 +1,2 @@ ## Programming fundamental concepts - -Concepts -Model -Algorithm -Syntax -Abstraction -Paradigm -Programm -Contract -Module -Library -Package -Component -Framework -Source code -Machine code -Software engineering -Decomposition -Syntax and concepts -Value -Identifier -Variable -Constant -Scalar -Expression -Heap -Function -Procedure -Method -Class -Prototype -Event -Type -Flag -Code block \ No newline at end of file From d95f06a6e6242c054033581d367f80ce4b22c6f2 Mon Sep 17 00:00:00 2001 From: Artem Syvashenko Date: Wed, 15 Jan 2025 21:09:06 +0200 Subject: [PATCH 12/15] What I learned in KPI --- Skills/Architecture.md | 10 +++++ Skills/DotNET.md | 2 - Skills/JavaScript.md | 64 ++++++++++++++++++++++++++++ Skills/NodeJS.md | 2 - Skills/Programming.md | 94 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 168 insertions(+), 4 deletions(-) diff --git a/Skills/Architecture.md b/Skills/Architecture.md index f97b422f..fe578d1b 100644 --- a/Skills/Architecture.md +++ b/Skills/Architecture.md @@ -1,2 +1,12 @@ ## Architecture +- Application structure + - Reliability + - Modularity + - Flexibility +- Application architecture + - Inversion of control (IoC) + - Dependency injection (DI) + - Pub/sub +- Solution architecture +- Enterprise architecture diff --git a/Skills/DotNET.md b/Skills/DotNET.md index c146db17..e69de29b 100644 --- a/Skills/DotNET.md +++ b/Skills/DotNET.md @@ -1,2 +0,0 @@ -## .NET - diff --git a/Skills/JavaScript.md b/Skills/JavaScript.md index a1d193a0..c247c80d 100644 --- a/Skills/JavaScript.md +++ b/Skills/JavaScript.md @@ -1,2 +1,66 @@ ## JavaScript +- Language + - `Object` + - `Function` + - `Boolean` + - `Number` + - `BigInt` + - `String` + - `Symbol` + - `Infinity` + - `undefined` + - `null` + - `this` + - `instanceof` + - `typeof` + - Destructuring + - Iterators + - Chaining + - `window` + - Getters and setters + - Equality operators + - Logical operators + - Logical Assignment + - Bitwise operators + - Ternary operator + - `await` + - Strict mode + - `super` + - `static` + - `Number.parseInt` + - `Number.parseFloat` + - Static class fields + - Private class fields + - Private class methods +- Statements + - `if` + - `while` + - `do..while` + - `for` + - `for..in` + - `for..of` + - `throw` + - `break` + - `continue` + - `import` + - `export` + - `try..catch` + - `switch` + - `class` + - `extends` + - `new` +- Functions + - Arrow function + - Async function + - Function declaration + - Default parameters + - `return` +- Data structures + - `Array` + - `Map` + - `Set` +- Standard classes and namespaces +- Infrastructure + - npm + - prettier diff --git a/Skills/NodeJS.md b/Skills/NodeJS.md index 0b2c1854..e69de29b 100644 --- a/Skills/NodeJS.md +++ b/Skills/NodeJS.md @@ -1,2 +0,0 @@ -## Node.js and backend - diff --git a/Skills/Programming.md b/Skills/Programming.md index dbb28c6f..e0935946 100644 --- a/Skills/Programming.md +++ b/Skills/Programming.md @@ -1,2 +1,96 @@ ## Programming fundamental concepts +- Concepts + - Model + - Algorithm + - Syntax + - Abstraction + - Paradigm + - Programm + - Contract + - Module + - Library + - Package + - Component + - Framework + - Source code + - Machine code + - Software engineering + - Decomposition + - Don't repeat yourself (DRY) + - KISS principle +- Syntax and concepts + - Value + - Identifier + - Variable + - Constant + - Scalar + - Expression + - Heap + - Function + - Procedure + - Method + - Class + - Prototype + - Event + - Type + - Flag + - Code block + - Conditions + - Loops + - Interface + - Call stack + - Naming conventions + - Camel case + - Snake case +- Types + - Primitive types + - Reference types + - Static typing + - Dynamic typing +- Functions + - Signature + - Argument + - Parameter + - Lambda expression + - Recursion + - Callback + - Listener + - Generator +- Data structures + - Array + - Enum + - Instance + - Object + - Collection + - Set + - Hash table + - Linked list + - Queue + - Stack + - Graph + - Iterator + - Mutable state + - Immutable state + - Serialization + - String parsing + - JSON +- Networking + - URL +- Process and tools + - Debugger + - Garbage collection + - Refactoring + - Exception + - git + - Github +- Antipatterns + - Magic numbers + - Hard code +- Runtimes and virtual machines +- Operating systems + - Windows +- Standards + - Base64 + - UTF-8 + \ No newline at end of file From b2dfcd34b7b39324b8cb225d7247fb36bce0ae66 Mon Sep 17 00:00:00 2001 From: Artem Syvashenko Date: Wed, 15 Jan 2025 21:09:19 +0200 Subject: [PATCH 13/15] What I learned in KPI --- Skills/Programming.md | 56 +------------------------------------------ 1 file changed, 1 insertion(+), 55 deletions(-) diff --git a/Skills/Programming.md b/Skills/Programming.md index e0935946..aee2a081 100644 --- a/Skills/Programming.md +++ b/Skills/Programming.md @@ -16,9 +16,6 @@ - Source code - Machine code - Software engineering - - Decomposition - - Don't repeat yourself (DRY) - - KISS principle - Syntax and concepts - Value - Identifier @@ -36,61 +33,10 @@ - Type - Flag - Code block - - Conditions - - Loops - - Interface - - Call stack - - Naming conventions - - Camel case - - Snake case -- Types - - Primitive types - - Reference types - - Static typing - - Dynamic typing - Functions - Signature - Argument - Parameter - Lambda expression - Recursion - - Callback - - Listener - - Generator -- Data structures - - Array - - Enum - - Instance - - Object - - Collection - - Set - - Hash table - - Linked list - - Queue - - Stack - - Graph - - Iterator - - Mutable state - - Immutable state - - Serialization - - String parsing - - JSON -- Networking - - URL -- Process and tools - - Debugger - - Garbage collection - - Refactoring - - Exception - - git - - Github -- Antipatterns - - Magic numbers - - Hard code -- Runtimes and virtual machines -- Operating systems - - Windows -- Standards - - Base64 - - UTF-8 - \ No newline at end of file + From 6a258dc9835e906abeb7c11d54c5fe44a59914dc Mon Sep 17 00:00:00 2001 From: Artem Syvashenko Date: Wed, 15 Jan 2025 21:09:49 +0200 Subject: [PATCH 14/15] What I learned in KPI --- Skills/JavaScript.md | 43 +------------------------------------------ 1 file changed, 1 insertion(+), 42 deletions(-) diff --git a/Skills/JavaScript.md b/Skills/JavaScript.md index c247c80d..87beaee0 100644 --- a/Skills/JavaScript.md +++ b/Skills/JavaScript.md @@ -11,56 +11,15 @@ - `Infinity` - `undefined` - `null` - - `this` - - `instanceof` - - `typeof` - - Destructuring - - Iterators - - Chaining - - `window` - - Getters and setters - - Equality operators - - Logical operators - - Logical Assignment - - Bitwise operators - - Ternary operator - - `await` - - Strict mode - - `super` - - `static` - - `Number.parseInt` - - `Number.parseFloat` - - Static class fields - - Private class fields - - Private class methods - Statements - `if` - `while` - `do..while` - `for` - `for..in` - - `for..of` - - `throw` - `break` - `continue` - `import` - `export` - - `try..catch` - `switch` - - `class` - - `extends` - - `new` -- Functions - - Arrow function - - Async function - - Function declaration - - Default parameters - - `return` -- Data structures - - `Array` - - `Map` - - `Set` -- Standard classes and namespaces -- Infrastructure - - npm - - prettier + From f8c115cc521506299eafbbd760ffbb67ee118ed9 Mon Sep 17 00:00:00 2001 From: Artem Syvashenko Date: Wed, 15 Jan 2025 21:10:10 +0200 Subject: [PATCH 15/15] What I learned in KPI --- Skills/Architecture.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/Skills/Architecture.md b/Skills/Architecture.md index fe578d1b..f97b422f 100644 --- a/Skills/Architecture.md +++ b/Skills/Architecture.md @@ -1,12 +1,2 @@ ## Architecture -- Application structure - - Reliability - - Modularity - - Flexibility -- Application architecture - - Inversion of control (IoC) - - Dependency injection (DI) - - Pub/sub -- Solution architecture -- Enterprise architecture