diff --git a/Profile/REPORT.md b/Profile/REPORT.md
index 12cbe427..9a094b04 100644
--- a/Profile/REPORT.md
+++ b/Profile/REPORT.md
@@ -1,13 +1,13 @@
## Software engineering self assessment
-[![Skills](https://img.shields.io/badge/Self_Assessment-313 / 624 / 731-009933?style=flat-square)](https://github.com/e-andrew/SelfAssessment/blob/main/Profile/REPORT.md)
+[![Skills](https://img.shields.io/badge/Self_Assessment-607 / 715 / 731-009933?style=flat-square)](https://github.com/e-andrew/SelfAssessment/blob/main/Profile/REPORT.md)
```
-[![Skills](https://img.shields.io/badge/Self_Assessment-313 / 624 / 731-009933?style=flat-square)](https://github.com/e-andrew/SelfAssessment/blob/main/Profile/REPORT.md)
+[![Skills](https://img.shields.io/badge/Self_Assessment-607 / 715 / 731-009933?style=flat-square)](https://github.com/e-andrew/SelfAssessment/blob/main/Profile/REPORT.md)
```
```
-
+
```
## Assessment totals
@@ -15,150 +15,96 @@
| Unit | Marked | Of |
| ---- | ------ | -- |
| [Programming](/Skills/Programming.md) | | |
-| Concepts | `5` | `30` |
-| Syntax and concepts | `25` | `33` |
-| Types | `2` | `14` |
-| Functions | `19` | `23` |
-| Data structures | `23` | `26` |
-| Networking | `0` | `9` |
-| Process and tools | `11` | `28` |
-| Antipatterns | `9` | `30` |
-| Runtimes and virtual machines | `0` | `5` |
-| Operating systems | `0` | `13` |
-| Standards | `0` | `15` |
+| Concepts | `29` | `30` |
+| Syntax and concepts | `33` | `33` |
+| Types | `10` | `14` |
+| Functions | `23` | `23` |
+| Data structures | `26` | `26` |
+| Networking | `9` | `9` |
+| Process and tools | `26` | `28` |
+| Antipatterns | `29` | `30` |
+| Runtimes and virtual machines | `3` | `5` |
+| Operating systems | `7` | `13` |
+| Standards | `10` | `15` |
| [JavaScript](/Skills/JavaScript.md) | | |
-| Language | `28` | `57` |
-| Statements | `15` | `19` |
+| Language | `53` | `57` |
+| Statements | `18` | `19` |
| Functions | `10` | `10` |
-| Data structures | `3` | `8` |
-| Standard classes and namespaces | `3` | `14` |
-| Infrastructure | `2` | `6` |
+| Data structures | `6` | `8` |
+| Standard classes and namespaces | `9` | `14` |
+| Infrastructure | `5` | `6` |
| [Async](/Skills/Async.md) | | |
-| Theory | `12` | `20` |
-| Async contracts | `9` | `18` |
-| Async adapters and utils | `4` | `5` |
-| Async abstractions interfaces | `7` | `11` |
-| JavaScript & Node.js specific | `5` | `17` |
-| Techniques | `4` | `10` |
+| Theory | `17` | `20` |
+| Async contracts | `17` | `18` |
+| Async adapters and utils | `5` | `5` |
+| Async abstractions interfaces | `8` | `11` |
+| JavaScript & Node.js specific | `12` | `17` |
+| Techniques | `6` | `10` |
| [NodeJS](/Skills/NodeJS.md) | | |
-| Internals and concepts | `1` | `9` |
-| Modularity, layers and dependencies | `4` | `14` |
-| Environment | `2` | `6` |
-| Internal API | `5` | `26` |
-| Network | `18` | `28` |
+| Internals and concepts | `3` | `9` |
+| Modularity, layers and dependencies | `8` | `14` |
+| Environment | `4` | `6` |
+| Internal API | `8` | `26` |
+| Network | `19` | `28` |
| Technique and tools | `8` | `12` |
-| Data access | `4` | `7` |
-| Error handling and debugging | `7` | `14` |
+| Data access | `5` | `7` |
+| Error handling and debugging | `8` | `14` |
| Integrations and bindings | `0` | `16` |
| [Paradigms](/Skills/Paradigms.md) | | |
-| Theory | `15` | `25` |
-| OOP basics | `18` | `21` |
-| GRASP | `0` | `8` |
-| SOLID | `0` | `5` |
-| Patterns | `22` | `25` |
+| Theory | `23` | `25` |
+| OOP basics | `21` | `21` |
+| GRASP | `8` | `8` |
+| SOLID | `5` | `5` |
+| Patterns | `25` | `25` |
| [Architecture](/Skills/Architecture.md) | | |
-| Application structure | `5` | `22` |
-| Application architecture | `8` | `36` |
-| Solution architecture | `0` | `18` |
-| Enterprise architecture | `0` | `18` |
+| Application structure | `21` | `22` |
+| Application architecture | `34` | `36` |
+| Solution architecture | `18` | `18` |
+| Enterprise architecture | `18` | `18` |
## [JavaScript](/Skills/JavaScript.md)
| To start asynchronous programming | actual | βΆ | required |
| --- | --- | --- | --- |
-| `Function` | π€· unknown | βΆ | ποΈ used |
-| `Boolean` | π€· unknown | βΆ | ποΈ used |
-| `Number` | π€· unknown | βΆ | ποΈ used |
-| `Symbol` | π heard | βΆ | π known |
| `...spread` | π known | βΆ | ποΈ used |
| `...rest` | π known | βΆ | ποΈ used |
| Async generator | π€· unknown | βΆ | π heard |
-| Async iterator | π€· unknown | βΆ | π heard |
-| Optional chaining | π€· unknown | βΆ | π heard |
-| IIFE | π€· unknown | βΆ | π heard |
-| Async IIFE | π€· unknown | βΆ | π heard |
| `global` | π€· unknown | βΆ | π known |
| `globalThis` | π€· unknown | βΆ | π heard |
-| Strict mode | π€· unknown | βΆ | ποΈ used |
-| `static` | π€· unknown | βΆ | π heard |
-| Private class fields | π€· unknown | βΆ | π known |
-| Private class methods | π€· unknown | βΆ | π known |
-| `for..of` | π€· unknown | βΆ | ποΈ used |
-| `for await` | π€· unknown | βΆ | π heard |
-| `new` | π known | βΆ | ποΈ used |
-| Mixins | π€· unknown | βΆ | π known |
-| `Object.assign` | π€· unknown | βΆ | π known |
-| `Proxy` | π heard | βΆ | π known |
-| `Error` | π€· unknown | βΆ | ποΈ used |
+| Strict mode | π heard | βΆ | ποΈ used |
+| Mixins | π heard | βΆ | π known |
| `WeakRef` | π€· unknown | βΆ | π heard |
| `FinalizationRegistry` | π€· unknown | βΆ | π heard |
-| `Promise` | π€· unknown | βΆ | π heard |
-| `console` | π€· unknown | βΆ | ποΈ used |
-| Timers | π€· unknown | βΆ | ποΈ used |
-| V8 | π€· unknown | βΆ | π heard |
-| prettier | π€· unknown | βΆ | π known |
-Total: you have `41` of `72` skills, `31` to be upgraded, and `27` above needed
+Total: you have `63` of `72` skills, `9` to be upgraded, and `39` above needed
| To start Node.js | actual | βΆ | required |
| --- | --- | --- | --- |
-| `Function` | π€· unknown | βΆ | ποΈ used |
-| `Boolean` | π€· unknown | βΆ | ποΈ used |
-| `Number` | π€· unknown | βΆ | ποΈ used |
-| `BigInt` | π heard | βΆ | ποΈ used |
-| `String` | π€· unknown | βΆ | ποΈ used |
-| `Symbol` | π heard | βΆ | ποΈ used |
+| `BigInt` | π known | βΆ | ποΈ used |
+| `Symbol` | π known | βΆ | ποΈ used |
| `Infinity` | π€· unknown | βΆ | ποΈ used |
-| `NaN` | π€· unknown | βΆ | ποΈ used |
+| `NaN` | π known | βΆ | ποΈ used |
| `...spread` | π known | βΆ | ποΈ used |
| `...rest` | π known | βΆ | ποΈ used |
| Generators | π known | βΆ | ποΈ used |
| Async generator | π€· unknown | βΆ | ποΈ used |
-| Async iterator | π€· unknown | βΆ | ποΈ used |
-| IIFE | π€· unknown | βΆ | ποΈ used |
-| Async IIFE | π€· unknown | βΆ | ποΈ used |
+| Async iterator | π heard | βΆ | ποΈ used |
| `global` | π€· unknown | βΆ | ποΈ used |
| `globalThis` | π€· unknown | βΆ | ποΈ used |
-| Strict mode | π€· unknown | βΆ | ποΈ used |
-| `delete` | π heard | βΆ | ποΈ used |
-| `eval` | π€· unknown | βΆ | π known |
-| `static` | π€· unknown | βΆ | ποΈ used |
-| `Number.parseInt` | π€· unknown | βΆ | ποΈ used |
-| `Number.parseFloat` | π€· unknown | βΆ | ποΈ used |
-| Property descriptors | π€· unknown | βΆ | π known |
-| Sealing properties | π€· unknown | βΆ | π known |
-| Freezing properties | π€· unknown | βΆ | π known |
-| Computed properties | π€· unknown | βΆ | π known |
-| Instance class fields | π€· unknown | βΆ | π known |
-| Static class fields | π€· unknown | βΆ | π known |
-| Private class fields | π€· unknown | βΆ | π known |
-| Private class methods | π€· unknown | βΆ | π known |
-| `for..of` | π€· unknown | βΆ | ποΈ used |
-| `for await` | π€· unknown | βΆ | ποΈ used |
-| `new` | π known | βΆ | ποΈ used |
+| Strict mode | π heard | βΆ | ποΈ used |
+| `eval` | π heard | βΆ | π known |
+| `static` | π known | βΆ | ποΈ used |
+| `for await` | π heard | βΆ | ποΈ used |
| `WeakMap` | π€· unknown | βΆ | π known |
| `WeakSet` | π€· unknown | βΆ | π known |
-| Typed arrays | π€· unknown | βΆ | π known |
-| Mixins | π€· unknown | βΆ | π heard |
-| `Object.assign` | π€· unknown | βΆ | π known |
-| `Proxy` | π heard | βΆ | π known |
-| `Date` | π heard | βΆ | π known |
-| `Math` | π€· unknown | βΆ | π known |
| `Reflect` | π€· unknown | βΆ | π known |
-| `Error` | π€· unknown | βΆ | ποΈ used |
| `Atomics` | π€· unknown | βΆ | π heard |
-| `JSON` | π€· unknown | βΆ | ποΈ used |
| `WeakRef` | π€· unknown | βΆ | π heard |
| `FinalizationRegistry` | π€· unknown | βΆ | π heard |
-| `Promise` | π€· unknown | βΆ | ποΈ used |
-| `console` | π€· unknown | βΆ | ποΈ used |
-| Timers | π€· unknown | βΆ | ποΈ used |
-| V8 | π€· unknown | βΆ | ποΈ used |
-| Node.js | π€· unknown | βΆ | π heard |
-| prettier | π€· unknown | βΆ | π known |
+| V8 | π heard | βΆ | ποΈ used |
-Total: you have `44` of `98` skills, `54` to be upgraded, and `19` above needed
+Total: you have `76` of `98` skills, `22` to be upgraded, and `37` above needed
## [Async](/Skills/Async.md)
@@ -166,156 +112,101 @@ Total: you have `44` of `98` skills, `54` to be upgraded, and `19` above needed
| For Node.js applied programming | actual | βΆ | required |
| --- | --- | --- | --- |
| `try..catch` | π€· unknown | βΆ | ποΈ used |
-| Race conditions | π heard | βΆ | π known |
-| Promise | π heard | βΆ | ποΈ used |
-| Async/await | π heard | βΆ | ποΈ used |
| Sync generator | π heard | βΆ | π known |
| Async Generator | π€· unknown | βΆ | π known |
-| Async Iterator | π€· unknown | βΆ | π known |
-| Signal | π€· unknown | βΆ | ποΈ used |
-| Stream | π known | βΆ | ποΈ used |
-| Locks | π€· unknown | βΆ | π known |
-| callbackify | π heard | βΆ | π known |
-| promisify | π heard | βΆ | π known |
-| asyncify | π heard | βΆ | π known |
-| EventEmitter | π heard | βΆ | ποΈ used |
-| Readable | π heard | βΆ | ποΈ used |
-| Writable | π heard | βΆ | ποΈ used |
+| Async Iterator | π heard | βΆ | π known |
+| Signal | π heard | βΆ | ποΈ used |
+| Readable | π known | βΆ | ποΈ used |
+| Writable | π known | βΆ | ποΈ used |
| Transform | π€· unknown | βΆ | ποΈ used |
| Async Pool | π€· unknown | βΆ | π known |
-| Async Queue | π€· unknown | βΆ | π known |
-| Async Collector | π heard | βΆ | π known |
-| Timers | π€· unknown | βΆ | ποΈ used |
-| `setImmediate` | π€· unknown | βΆ | ποΈ used |
-| `nextTick` | π€· unknown | βΆ | ποΈ used |
+| `setImmediate` | π heard | βΆ | ποΈ used |
+| `nextTick` | π heard | βΆ | ποΈ used |
| AbortController | π€· unknown | βΆ | ποΈ used |
| AbortSignal | π€· unknown | βΆ | π known |
-| Callback hell | π heard | βΆ | π known |
-| Promise hell | π heard | βΆ | π known |
| ref() and unref() | π€· unknown | βΆ | π heard |
-| Error handling in async code | π€· unknown | βΆ | ποΈ used |
-| Better stack traces with return await | π heard | βΆ | ποΈ used |
-| JSON streaming serialization | π€· unknown | βΆ | π heard |
-| Promise.all | π heard | βΆ | ποΈ used |
+| Error handling in async code | π known | βΆ | ποΈ used |
+| Better stack traces with return await | π known | βΆ | ποΈ used |
+| Promise.all | π known | βΆ | ποΈ used |
| Promise.allSettled | π€· unknown | βΆ | ποΈ used |
-| Promise.race | π heard | βΆ | ποΈ used |
-| Promise.any | π heard | βΆ | ποΈ used |
+| Promise.race | π known | βΆ | ποΈ used |
+| Promise.any | π known | βΆ | ποΈ used |
| Web Locks API | π€· unknown | βΆ | π heard |
-| Revealing constructor | π€· unknown | βΆ | π known |
+| Revealing constructor | π heard | βΆ | π known |
-Total: you have `13` of `50` skills, `37` to be upgraded, and `7` above needed
+Total: you have `28` of `50` skills, `22` to be upgraded, and `15` above needed
| To start Node.js | actual | βΆ | required |
| --- | --- | --- | --- |
| `try..catch` | π€· unknown | βΆ | ποΈ used |
-| Promise | π heard | βΆ | ποΈ used |
-| Async/await | π heard | βΆ | ποΈ used |
-| Async Iterator | π€· unknown | βΆ | π known |
-| Signal | π€· unknown | βΆ | π known |
-| Middleware | π€· unknown | βΆ | π heard |
-| Locks | π€· unknown | βΆ | π heard |
-| callbackify | π heard | βΆ | π known |
-| promisify | π heard | βΆ | π known |
-| asyncify | π heard | βΆ | π known |
-| EventEmitter | π heard | βΆ | ποΈ used |
-| Readable | π heard | βΆ | π known |
-| Writable | π heard | βΆ | π known |
+| Async Iterator | π heard | βΆ | π known |
+| Signal | π heard | βΆ | π known |
| Transform | π€· unknown | βΆ | π known |
| Async Pool | π€· unknown | βΆ | π known |
-| Async Queue | π€· unknown | βΆ | π known |
-| Async Collector | π heard | βΆ | π known |
-| Timers | π€· unknown | βΆ | ποΈ used |
-| `setImmediate` | π€· unknown | βΆ | ποΈ used |
-| `nextTick` | π€· unknown | βΆ | π heard |
+| `setImmediate` | π heard | βΆ | ποΈ used |
| AbortController | π€· unknown | βΆ | ποΈ used |
| AbortSignal | π€· unknown | βΆ | π known |
-| Callback hell | π heard | βΆ | π known |
-| Promise hell | π heard | βΆ | π known |
-| Error handling in async code | π€· unknown | βΆ | ποΈ used |
-| Better stack traces with return await | π heard | βΆ | ποΈ used |
-| JSON streaming serialization | π€· unknown | βΆ | π heard |
-| Promise.all | π heard | βΆ | ποΈ used |
+| Error handling in async code | π known | βΆ | ποΈ used |
+| Better stack traces with return await | π known | βΆ | ποΈ used |
+| Promise.all | π known | βΆ | ποΈ used |
| Promise.allSettled | π€· unknown | βΆ | ποΈ used |
-| Promise.race | π heard | βΆ | ποΈ used |
-| Promise.any | π heard | βΆ | ποΈ used |
-| Revealing constructor | π€· unknown | βΆ | π heard |
+| Promise.race | π known | βΆ | ποΈ used |
+| Promise.any | π known | βΆ | ποΈ used |
-Total: you have `5` of `37` skills, `32` to be upgraded, and `4` above needed
+Total: you have `23` of `37` skills, `14` to be upgraded, and `10` above needed
| For Node.js platform/system programming | actual | βΆ | required |
| --- | --- | --- | --- |
-| Event loop | π heard | βΆ | π known |
| `try..catch` | π€· unknown | βΆ | ποΈ used |
-| Non-blocking | π heard | βΆ | π known |
-| Async I/O | π heard | βΆ | π known |
-| Thread pool | π heard | βΆ | π known |
-| Pattern Reactor | π€· unknown | βΆ | π known |
+| Pattern Reactor | π heard | βΆ | π known |
| CAS operations | π€· unknown | βΆ | π heard |
-| libuv | π€· unknown | βΆ | π known |
-| Race conditions | π heard | βΆ | ποΈ used |
-| Dead locks | π heard | βΆ | ποΈ used |
-| Live locks | π heard | βΆ | ποΈ used |
-| Concurrent programming | π heard | βΆ | π known |
-| Parallel programming | π heard | βΆ | π known |
-| Actor Model | π heard | βΆ | π known |
+| libuv | π heard | βΆ | π known |
+| Race conditions | π known | βΆ | ποΈ used |
+| Dead locks | π known | βΆ | ποΈ used |
+| Live locks | π known | βΆ | ποΈ used |
| Thread | π known | βΆ | ποΈ used |
| Process | π known | βΆ | ποΈ used |
-| Thenable | π heard | βΆ | ποΈ used |
-| Promise | π heard | βΆ | ποΈ used |
-| Async/await | π heard | βΆ | ποΈ used |
-| Future | π€· unknown | βΆ | π heard |
-| Deferred | π€· unknown | βΆ | π heard |
| Sync generator | π heard | βΆ | ποΈ used |
| Async Generator | π€· unknown | βΆ | ποΈ used |
-| Async Iterator | π€· unknown | βΆ | ποΈ used |
-| Coroutine | π€· unknown | βΆ | π heard |
-| Goroutine | π€· unknown | βΆ | π heard |
-| Signal | π€· unknown | βΆ | ποΈ used |
-| Stream | π known | βΆ | ποΈ used |
+| Async Iterator | π heard | βΆ | ποΈ used |
+| Signal | π heard | βΆ | ποΈ used |
| Chain of responsibility | π known | βΆ | ποΈ used |
-| Middleware | π€· unknown | βΆ | ποΈ used |
-| Locks | π€· unknown | βΆ | ποΈ used |
-| callbackify | π heard | βΆ | ποΈ used |
-| promisify | π heard | βΆ | ποΈ used |
-| asyncify | π heard | βΆ | ποΈ used |
-| EventEmitter | π heard | βΆ | ποΈ used |
-| Observable/Observer | π known | βΆ | ποΈ used |
-| Readable | π heard | βΆ | ποΈ used |
-| Writable | π heard | βΆ | ποΈ used |
+| Locks | π known | βΆ | ποΈ used |
+| callbackify | π known | βΆ | ποΈ used |
+| promisify | π known | βΆ | ποΈ used |
+| asyncify | π known | βΆ | ποΈ used |
+| Readable | π known | βΆ | ποΈ used |
+| Writable | π known | βΆ | ποΈ used |
| Transform | π€· unknown | βΆ | ποΈ used |
| Async Pool | π€· unknown | βΆ | ποΈ used |
-| Async Queue | π€· unknown | βΆ | ποΈ used |
-| Async Collector | π heard | βΆ | ποΈ used |
-| Semaphore | π known | βΆ | ποΈ used |
+| Async Collector | π known | βΆ | ποΈ used |
| Spin Lock | π€· unknown | βΆ | π known |
-| Timers | π€· unknown | βΆ | ποΈ used |
-| `setImmediate` | π€· unknown | βΆ | ποΈ used |
-| `nextTick` | π€· unknown | βΆ | ποΈ used |
+| `setImmediate` | π heard | βΆ | ποΈ used |
+| `nextTick` | π heard | βΆ | ποΈ used |
| AbortController | π€· unknown | βΆ | ποΈ used |
| AbortSignal | π€· unknown | βΆ | ποΈ used |
-| Promise unhandled rejection | π€· unknown | βΆ | ποΈ used |
-| Promise double resolve | π€· unknown | βΆ | ποΈ used |
+| Promise unhandled rejection | π known | βΆ | ποΈ used |
+| Promise double resolve | π known | βΆ | ποΈ used |
| Atomics | π€· unknown | βΆ | π known |
| High resolution clock | π€· unknown | βΆ | π known |
-| Callback hell | π heard | βΆ | ποΈ used |
-| Promise hell | π heard | βΆ | ποΈ used |
+| Callback hell | π known | βΆ | ποΈ used |
+| Promise hell | π known | βΆ | ποΈ used |
| ref() and unref() | π€· unknown | βΆ | ποΈ used |
-| Error handling in async code | π€· unknown | βΆ | ποΈ used |
-| Better stack traces with return await | π heard | βΆ | ποΈ used |
-| JSON streaming serialization | π€· unknown | βΆ | ποΈ used |
-| AsyncLocalStorage | π heard | βΆ | ποΈ used |
-| AsyncResource | π heard | βΆ | ποΈ used |
-| Async.js library | π€· unknown | βΆ | π heard |
-| Promise.all | π heard | βΆ | ποΈ used |
+| Error handling in async code | π known | βΆ | ποΈ used |
+| Better stack traces with return await | π known | βΆ | ποΈ used |
+| JSON streaming serialization | π heard | βΆ | ποΈ used |
+| AsyncLocalStorage | π known | βΆ | ποΈ used |
+| AsyncResource | π known | βΆ | ποΈ used |
+| Promise.all | π known | βΆ | ποΈ used |
| Promise.allSettled | π€· unknown | βΆ | ποΈ used |
-| Promise.race | π heard | βΆ | ποΈ used |
-| Promise.any | π heard | βΆ | ποΈ used |
+| Promise.race | π known | βΆ | ποΈ used |
+| Promise.any | π known | βΆ | ποΈ used |
| Web Locks API | π€· unknown | βΆ | π known |
| IPC | π€· unknown | βΆ | π known |
| Channel API | π€· unknown | βΆ | π known |
-| Revealing constructor | π€· unknown | βΆ | ποΈ used |
+| Revealing constructor | π heard | βΆ | ποΈ used |
-Total: you have `5` of `75` skills, `70` to be upgraded, and `3` above needed
+Total: you have `27` of `75` skills, `48` to be upgraded, and `11` above needed
## [NodeJS](/Skills/NodeJS.md)
@@ -323,29 +214,29 @@ Total: you have `5` of `75` skills, `70` to be upgraded, and `3` above needed
| API and domain logic developer | actual | βΆ | required |
| --- | --- | --- | --- |
-Total: you have `0` of `0` skills, `0` to be upgraded, and `36` above needed
+Total: you have `0` of `0` skills, `0` to be upgraded, and `39` above needed
| Enterprise applications | actual | βΆ | required |
| --- | --- | --- | --- |
-Total: you have `0` of `0` skills, `0` to be upgraded, and `41` above needed
+Total: you have `0` of `0` skills, `0` to be upgraded, and `48` above needed
| Real-Time, gamedev, messaging | actual | βΆ | required |
| --- | --- | --- | --- |
-Total: you have `0` of `0` skills, `0` to be upgraded, and `35` above needed
+Total: you have `0` of `0` skills, `0` to be upgraded, and `41` above needed
| Web and Frontend | actual | βΆ | required |
| --- | --- | --- | --- |
-Total: you have `0` of `0` skills, `0` to be upgraded, and `18` above needed
+Total: you have `0` of `0` skills, `0` to be upgraded, and `20` above needed
| Fullstack development | actual | βΆ | required |
| --- | --- | --- | --- |
-Total: you have `0` of `0` skills, `0` to be upgraded, and `38` above needed
+Total: you have `0` of `0` skills, `0` to be upgraded, and `41` above needed
| Platform/system development | actual | βΆ | required |
| --- | --- | --- | --- |
-Total: you have `0` of `0` skills, `0` to be upgraded, and `46` above needed
+Total: you have `0` of `0` skills, `0` to be upgraded, and `55` above needed
diff --git a/Skills/Architecture.md b/Skills/Architecture.md
index 5e63d88b..428fd6f1 100644
--- a/Skills/Architecture.md
+++ b/Skills/Architecture.md
@@ -1,100 +1,100 @@
## Architecture
- Application structure
- - Modularity
- - Components
- - Directories
+ - Modularity: π explained
+ - Components: ποΈ used
+ - Directories: π explained
- GRASP: π’ talked
- SOLID: π’ talked
- - GoF patterns: π heard
+ - GoF patterns: π explained
- CQS: π explained
- - Leaking abstractions: π heard
- - Multiparadigm code
- - Contract programming
- - Platform-agnostic
- - Transport-agnostic
- - Framework-agnostic
- - Code coverage
- - Cohesion
- - Coupling
+ - Leaking abstractions: π known
+ - Multiparadigm code: π explained
+ - Contract programming: π known
+ - Platform-agnostic: ποΈ used
+ - Transport-agnostic: π known
+ - Framework-agnostic: π known
+ - Code coverage: π known
+ - Cohesion: π explained
+ - Coupling: π explained
- Cyclomatic complexity
- - Reliability
- - Quality
- - Availability
- - Flexibility
- - Law of Demeter (LoD)
+ - Reliability: π known
+ - Quality: π known
+ - Availability: π known
+ - Flexibility: π known
+ - Law of Demeter (LoD): π explained
- Application architecture
- - Isolation between layer
- - Domain-specific language (DSL)
- - System vs applied code
- - Multilayer approach: π heard
- - Hexagonal architecture
- - Separation of concerns (SoC): π heard
- - Metaprogramming
- - Inversion of control (IoC): π heard
- - Dependency injection (DI): π heard
- - Clean architecture
- - Domain-driven design (DDD): π heard
- - Pub/sub
- - Message brocker
+ - Isolation between layer: π known
+ - Domain-specific language (DSL): π known
+ - System vs applied code: π explained
+ - Multilayer approach: ποΈ used
+ - Hexagonal architecture: π heard
+ - Separation of concerns (SoC): π explained
+ - Metaprogramming: π heard
+ - Inversion of control (IoC): π known
+ - Dependency injection (DI): π known
+ - Clean architecture: π known
+ - Domain-driven design (DDD): π known
+ - Pub/sub: ποΈ used
+ - Message brocker: ποΈ used
- Agent
- - Service locator
- - Message Queue (MQ): ποΈ used
- - CQRS
+ - Service locator: π heard
+ - Message Queue (MQ): π explained
+ - CQRS: π heard
- Event sourcing
- - E-R data modeling
- - Entity-relationship diagram
- - IDEF1X
- - UML
- - Work breakdown structure
- - Budget estimation
- - Distributed systems: π heard
- - High-intensive computing
+ - E-R data modeling: ποΈ used
+ - Entity-relationship diagram: ποΈ used
+ - IDEF1X: π heard
+ - UML: ποΈ used
+ - Work breakdown structure: π known
+ - Budget estimation: π known
+ - Distributed systems: π known
+ - High-intensive computing: π known
- Load balancing: π heard
- - Gateways
- - On-premises
- - IaaS
- - PaaS
- - SaaS
- - FaaS clouds
- - Serverless
- - Vendor lock-in
- - Bus factor
+ - Gateways: π known
+ - On-premises: π known
+ - IaaS: π known
+ - PaaS: π known
+ - SaaS: π known
+ - FaaS clouds: π heard
+ - Serverless: π known
+ - Vendor lock-in: π known
+ - Bus factor: π known
- 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)
+ - A software requirements specification (SRS): ποΈ used
+ - Solution visions: π known
+ - Solution capabilities: π heard
+ - System design: π known
+ - Process modelling: ποΈ used
+ - Data modelling: ποΈ used
+ - Solution components: ποΈ used
+ - Risk assessment: ποΈ used
+ - Non Functional Requirements (NFR): π known
+ - Clouds: π known
+ - BPMN: π heard
+ - Low-code: π known
+ - No-code: π known
+ - Metric: π known
+ - Metric abuse: π heard
+ - ACID: π explained
+ - CAP theorem: π explained
+ - Single source of truth (SSOT): π explained
- 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
+ - Understanding business needs: π explained
+ - Enterprise strategy: π known
+ - Integration with subsystems: π known
+ - Enterprise vision: π known
+ - Enterprise capabilities: π known
+ - Project scope: π known
+ - Enterprise service bus: π known
+ - Service-oriented architecture: π known
+ - Microservices: π known
+ - Process choreography: π known
+ - Service orchestration: π heard
+ - Data warehouse: π heard
+ - Business Intelligence: π heard
+ - OLAP: π heard
+ - OLTP: π heard
+ - Conways Law: π explained
+ - Quality assurance: π known
+ - Engineering Hygiene: π known
diff --git a/Skills/Async.md b/Skills/Async.md
index 953ee515..9bd087a0 100644
--- a/Skills/Async.md
+++ b/Skills/Async.md
@@ -1,89 +1,89 @@
## Asynchronous programming
- Theory
- - Event loop: π heard
- - `try..catch `
- - Non-blocking: π heard
- - Async I/O: π heard
- - Thread pool: π heard
- - Pattern Reactor
+ - Event loop: π known
+ - `try..catch `: π explained
+ - Non-blocking: π explained
+ - Async I/O: π explained
+ - Thread pool: π known
+ - Pattern Reactor: π heard
- CAS operations
- - epoll
- - kqueue
+ - epoll: π heard
+ - kqueue: π heard
- Completion ports
- Event ports
- - libuv
- - Race conditions: π heard
- - Dead locks: π heard
- - Live locks: π heard
- - Concurrent programming: π heard
- - Parallel programming: π heard
- - Actor Model: π heard
+ - libuv: π heard
+ - Race conditions: π known
+ - Dead locks: π known
+ - Live locks: π known
+ - Concurrent programming: π explained
+ - Parallel programming: π explained
+ - Actor Model: π known
- Thread: π known
- Process: π known
- Async contracts
- Callbacks: π explained
- Callback-last-error-first: π explained
- - Thenable: π heard
- - Promise: π heard
- - Async/await: π heard
- - Future
- - Deferred
+ - Thenable: π explained
+ - Promise: π explained
+ - Async/await: π explained
+ - Future: π heard
+ - Deferred: π heard
- Sync generator: π heard
- Async Generator
- - Async Iterator
+ - Async Iterator: π heard
- Event: π explained
- - Coroutine
- - Goroutine
- - Signal
- - Stream: π known
+ - Coroutine: π heard
+ - Goroutine: π heard
+ - Signal: π heard
+ - Stream: ποΈ used
- Chain of responsibility: π known
- - Middleware
- - Locks
+ - Middleware: ποΈ used
+ - Locks: π known
- Async adapters and utils
- - callbackify: π heard
- - promisify: π heard
- - asyncify: π heard
- - Callbacks compose
- - Async compose: π heard
+ - callbackify: π known
+ - promisify: π known
+ - asyncify: π known
+ - Callbacks compose: π heard
+ - Async compose: π known
- Async abstractions interfaces
- - EventEmitter: π heard
- - Observable/Observer: π known
- - Readable: π heard
- - Writable: π heard
+ - EventEmitter: ποΈ used
+ - Observable/Observer: ποΈ used
+ - Readable: π known
+ - Writable: π known
- Transform
- Async Pool
- - Async Queue
- - Async Collector: π heard
- - Semaphore: π known
- - Mutex: π known
+ - Async Queue: ποΈ used
+ - Async Collector: π known
+ - Semaphore: ποΈ used
+ - Mutex: ποΈ used
- Spin Lock
- JavaScript & Node.js specific
- - Timers
- - `setImmediate`
- - `nextTick`
+ - Timers: ποΈ used
+ - `setImmediate`: π heard
+ - `nextTick`: π heard
- AbortController
- AbortSignal
- - Promise unhandled rejection
- - Promise double resolve
+ - Promise unhandled rejection: π known
+ - Promise double resolve: π known
- Atomics
- High resolution clock
- - Callback hell: π heard
- - Promise hell: π heard
+ - Callback hell: π known
+ - Promise hell: π known
- ref() and unref()
- - Error handling in async code
- - Better stack traces with return await: π heard
- - JSON streaming serialization
- - AsyncLocalStorage: π heard
- - AsyncResource: π heard
+ - Error handling in async code: π known
+ - Better stack traces with return await: π known
+ - JSON streaming serialization: π heard
+ - AsyncLocalStorage: π known
+ - AsyncResource: π known
- Techniques
- - Async.js library
+ - Async.js library: π heard
- RxJS library: π heard
- - Promise.all: π heard
+ - Promise.all: π known
- Promise.allSettled
- - Promise.race: π heard
- - Promise.any: π heard
+ - Promise.race: π known
+ - Promise.any: π known
- Web Locks API
- IPC
- Channel API
- - Revealing constructor
+ - Revealing constructor: π heard
diff --git a/Skills/Databases.md b/Skills/Databases.md
index c499feb1..c2079a4a 100644
--- a/Skills/Databases.md
+++ b/Skills/Databases.md
@@ -1,94 +1,94 @@
## 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
+ - Data types: π explained
+ - Performance tuning: π heard
+ - Migrations: π known
+ - Schema versioning: π heard
+ - Backup and recovery: ποΈ used
+ - Database scalability: π heard
+ - Relational databases: π explained
+ - Key-value store: π explained
+ - Tuple store: π known
+ - Graph databases: π heard
+ - Object databases: ποΈ used
+ - Column databases: π known
- Navigational databases
- - Hierarchical databases
- - In-memory databases
+ - Hierarchical databases: π heard
+ - In-memory databases: π known
- Inverted index
- - Data control language (DCL)
- - Data definition language (DDL)
- - Data manipulation language (DML)
- - Data query language (DQL)
+ - Data control language (DCL): π explained
+ - Data definition language (DDL): π explained
+ - Data manipulation language (DML): π explained
+ - Data query language (DQL): π explained
- Relational
- - Entity-Relationship Diagram
- - Normal forms
- - Indexing
- - Primary keys
- - Foreign keys
- - Transactions
- - Views
- - Subqueries
- - Stored procedures
- - SQL functions
+ - Entity-Relationship Diagram: π explained
+ - Normal forms: π known
+ - Indexing: π known
+ - Primary keys: π explained
+ - Foreign keys: π explained
+ - Transactions: π explained
+ - Views: π heard
+ - Subqueries: ποΈ used
+ - Stored procedures: π known
+ - SQL functions: π known
- Materialized views
- - Replications
+ - Replications: π known
- Virtualization
- SQL
- - `SELECT`
- - `INSERT`
- - `UPDATE`
- - `DELETE`
- - `LIMIT`
- - `OFFSET`
- - `ORDER BY`
- - `GROUP BY`
+ - `SELECT`: π explained
+ - `INSERT`: π explained
+ - `UPDATE`: π explained
+ - `DELETE`: π explained
+ - `LIMIT`: π explained
+ - `OFFSET`: π explained
+ - `ORDER BY`: π explained
+ - `GROUP BY`: π explained
- `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`
+ - `EXISTS`: π explained
+ - `JOIN`: π explained
+ - `INNER JOIN`: π explained
+ - `LEFT JOIN`: π explained
+ - `RIGHT JOIN`: π explained
+ - `UNION`: π explained
+ - `DISTINCT`: π heard
+ - `WHERE`: π explained
+ - `LIKE`: π explained
+ - `IN`: π explained
+ - `BETWEEN`: π explained
+ - `CREATE TABLE`: π explained
+ - `ALTER TABLE`: π explained
+ - `DROP TABLE`: π explained
+ - `PRIMARY KEY`: π explained
+ - `FOREIGN KEY`: π explained
- `CHECK`
- `DEFAULT`
- - `INDEX`
- - `UNIQUE`
- - `GRANT`
- - `REVOKE`
- - `DENY`
- - `EXPLAIN`
+ - `INDEX`: π heard
+ - `UNIQUE`: π explained
+ - `GRANT`: π known
+ - `REVOKE`: π known
+ - `DENY`: π known
+ - `EXPLAIN`: π heard
- Engines
- - PostgreSQL
- - Oracle
- - MySQL
- - MariaDB
- - MS SQL Server
- - Redis
- - Rabbit
- - MongoDB
+ - PostgreSQL: ποΈ used
+ - Oracle: ποΈ used
+ - MySQL: ποΈ used
+ - MariaDB: π heard
+ - MS SQL Server: ποΈ used
+ - Redis: ποΈ used
+ - Rabbit: π known
+ - MongoDB: ποΈ used
- Memcached
- Riak
- DB2
- - SQLite
+ - SQLite: ποΈ used
- DynamoDB
- Firebase
- Data engineering
- Data warehousing
- - Business intelligence
+ - Business intelligence: π heard
- Big data
- Data analysis
- AI tools
- - Cloud databases
+ - Cloud databases: π known
- Data Visualization
diff --git a/Skills/DotNET.md b/Skills/DotNET.md
index cc2b08e2..5a15a75d 100644
--- a/Skills/DotNET.md
+++ b/Skills/DotNET.md
@@ -1,89 +1,89 @@
## .NET
- Core Concepts and Internals
- - Strengths and weaknesses of .NET
- - Stateful and stateless services
- - Asynchronous and synchronous programming
- - Task-based asynchronous pattern
+ - Strengths and weaknesses of .NET: π known
+ - Stateful and stateless services: π known
+ - Asynchronous and synchronous programming: π explained
+ - Task-based asynchronous pattern: ποΈ used
- Garbage collection in .NET
- - .NET runtime versions and support
- - I/O-bound, CPU-bound tasks
+ - .NET runtime versions and support: ποΈ used
+ - I/O-bound, CPU-bound tasks: π explained
- 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)
+ - .NET assemblies: π known
+ - NuGet package management: ποΈ used
+ - Dependency management in .NET: π heard
+ - Dependency Injection in .NET: π heard
+ - Inversion of Control (IoC): π known
- IoC containers in .NET
- - Middleware and pipeline configuration
- - Modular applications
+ - Middleware and pipeline configuration: π known
+ - Modular applications: π known
- Environment and Tools
- - Command line interface (CLI) tools
- - .NET CLI
- - Windows Services and Linux Daemons
+ - Command line interface (CLI) tools: ποΈ used
+ - .NET CLI: ποΈ used
+ - Windows Services and Linux Daemons: π known
- Hosting and Deployment models
- IIS and Kestrel web server
- - Environment variables and configuration
- - File system I/O operations
+ - Environment variables and configuration: π explained
+ - File system I/O operations: π explained
- Multithreading with Task Parallel Library (TPL)
- Performance monitoring and diagnostics
- APIs and Framework Features
- - LINQ
+ - LINQ: ποΈ used
- SignalR for real-time web functionality
- - High-performance RPC with `gRPC`
+ - High-performance RPC with `gRPC`: ποΈ used
- Security features (authentication, authorization)
- - Cryptography and secure data handling
+ - Cryptography and secure data handling: π heard
- 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
+ - HTTP/HTTPS support: ποΈ used
+ - WebSockets for real-time communication: π known
+ - TCP/UDP networking: π explained
+ - SSL/TLS for secure connections: π known
+ - Efficient network communication with `gRPC`: ποΈ used
+ - HTTP/2 and HTTP/3 support: π heard
- Network security (DDoS, XSS, CSRF prevention)
- - Serialization and deserialization (JSON, XML)
+ - Serialization and deserialization (JSON, XML): ποΈ used
- Testing and Debugging
- Unit testing with frameworks like xUnit, NUnit
- Integration testing
- - Logging and tracing
+ - Logging and tracing: ποΈ used
- Application monitoring and telemetry
- - Debugging tools and strategies
+ - Debugging tools and strategies: ποΈ used
- Performance profiling and analysis
- Data Access and ORM
- - Entity Framework Core
+ - Entity Framework Core: ποΈ used
- Dapper
- - ADO.NET for database access
- - Data modeling and migration
- - Repository and Unit of Work patterns
- - CRUD operations
+ - ADO.NET for database access: π heard
+ - Data modeling and migration: π known
+ - Repository and Unit of Work patterns: π known
+ - CRUD operations: ποΈ used
- Error Handling and Debugging
- - Exception handling in .NET
- - Custom error classes
- - Debugging and diagnostic tools
+ - Exception handling in .NET: ποΈ used
+ - Custom error classes: ποΈ used
+ - Debugging and diagnostic tools: ποΈ used
- 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`
+ - Interoperability with native libraries: π known
+ - P/Invoke for calling `C/C++` libraries: ποΈ used
+ - COM interop: π known
+ - .NET for `WebAssembly`: π heard
- Custom middleware development
- Cloud and Microservices
- Integration with cloud platforms (Azure, AWS)
- Microservices architecture
- - Containerization with Docker
- - Kubernetes for orchestration
- - Serverless computing
+ - Containerization with Docker: π known
+ - Kubernetes for orchestration: π known
+ - Serverless computing: π heard
- 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
+ - C# syntax and language fundamentals: π explained
+ - Advanced C# features (LINQ, async/await, delegates, events): π explained
+ - Reflection and dynamic programming: π known
+ - Data types and collections: π explained
+ - Generics and extension methods: ποΈ used
+ - Attributes and annotations: ποΈ used
- Interoperability with other .NET languages
- `F#` Development
- `F#` syntax and language fundamentals
@@ -117,12 +117,12 @@
- Migration of legacy `C++` code to .NET
- Enhancing existing .NET applications with `C++/CLI`
- Mobile development
- - .NET MAUI / Xamarin
+ - .NET MAUI / Xamarin: π heard
- Interoperability between managed code and iOS/Android API
- Game development
- - Unity
+ - Unity: ποΈ used
- Web development
- - ASP.NET Core
+ - ASP.NET Core: ποΈ used
- Blazor
- Razor Syntax
- - RESTful API development
+ - RESTful API development: π heard
diff --git a/Skills/JavaScript.md b/Skills/JavaScript.md
index 041af7a4..3436fda4 100644
--- a/Skills/JavaScript.md
+++ b/Skills/JavaScript.md
@@ -2,16 +2,16 @@
- Language
- `Object`: ποΈ used
- - `Function`
- - `Boolean`
- - `Number`
- - `BigInt`: π heard
- - `String`
- - `Symbol`: π heard
+ - `Function`: π explained
+ - `Boolean`: π explained
+ - `Number`: π explained
+ - `BigInt`: π known
+ - `String`: π explained
+ - `Symbol`: π known
- `Infinity`
- - `NaN`
- - `undefined`: ποΈ used
- - `null`: ποΈ used
+ - `NaN`: π known
+ - `undefined`: π explained
+ - `null`: π explained
- `this`: ποΈ used
- `instanceof`: ποΈ used
- `...spread`: π known
@@ -21,73 +21,73 @@
- Generators: π known
- Iterators: π explained
- Async generator
- - Async iterator
+ - Async iterator: π heard
- Chaining: ποΈ used
- - Optional chaining
- - IIFE
- - Async IIFE
+ - Optional chaining: π heard
+ - IIFE: ποΈ used
+ - Async IIFE: ποΈ used
- `global`
- `globalThis`
- - `window`
+ - `window`: ποΈ used
- Getters and setters: ποΈ used
- `__proto__`: π known
- `prototype`: π known
- Equality operators: π explained
- Logical operators: π explained
- - Logical Assignment
+ - Logical Assignment: ποΈ used
- Bitwise operators: π explained
- Ternary operator: π explained
- `void`: ποΈ used
- `yield`: ποΈ used
- `await`: ποΈ used
- Template literal: π explained
- - Strict mode
- - Hoisting
- - `delete`: π heard
+ - Strict mode: π heard
+ - Hoisting: π heard
+ - `delete`: ποΈ used
- `in`: ποΈ used
- `super`: ποΈ used
- - `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
+ - `eval`: π heard
+ - `static`: π known
+ - `Number.parseInt`: ποΈ used
+ - `Number.parseFloat`: ποΈ used
+ - Property descriptors: π known
+ - Sealing properties: π known
+ - Freezing properties: π known
+ - Computed properties: π known
+ - Instance class fields: π known
+ - Static class fields: π known
+ - Private class fields: π known
+ - Private class methods: π known
- Statements
- `if`: π explained
- `while`: π explained
- `do..while`: π explained
- `for`: π explained
- - `for..in`: π explained
- - `for..of`
- - `for await`
+ - `for..in`: ποΈ used
+ - `for..of`: ποΈ used
+ - `for await`: π heard
- `throw`: π explained
- `break`: π explained
- `continue`: π explained
- - `import`: ποΈ used
- - `export`: ποΈ used
- - `label`
- - `try..catch`: ποΈ used
- - `switch`: ποΈ used
- - `class`: ποΈ used
- - `extends`: ποΈ used
+ - `import`: π explained
+ - `export`: π explained
+ - `label`: π heard
+ - `try..catch`: π explained
+ - `switch`: π explained
+ - `class`: π explained
+ - `extends`: π explained
- `with`
- - `new`: π known
+ - `new`: ποΈ used
- Functions
- - Arrow function: ποΈ used
- - Async function: ποΈ used
+ - Arrow function: π explained
+ - Async function: π explained
- Function declaration: π explained
- Function expression: π explained
- Default parameters: π explained
- Functional object: π explained
- - `Function.prototype.call`: π heard
- - `Function.prototype.bind`: π heard
- - `Function.prototype.apply`: π heard
+ - `Function.prototype.call`: π known
+ - `Function.prototype.bind`: ποΈ used
+ - `Function.prototype.apply`: π known
- `return`: π explained
- Data structures
- `Array`: ποΈ used
@@ -95,28 +95,28 @@
- `Set`: ποΈ used
- `WeakMap`
- `WeakSet`
- - Typed arrays
- - Mixins
- - `Object.assign`
+ - Typed arrays: π known
+ - Mixins: π heard
+ - `Object.assign`: π known
- Standard classes and namespaces
- - `Proxy`: π heard
- - `RegExp`: π known
- - `Date`: π heard
- - `Math`
+ - `Proxy`: π known
+ - `RegExp`: ποΈ used
+ - `Date`: ποΈ used
+ - `Math`: π explained
- `Reflect`
- - `Error`
+ - `Error`: ποΈ used
- `Atomics`
- - `JSON`
+ - `JSON`: ποΈ used
- `WeakRef`
- `FinalizationRegistry`
- `Intl`
- - `Promise`
- - `console`
- - Timers
+ - `Promise`: ποΈ used
+ - `console`: ποΈ used
+ - Timers: ποΈ used
- Infrastructure
- - V8
- - Node.js
- - npm: π known
- - prettier
- - MDN: π known
+ - V8: π heard
+ - Node.js: ποΈ used
+ - npm: ποΈ used
+ - prettier: π known
+ - MDN: ποΈ used
- TC39
diff --git a/Skills/NodeJS.md b/Skills/NodeJS.md
index b2b2d25f..8beb0967 100644
--- a/Skills/NodeJS.md
+++ b/Skills/NodeJS.md
@@ -3,57 +3,57 @@
- Internals and concepts
- Strong and weak sides of node.js
- Stateful and stateless servers
- - Nonblocking I/O and blocking code
- - Event loop phases
+ - Nonblocking I/O and blocking code: π heard
+ - Event loop phases: π heard
- Event loop microtasks and macrotasks
- Garbage collection
- Node.js LTS schedule
- - I/O-bound, CPU-bound, memory-bound tasks: π heard
+ - I/O-bound, CPU-bound, memory-bound tasks: π known
- Interactive applications (close to real-time)
- Modularity, layers and dependencies
- CommonJS modules
- - ECMAScript modules
- - Module `node:module`
+ - ECMAScript modules: π heard
+ - Module `node:module`: π heard
- 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`: ποΈ used
+ - Files `package.json`, `package-lock.json`: ποΈ used
- Module-based permissions model
- - Isolation with modularity: π heard
- - Dependency injection: π heard
+ - Isolation with modularity: π known
+ - Dependency injection: π known
- DI containers
- Coupling and cohesion: π explained
- - Framework agnostic approach: π heard
+ - Framework agnostic approach: π known
- Environment
- - Command line arguments
- - Node.js CLI
+ - Command line arguments: π heard
+ - Node.js CLI: ποΈ used
- Process-based permissions
- - Graceful shutdown: π heard
+ - Graceful shutdown: π known
- Clustering
- Watch filesystem changes with --watch: π heard
- Internal API
- - Streams API: π heard
+ - Streams API: π known
- Web Streams API
- Crypto API
- Password hashing with crypto.scrypt
- Web Crypto API
- - File system API (sync and async): π heard
- - Copy folder recursively
+ - File system API (sync and async): ποΈ used
+ - Copy folder recursively: π heard
- Worker threads: π heard
- Performance hooks
- Native fetch and nodejs/undici
- async_hooks
- - AsyncLocalStorage: π heard
- - AsyncResource: π heard
+ - AsyncLocalStorage: π known
+ - AsyncResource: π known
- Deprecated domain API
- Node.js single executable
- SharedArrayBuffer
- Module `node:worker_threads`
- - Module `node:child_process`
+ - Module `node:child_process`: π heard
- MessageChannel, MessagePort
- BroadcastChannel
- - Generating crypto random UUID
+ - Generating crypto random UUID: π heard
- Module `node:url` vs `new URL`
- Module `node:assert`
- Internationalization
@@ -63,28 +63,28 @@
- Endpoint throttling
- ALPN
- SNI callback
- - SSL certificates: π heard
- - Protocol agnostic approach: π heard
- - Fetch API: ποΈ used
+ - SSL certificates: π known
+ - Protocol agnostic approach: π known
+ - Fetch API: π explained
- IncomingMessage
- - HTTP(S): π known
+ - HTTP(S): ποΈ used
- TCP/SSL: π known
- UDP: π known
- TLS: π known
- - Websocket: π heard
+ - Websocket: π explained
- SSE
- HTTP/3 (QUIC)
- - Long polling
- - REST: π heard
+ - Long polling: π heard
+ - REST: π known
- RPC: π known
- - Routing: π heard
+ - Routing: ποΈ used
- DoS: π heard
- DDoS: π heard
- XSS: π heard
- Path traversal: π heard
- CSRF
- DNS: π known
- - SQL injection: π heard
+ - SQL injection: π known
- noDelay
- keep-alive: π heard
- IP sticky sessions
@@ -93,10 +93,10 @@
- Logging: π heard
- Application configuring: π heard
- Testing: π heard
- - CI/CD
+ - CI/CD: π heard
- Readable: π heard
- Writable: π heard
- - Transform: π heard
+ - Transform
- Back pressure: π heard
- Buffer
- Console: π heard
@@ -107,11 +107,11 @@
- Active record
- Query builder: π heard
- Object-Relational Mapping: π known
- - CRUD
+ - CRUD: π known
- DTO
- Error handling and debugging
- - `Error`: π known
- - `error.cause`
+ - `Error`: ποΈ used
+ - `error.cause`: π known
- `error.code`
- `error.message`: π known
- `error.stack`: π known
diff --git a/Skills/Paradigms.md b/Skills/Paradigms.md
index 1e1503c9..6dbc3031 100644
--- a/Skills/Paradigms.md
+++ b/Skills/Paradigms.md
@@ -4,27 +4,27 @@
- Procedural programming: π explained
- Imperative programming: π explained
- Structured programming: π explained
- - Non-structured programming
+ - Non-structured programming: π explained
- Functional programming: π explained
- - Prototype-based programming: π known
+ - Prototype-based programming: π explained
- Object-oriented programming: π explained
- Object-based programming: π known
- Generic programming: ποΈ used
- Concurrent computing: π known
- Asynchronous programming: ποΈ used
- - Parallel programming: ποΈ used
+ - Parallel programming: π explained
- Reactive programming: π explained
- Functional-reactive (FRP)
- - Automata-based programming
- - Domain-specific languages: π heard
- - Multi-paradigm programming: π heard
- - Metaprogramming
- - Actor model: π heard
- - Lambda calculus
- - Black box
- - Information hiding
- - Aspect-oriented programming
- - Anemic domain model
+ - Automata-based programming: π known
+ - Domain-specific languages: π known
+ - Multi-paradigm programming: π known
+ - Metaprogramming: π known
+ - Actor model: π known
+ - Lambda calculus: π heard
+ - Black box: π known
+ - Information hiding: π explained
+ - Aspect-oriented programming: π known
+ - Anemic domain model: π heard
- Class composition
- OOP basics
- Constructor: π explained
@@ -42,27 +42,27 @@
- Abstract class: π explained
- Interface: π explained
- Encapsulation: π explained
- - Hidden class
- - Object form
+ - Hidden class: π known
+ - Object form: ποΈ used
- Instance: π explained
- Introspection: π known
- Reflection: π known
- - The diamond problem
+ - The diamond problem: π known
- GRASP
- - Information expert
- - Creator
- - Controller
- - Indirection
- - Low coupling
- - High cohesion
- - Protected variations
- - Pure fabrication
+ - Information expert: π known
+ - Creator: π explained
+ - Controller: π explained
+ - Indirection: π explained
+ - Low coupling: π explained
+ - High cohesion: π explained
+ - Protected variations: π explained
+ - Pure fabrication: π explained
- SOLID
- - Single-responsibility principle (SRP)
- - Openβclosed principle (OCP)
- - Liskov substitution principle (LSP)
- - Interface segregation principle (ISP)
- - Dependency inversion principle (DIP)
+ - Single-responsibility principle (SRP): π explained
+ - Openβclosed principle (OCP): π explained
+ - Liskov substitution principle (LSP): π explained
+ - Interface segregation principle (ISP): π explained
+ - Dependency inversion principle (DIP): π explained
- Patterns
- Singleton: π explained
- Factory Method: π explained
@@ -76,16 +76,16 @@
- Command: π explained
- Iterator: π explained
- State: π explained
- - Bridge: π heard
+ - Bridge: π known
- Builder: π explained
- Prototype: π known
- Composite: π explained
- Decorator: π known
- - Flyweight: π heard
+ - Flyweight: π known
- Mediator: π known
- - Memento: π known
+ - Memento: ποΈ used
- Template Method: π explained
- Visitor: π explained
- - Reactor
- - Active object
- - Delegation
+ - Reactor: π heard
+ - Active object: π heard
+ - Delegation: π heard
diff --git a/Skills/Programming.md b/Skills/Programming.md
index 3e355070..36d31a88 100644
--- a/Skills/Programming.md
+++ b/Skills/Programming.md
@@ -1,36 +1,36 @@
## Programming fundamental concepts
- Concepts
- - Model
- - Modeling
- - Subject domain
- - Algorithm: π known
- - Syntax
- - Semantics
- - Abstraction
- - Paradigm: π known
- - Programm
- - Programming paradigm
- - Programming language
+ - Model: π explained
+ - Modeling: π explained
+ - Subject domain: π known
+ - Algorithm: π explained
+ - Syntax: π explained
+ - Semantics: π explained
+ - Abstraction: π explained
+ - Paradigm: π explained
+ - Programm: π explained
+ - Programming paradigm: π explained
+ - Programming language: π explained
- Contract: π explained
- Module: π known
- - Library
- - Package
+ - Library: π known
+ - Package: π known
- Component
- - Framework
- - Platform
- - Source code
- - Object code
- - Machine code
- - Microcode
- - Software engineering
+ - Framework: π explained
+ - Platform: π explained
+ - Source code: π explained
+ - Object code: π explained
+ - Machine code: π explained
+ - Microcode: π known
+ - Software engineering: π explained
- Decomposition: π explained
- - Control flow
- - Data flow
- - Code reuse
- - Defensive programming
- - Don't repeat yourself (DRY)
- - KISS principle
+ - Control flow: π explained
+ - Data flow: π explained
+ - Code reuse: π explained
+ - Defensive programming: π explained
+ - Don't repeat yourself (DRY): π explained
+ - KISS principle: π explained
- Syntax and concepts
- Value: π explained
- Identifier: π explained
@@ -55,55 +55,55 @@
- Assignment: π explained
- Regular expression: π explained
- Interface: π explained
- - Namespaces
+ - Namespaces: π heard
- Call stack: π known
- - Naming conventions
- - Coding conventions
- - Camel case
- - Snake case
- - Kebab case
- - Trailing commas
- - Return early: π known
- - Fail-fast
+ - Naming conventions: π explained
+ - Coding conventions: π explained
+ - Camel case: π explained
+ - Snake case: π explained
+ - Kebab case: π explained
+ - Trailing commas: π explained
+ - Return early: π explained
+ - Fail-fast: π explained
- Types
- Primitive types: π explained
- Reference types: π explained
- - Type systems
- - Strong typing
- - Weak typing
- - Duck typing
- - Static typing
- - Dynamic typing
+ - Type systems: π known
+ - Strong typing: π known
+ - Weak typing: π known
+ - Duck typing: π known
+ - Static typing: π explained
+ - Dynamic typing: π explained
- Nominal typing
- Structural typing
- Explicit typing
- Type inference
- - Covariance
- - Contravariance
+ - Covariance: π known
+ - Contravariance: π known
- Functions
- Signature: π explained
- Argument: π explained
- Parameter: π explained
- Pure function: π known
- - Lambda expression
+ - Lambda expression: ποΈ used
- Side effects: π explained
- - Closure: π known
- - Partial application: π heard
- - Currying: π known
- - Higher order: π known
+ - Closure: ποΈ used
+ - Partial application: ποΈ used
+ - Currying: π explained
+ - Higher order: π explained
- Recursion: ποΈ used
- - Tail call optimisation
- - Callback: π known
- - Listener: π known
- - Composition: π heard
+ - Tail call optimisation: π known
+ - Callback: π explained
+ - Listener: ποΈ used
+ - Composition: ποΈ used
- Pipe: π heard
- - Memoize: π heard
- - Wrapper
- - Functor: π heard
+ - Memoize: π known
+ - Wrapper: π heard
+ - Functor: π known
- Monad: π explained
- Monoid: π explained
- Generator: π known
- - Coroutine
+ - Coroutine: π heard
- Data structures
- Array: π explained
- Structure: ποΈ used
@@ -111,129 +111,129 @@
- Enum: ποΈ used
- Instance: ποΈ used
- Object: ποΈ used
- - Collection: ποΈ used
+ - Collection: π explained
- Set: ποΈ used
- Hash table: ποΈ used
- - Linked list: ποΈ used
- - Doubly list: ποΈ used
- - Unrolled list: π heard
- - Circular list: π heard
- - Queue: ποΈ used
- - Stack: ποΈ used
- - Deque: π heard
- - Tree: ποΈ used
- - Graph: ποΈ used
- - Iterator: ποΈ used
- - Mutable state: ποΈ used
- - Immutable state: ποΈ used
- - Serialization: ποΈ used
- - String parsing: ποΈ used
- - JSON
- - JSON5
- - YAML
+ - Linked list: π explained
+ - Doubly list: π explained
+ - Unrolled list: π known
+ - Circular list: π known
+ - Queue: π explained
+ - Stack: π explained
+ - Deque: π known
+ - Tree: π explained
+ - Graph: π explained
+ - Iterator: π explained
+ - Mutable state: π explained
+ - Immutable state: π explained
+ - Serialization: π explained
+ - String parsing: π explained
+ - JSON: π explained
+ - JSON5: π heard
+ - YAML: π known
- Networking
- - DNS
- - CDN
- - CORS
- - IPv4
- - IPv6
- - NAT
- - URL
- - URN
- - URI
+ - DNS: π known
+ - CDN: π heard
+ - CORS: π heard
+ - IPv4: π explained
+ - IPv6: π explained
+ - NAT: π heard
+ - URL: ποΈ used
+ - URN: π known
+ - URI: π known
- Process and tools
- Compiler: π explained
- - Just-in-time compilation
- - Ahead-of-time compilation
+ - Just-in-time compilation: π known
+ - Ahead-of-time compilation: π known
- Transpiler: π heard
- Linter: π heard
- Polyfill
- - Interpreter
- - Linker
- - Dynamic linking
- - Static linking
- - Runtime
- - Virtual machine
- - Register-based VM
- - Stack-based VM
- - Containerization
+ - Interpreter: π known
+ - Linker: π known
+ - Dynamic linking: π heard
+ - Static linking: π heard
+ - Runtime: π known
+ - Virtual machine: ποΈ used
+ - Register-based VM: π heard
+ - Stack-based VM: π heard
+ - Containerization: ποΈ used
- Debugger: ποΈ used
- - Tracing
+ - Tracing: ποΈ used
- Garbage collection: ποΈ used
- - Refactoring: π known
- - Code review: π known
- - Exception: π known
+ - Refactoring: ποΈ used
+ - Code review: ποΈ used
+ - Exception: ποΈ used
- Unittesting: π known
- - git: π known
- - Github: π known
- - Docker
- - Kubernetes
- - GCC
+ - git: ποΈ used
+ - Github: ποΈ used
+ - Docker: ποΈ used
+ - Kubernetes: π known
+ - GCC: π known
- LLVM
- Antipatterns
- Magic numbers: π explained
- Hard code: π explained
- - Soft code
- - Cryptic code
- - Improbability factor
- - Accidental complexity: π known
- - Action at a distance
+ - Soft code: π explained
+ - Cryptic code: π explained
+ - Improbability factor: π explained
+ - Accidental complexity: π explained
+ - Action at a distance: π explained
- Spaghetti: π explained
- - Silver bullet: π known
- - Not invented here: π known
- - Dead code: π known
- - Unreachable code: π known
- - Duplicate code: π known
- - Premature optimization
- - Micro-optimization
- - Nested loops
- - Long method/function/procedure
- - Long inheritance
- - Large class/file
- - Too many parameters
- - Pass-through parameters
+ - Silver bullet: π explained
+ - Not invented here: π explained
+ - Dead code: π explained
+ - Unreachable code: π explained
+ - Duplicate code: π explained
+ - Premature optimization: π explained
+ - Micro-optimization: π explained
+ - Nested loops: π explained
+ - Long method/function/procedure: π explained
+ - Long inheritance: π explained
+ - Large class/file: π explained
+ - Too many parameters: π explained
+ - Pass-through parameters: π explained
- 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
+ - Use switch/case: π explained
+ - Temporary field: π explained
+ - Handle object as instances and hashes at the same time: π known
+ - Use fields instead of arguments: π explained
+ - Data clump: π explained
+ - Feature envy: π explained
+ - Monkey patch: π known
+ - Yo-yo problem: π known
- Runtimes and virtual machines
- - Bytecode
- - V8
+ - Bytecode: π known
+ - V8: π heard
- VJM
- - CLR
+ - CLR: π heard
- Mono
- Operating systems
- - Interrupts
- - Drivers
- - Kernel
+ - Interrupts: π known
+ - Drivers: π known
+ - Kernel: π known
- Ring
- - Virtual memory
- - File system
- - Linux
+ - Virtual memory: π known
+ - File system: ποΈ used
+ - Linux: ποΈ used
- Unix
- BSD
- MacOS
- - Windows
+ - Windows: ποΈ used
- Real-time OS
- Embedded OS
- Standards
- - ASCII
- - Escape sequence
- - RFC
- - IETF
+ - ASCII: π explained
+ - Escape sequence: ποΈ used
+ - RFC: π explained
+ - IETF: π heard
- IANA
- - IEEE
- - Base64
- - ECMA
+ - IEEE: π heard
+ - Base64: π heard
+ - ECMA: π heard
- ICANN
- ISO
- - MIME
+ - MIME: π heard
- OWASP
- - UTF-8
- - W3C
+ - UTF-8: π heard
+ - W3C: π heard
- ODMG