Skip to content

test 29.01.2025 #267

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
226 changes: 226 additions & 0 deletions Profile/REPORT.md
Original file line number Diff line number Diff line change
@@ -1 +1,227 @@
## Software engineering self assessment

[![Skills](https://img.shields.io/badge/Self_Assessment-254 / 310 / 735-009933?style=flat-square)](https://github.com/DmitriyBad/SelfAssessment/blob/main/Profile/REPORT.md)

```
[![Skills](https://img.shields.io/badge/Self_Assessment-254 / 310 / 735-009933?style=flat-square)](https://github.com/DmitriyBad/SelfAssessment/blob/main/Profile/REPORT.md)
```

```
<a href="https://github.com/DmitriyBad/SelfAssessment/blob/main/Profile/REPORT.md"><img alt="Skills" src="https://img.shields.io/badge/Self_Assessment-254&nbsp;/&nbsp;310&nbsp;/&nbsp;735-009933?style=flat-square"></a>
```

## Assessment totals

| Unit | Marked | Of |
| ---- | ------ | -- |
| [Programming](/Skills/Programming.md) | | |
| &nbsp;&nbsp;&nbsp;&nbsp; Concepts | `30` | `30` |
| &nbsp;&nbsp;&nbsp;&nbsp; Syntax and concepts * | `0` | `33` |
| &nbsp;&nbsp;&nbsp;&nbsp; Types * | `0` | `14` |
| &nbsp;&nbsp;&nbsp;&nbsp; Functions * | `0` | `23` |
| &nbsp;&nbsp;&nbsp;&nbsp; Data structures * | `0` | `26` |
| &nbsp;&nbsp;&nbsp;&nbsp; Networking + | `0` | `9` |
| &nbsp;&nbsp;&nbsp;&nbsp; Process and tools + | `0` | `28` |
| &nbsp;&nbsp;&nbsp;&nbsp; Antipatterns ~ | `0` | `30` |
| &nbsp;&nbsp;&nbsp;&nbsp; Runtimes and virtual machines + | `0` | `5` |
| &nbsp;&nbsp;&nbsp;&nbsp; Operating systems + | `0` | `13` |
| &nbsp;&nbsp;&nbsp;&nbsp; Standards ~ | `0` | `15` |
| [JavaScript](/Skills/JavaScript.md) | | |
| &nbsp;&nbsp;&nbsp;&nbsp; Language | `0` | `57` |
| &nbsp;&nbsp;&nbsp;&nbsp; Statements | `0` | `19` |
| &nbsp;&nbsp;&nbsp;&nbsp; Functions | `0` | `10` |
| &nbsp;&nbsp;&nbsp;&nbsp; Data structures | `0` | `8` |
| &nbsp;&nbsp;&nbsp;&nbsp; Standard classes and namespaces | `0` | `14` |
| &nbsp;&nbsp;&nbsp;&nbsp; Infrastructure | `0` | `6` |
| [Async](/Skills/Async.md) | | |
| &nbsp;&nbsp;&nbsp;&nbsp; Theory | `15` | `20` |
| &nbsp;&nbsp;&nbsp;&nbsp; Async contracts | `13` | `18` |
| &nbsp;&nbsp;&nbsp;&nbsp; Async adapters and utils | `5` | `5` |
| &nbsp;&nbsp;&nbsp;&nbsp; Async abstractions interfaces | `8` | `11` |
| &nbsp;&nbsp;&nbsp;&nbsp; JavaScript & Node.js specific | `13` | `17` |
| &nbsp;&nbsp;&nbsp;&nbsp; Techniques | `6` | `10` |
| [NodeJS](/Skills/NodeJS.md) | | |
| &nbsp;&nbsp;&nbsp;&nbsp; Internals and concepts | `7` | `9` |
| &nbsp;&nbsp;&nbsp;&nbsp; Modularity, layers and dependencies | `11` | `14` |
| &nbsp;&nbsp;&nbsp;&nbsp; Environment | `4` | `6` |
| &nbsp;&nbsp;&nbsp;&nbsp; Internal API | `12` | `25` |
| &nbsp;&nbsp;&nbsp;&nbsp; Network | `16` | `28` |
| &nbsp;&nbsp;&nbsp;&nbsp; Technique and tools | `12` | `12` |
| &nbsp;&nbsp;&nbsp;&nbsp; Data access | `6` | `7` |
| &nbsp;&nbsp;&nbsp;&nbsp; Error handling and debugging | `12` | `14` |
| &nbsp;&nbsp;&nbsp;&nbsp; Integrations and bindings | `0` | `16` |
| [Paradigms](/Skills/Paradigms.md) | | |
| &nbsp;&nbsp;&nbsp;&nbsp; Theory | `25` | `25` |
| &nbsp;&nbsp;&nbsp;&nbsp; OOP basics | `21` | `21` |
| &nbsp;&nbsp;&nbsp;&nbsp; GRASP | `8` | `8` |
| &nbsp;&nbsp;&nbsp;&nbsp; SOLID | `5` | `5` |
| &nbsp;&nbsp;&nbsp;&nbsp; Patterns | `25` | `25` |
| [Architecture](/Skills/Architecture.md) | | |
| &nbsp;&nbsp;&nbsp;&nbsp; Application structure | `0` | `27` |
| &nbsp;&nbsp;&nbsp;&nbsp; Application architecture | `0` | `36` |
| &nbsp;&nbsp;&nbsp;&nbsp; Solution architecture | `0` | `18` |
| &nbsp;&nbsp;&nbsp;&nbsp; Enterprise architecture | `0` | `18` |

## [JavaScript](/Skills/JavaScript.md)


| To start asynchronous programming | actual | ⟶ | required |
| --- | --- | --- | --- |

Total: you have `0` of `72` skills, `72` to be upgraded, and `0` above needed

| To start Node.js | actual | ⟶ | required |
| --- | --- | --- | --- |

Total: you have `0` of `98` skills, `98` to be upgraded, and `0` above needed

## [Async](/Skills/Async.md)


| For Node.js applied programming | actual | ⟶ | required |
| --- | --- | --- | --- |
| Race conditions | 👂 heard | ⟶ | 🎓 known |
| Callback-last-error-first | 🎓 known | ⟶ | 🖐️ used |
| Sync generator | 🤷 unknown | ⟶ | 🎓 known |
| Async Generator | 🤷 unknown | ⟶ | 🎓 known |
| Async Iterator | 🤷 unknown | ⟶ | 🎓 known |
| Event | 🎓 known | ⟶ | 🖐️ used |
| Signal | 👂 heard | ⟶ | 🖐️ used |
| callbackify | 👂 heard | ⟶ | 🎓 known |
| promisify | 👂 heard | ⟶ | 🎓 known |
| asyncify | 👂 heard | ⟶ | 🎓 known |
| EventEmitter | 👂 heard | ⟶ | 🖐️ used |
| Readable | 🎓 known | ⟶ | 🖐️ used |
| Writable | 🎓 known | ⟶ | 🖐️ used |
| Transform | 👂 heard | ⟶ | 🖐️ used |
| Semaphore | 🤷 unknown | ⟶ | 👂 heard |
| Timers | 🎓 known | ⟶ | 🖐️ used |
| `setImmediate` | 🎓 known | ⟶ | 🖐️ used |
| `nextTick` | 🎓 known | ⟶ | 🖐️ used |
| AbortController | 👂 heard | ⟶ | 🖐️ used |
| AbortSignal | 👂 heard | ⟶ | 🎓 known |
| Promise hell | 🤷 unknown | ⟶ | 🎓 known |
| AsyncLocalStorage | 🤷 unknown | ⟶ | 👂 heard |
| AsyncResource | 🤷 unknown | ⟶ | 👂 heard |
| Promise.allSettled | 🎓 known | ⟶ | 🖐️ used |
| Promise.race | 🎓 known | ⟶ | 🖐️ used |
| Promise.any | 🎓 known | ⟶ | 🖐️ used |
| Web Locks API | 🤷 unknown | ⟶ | 👂 heard |
| Revealing constructor | 🤷 unknown | ⟶ | 🎓 known |

Total: you have `22` of `50` skills, `28` to be upgraded, and `6` above needed

| To start Node.js | actual | ⟶ | required |
| --- | --- | --- | --- |
| Async Iterator | 🤷 unknown | ⟶ | 🎓 known |
| Event | 🎓 known | ⟶ | 🖐️ used |
| Signal | 👂 heard | ⟶ | 🎓 known |
| callbackify | 👂 heard | ⟶ | 🎓 known |
| promisify | 👂 heard | ⟶ | 🎓 known |
| asyncify | 👂 heard | ⟶ | 🎓 known |
| EventEmitter | 👂 heard | ⟶ | 🖐️ used |
| Transform | 👂 heard | ⟶ | 🎓 known |
| Timers | 🎓 known | ⟶ | 🖐️ used |
| `setImmediate` | 🎓 known | ⟶ | 🖐️ used |
| AbortController | 👂 heard | ⟶ | 🖐️ used |
| AbortSignal | 👂 heard | ⟶ | 🎓 known |
| Promise hell | 🤷 unknown | ⟶ | 🎓 known |
| Promise.allSettled | 🎓 known | ⟶ | 🖐️ used |
| Promise.race | 🎓 known | ⟶ | 🖐️ used |
| Promise.any | 🎓 known | ⟶ | 🖐️ used |
| Revealing constructor | 🤷 unknown | ⟶ | 👂 heard |

Total: you have `20` of `37` skills, `17` to be upgraded, and `5` above needed

| For Node.js platform/system programming | actual | ⟶ | required |
| --- | --- | --- | --- |
| Pattern Reactor | 👂 heard | ⟶ | 🎓 known |
| CAS operations | 🤷 unknown | ⟶ | 👂 heard |
| Race conditions | 👂 heard | ⟶ | 🖐️ used |
| Dead locks | 🎓 known | ⟶ | 🖐️ used |
| Live locks | 🎓 known | ⟶ | 🖐️ used |
| Concurrent programming | 👂 heard | ⟶ | 🎓 known |
| Parallel programming | 👂 heard | ⟶ | 🎓 known |
| Actor Model | 👂 heard | ⟶ | 🎓 known |
| Thread | 🎓 known | ⟶ | 🖐️ used |
| Callback-last-error-first | 🎓 known | ⟶ | 🖐️ used |
| Thenable | 🎓 known | ⟶ | 🖐️ used |
| Sync generator | 🤷 unknown | ⟶ | 🖐️ used |
| Async Generator | 🤷 unknown | ⟶ | 🖐️ used |
| Async Iterator | 🤷 unknown | ⟶ | 🖐️ used |
| Event | 🎓 known | ⟶ | 🖐️ used |
| Coroutine | 🤷 unknown | ⟶ | 👂 heard |
| Goroutine | 🤷 unknown | ⟶ | 👂 heard |
| Signal | 👂 heard | ⟶ | 🖐️ used |
| Chain of responsibility | 👂 heard | ⟶ | 🖐️ used |
| Locks | 🎓 known | ⟶ | 🖐️ used |
| callbackify | 👂 heard | ⟶ | 🖐️ used |
| promisify | 👂 heard | ⟶ | 🖐️ used |
| asyncify | 👂 heard | ⟶ | 🖐️ used |
| EventEmitter | 👂 heard | ⟶ | 🖐️ used |
| Observable/Observer | 🎓 known | ⟶ | 🖐️ used |
| Readable | 🎓 known | ⟶ | 🖐️ used |
| Writable | 🎓 known | ⟶ | 🖐️ used |
| Transform | 👂 heard | ⟶ | 🖐️ used |
| Async Pool | 🎓 known | ⟶ | 🖐️ used |
| Async Queue | 🎓 known | ⟶ | 🖐️ used |
| Async Collector | 🎓 known | ⟶ | 🖐️ used |
| Semaphore | 🤷 unknown | ⟶ | 🖐️ used |
| Mutex | 🤷 unknown | ⟶ | 🎓 known |
| Spin Lock | 🤷 unknown | ⟶ | 🎓 known |
| Timers | 🎓 known | ⟶ | 🖐️ used |
| `setImmediate` | 🎓 known | ⟶ | 🖐️ used |
| `nextTick` | 🎓 known | ⟶ | 🖐️ used |
| AbortController | 👂 heard | ⟶ | 🖐️ used |
| AbortSignal | 👂 heard | ⟶ | 🖐️ used |
| Promise double resolve | 🤷 unknown | ⟶ | 🖐️ used |
| Atomics | 🤷 unknown | ⟶ | 🎓 known |
| High resolution clock | 🤷 unknown | ⟶ | 🎓 known |
| Callback hell | 🎓 known | ⟶ | 🖐️ used |
| Promise hell | 🤷 unknown | ⟶ | 🖐️ used |
| ref() and unref() | 👂 heard | ⟶ | 🖐️ used |
| JSON streaming serialization | 👂 heard | ⟶ | 🖐️ used |
| AsyncLocalStorage | 🤷 unknown | ⟶ | 🖐️ used |
| AsyncResource | 🤷 unknown | ⟶ | 🖐️ used |
| Promise.allSettled | 🎓 known | ⟶ | 🖐️ 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 |

Total: you have `20` of `75` skills, `55` to be upgraded, and `5` above needed

## [NodeJS](/Skills/NodeJS.md)


| API and domain logic developer | actual | ⟶ | required |
| --- | --- | --- | --- |

Total: you have `0` of `0` skills, `0` to be upgraded, and `47` above needed

| Enterprise applications | actual | ⟶ | required |
| --- | --- | --- | --- |

Total: you have `0` of `0` skills, `0` to be upgraded, and `61` above needed

| Real-Time, gamedev, messaging | actual | ⟶ | required |
| --- | --- | --- | --- |

Total: you have `0` of `0` skills, `0` to be upgraded, and `45` above needed

| Web and Frontend | actual | ⟶ | required |
| --- | --- | --- | --- |

Total: you have `0` of `0` skills, `0` to be upgraded, and `29` above needed

| Fullstack development | actual | ⟶ | required |
| --- | --- | --- | --- |

Total: you have `0` of `0` skills, `0` to be upgraded, and `53` above needed

| Platform/system development | actual | ⟶ | required |
| --- | --- | --- | --- |

Total: you have `0` of `0` skills, `0` to be upgraded, and `71` above needed
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## Software engineering self assessment

<!--- $BADGE -->
[![Skills](https://img.shields.io/badge/Self_Assessment-254&nbsp;/&nbsp;310&nbsp;/&nbsp;735-009933?style=flat-square)](https://github.com/DmitriyBad/SelfAssessment/blob/main/Profile/REPORT.md)

This _knowledge assessment_ can be used as an automated tool for **tracking** and **analyzing** an engineer’s **microskills**, for personal use, for reference in your **CV** or profile (github, linkedin, etc.). After filling skills, the system generates a button in `html` and `md` with a link to your fork of the repo. The tool speeds up **interviews** and **certification** for both the applicant and the interviewer: you can check only part of the key knowledge and then sign a commit with a personal GPG key. If you periodically take an assessment, or do it before and after the start of _training_, and store branches or tags with the results of an inventory of microskills at a certain point in time, then it is very convenient to compare the _progress_ you have made during the period of _training_, reading a book, working on a project etc. Currently, assessment has more than **700 microskills** and will be constantly expanded in all areas, languages and technologies (for example `Proxy`, `Promise`, `Future`, `SRP`, `DI`, `Boxing`, `Cohesion`, `Tail call recursion`...) with automatic comparison of them with _roles_ (for example `Node.js API developer`, `Node.js gamedev`, `Frontend`...) the robot generates a report via `Github Actions CI` with recommendations on what needs to be improved. New roles and knowledge areas will be available soon, after which you can rebase your repo on the original one to receive the new report.

Expand Down
120 changes: 60 additions & 60 deletions Skills/Async.md
Original file line number Diff line number Diff line change
@@ -1,88 +1,88 @@
## Asynchronous programming

- Theory
- Event loop
- `try..catch`
- Non-blocking
- Async I/O
- Thread pool
- Pattern Reactor
- Event loop: 🎓 known
- `try..catch`: 🖐️ used
- Non-blocking: 🖐️ used
- Async I/O: 🖐️ used
- Thread pool: 🎓 known
- Pattern Reactor: 👂 heard
- CAS operations
- epoll
- kqueue
- Completion ports
- Event ports
- libuv
- Race conditions
- Dead locks
- Live locks
- Concurrent programming
- Parallel programming
- Actor Model
- Thread
- Process
- libuv: 🎓 known
- Race conditions: 👂 heard
- Dead locks: 🎓 known
- Live locks: 🎓 known
- Concurrent programming: 👂 heard
- Parallel programming: 👂 heard
- Actor Model: 👂 heard
- Thread: 🎓 known
- Process: 🖐️ used
- Async contracts
- Callbacks
- Callback-last-error-first
- Thenable
- Promise
- Async/await
- Future
- Deferred
- Callbacks: 🖐️ used
- Callback-last-error-first: 🎓 known
- Thenable: 🎓 known
- Promise: 🖐️ used
- Async/await: 🖐️ used
- Future: 🎓 known
- Deferred: 🎓 known
- Sync generator
- Async Generator
- Async Iterator
- Event
- Event: 🎓 known
- Coroutine
- Goroutine
- Signal
- Stream
- Chain of responsibility
- Middleware
- Locks
- Signal: 👂 heard
- Stream: 🖐️ used
- Chain of responsibility: 👂 heard
- Middleware: 🖐️ used
- Locks: 🎓 known
- Async adapters and utils
- callbackify
- promisify
- asyncify
- Callbacks compose
- Async compose
- callbackify: 👂 heard
- promisify: 👂 heard
- asyncify: 👂 heard
- Callbacks compose: 🎓 known
- Async compose: 🎓 known
- Async abstractions interfaces
- EventEmitter
- Observable/Observer
- Readable
- Writable
- Transform
- Async Pool
- Async Queue
- Async Collector
- EventEmitter: 👂 heard
- Observable/Observer: 🎓 known
- Readable: 🎓 known
- Writable: 🎓 known
- Transform: 👂 heard
- Async Pool: 🎓 known
- Async Queue: 🎓 known
- Async Collector: 🎓 known
- Semaphore
- Mutex
- Spin Lock
- JavaScript & Node.js specific
- Timers
- `setImmediate`
- `nextTick`
- AbortController
- AbortSignal
- Promise unhandled rejection
- Promise double resolve
- Timers: 🎓 known
- `setImmediate`: 🎓 known
- `nextTick`: 🎓 known
- AbortController: 👂 heard
- AbortSignal: 👂 heard
- Promise unhandled rejection: 🖐️ used
- Promise double resolve Promise double resolve: 🖐️ used
- 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
- Callback hell: 🎓 known
- Promise hell Promise hell: 🎓 known
- ref() and unref(): 👂 heard
- Error handling in async code: 🖐️ used
- Better stack traces with return await: 🖐️ used
- JSON streaming serialization: 👂 heard
- AsyncLocalStorage
- AsyncResource
- Techniques
- Async.js library
- RxJS library
- Promise.all
- Promise.allSettled
- Promise.race
- Promise.any
- Async.js library: 🖐️ used
- RxJS library: 👂 heard
- Promise.all: 🖐️ used
- Promise.allSettled: 🎓 known
- Promise.race: 🎓 known
- Promise.any: 🎓 known
- Web Locks API
- IPC
- Channel API
Expand Down
Loading