Skip to content
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

Updated skills #3

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
139 changes: 59 additions & 80 deletions Profile/REPORT.md

Large diffs are not rendered by default.

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-365&nbsp;/&nbsp;594&nbsp;/&nbsp;733-009933?style=flat-square)](https://github.com/bohdanbulakh/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
18 changes: 9 additions & 9 deletions Skills/Async.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
## Asynchronous programming

- Theory
- Event loop: 👂 heard
- Event loop: 🎓 known
- `try..catch`: 🖐️ used
- Non-blocking: 👂 heard
- Async I/O: 🖐️ used
Expand Down Expand Up @@ -29,9 +29,9 @@
- Async/await: 🖐️ used
- Future
- Deferred
- Sync generator
- Async Generator
- Async Iterator
- Sync generator: 🎓 known
- Async Generator: 🎓 known
- Async Iterator: 🎓 known
- Event: 🖐️ used
- Coroutine
- Goroutine
Expand Down Expand Up @@ -60,8 +60,8 @@
- Spin Lock
- JavaScript & Node.js specific
- Timers: 🖐️ used
- `setImmediate`
- `nextTick`
- `setImmediate`: 🖐️ used
- `nextTick`: 👂 heard
- AbortController
- AbortSignal
- Promise unhandled rejection
Expand All @@ -70,8 +70,8 @@
- worker_threads
- Atomics
- High resolution clock
- Callback hell
- Promise hell
- Callback hell: 👂 heard
- Promise hell: 👂 heard
- ref() and unref()
- Error handling in async code
- Better stack traces with return await
Expand All @@ -81,7 +81,7 @@
- Techniques
- Async.js library
- RxJS library
- Promise.all
- Promise.all: 🎓 known
- Promise.allSettled
- Promise.race
- Promise.any
Expand Down
10 changes: 5 additions & 5 deletions Skills/Databases.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
- Entity-Relationship Diagram
- Normal forms
- Indexing
- Primary keys
- Foreign keys
- Primary keys: 🖐️ used
- Foreign keys: 🖐️ used
- Transactions
- Views
- Subqueries
Expand Down Expand Up @@ -87,8 +87,8 @@
- Data engineering
- Data warehousing
- Business intelligence
- Big data
- Data analysis
- AI tools
- Big data: 👂 heard
- Data analysis: 👂 heard
- AI tools: 👂 heard
- Cloud databases
- Data Visualization
66 changes: 33 additions & 33 deletions Skills/JavaScript.md
Original file line number Diff line number Diff line change
@@ -1,61 +1,61 @@
## JavaScript

- Language
- `Object`: 🖐️ used
- `Function`: 🖐️ used
- `Object`: 🙋 explained
- `Function`: 🙋 explained
- `Boolean`: 🙋 explained
- `Number`: 🙋 explained
- `BigInt`: 🎓 known
- `String`: 🙋 explained
- `Symbol`: 🎓 known
- `Infinity`: 🖐️ used
- `NaN`: 🖐️ used
- `undefined`: 🖐️ used
- `null`: 🖐️ used
- `Infinity`: 🙋 explained
- `NaN`: 🙋 explained
- `undefined`: 🙋 explained
- `null`: 🙋 explained
- `this`: 🖐️ used
- `instanceof`: 🖐️ used
- `...spread`: 🙋 explained
- `...rest`: 🙋 explained
- `typeof`: 🖐️ used
- Destructuring: 🙋 explained
- Generators: 👂 heard
- Generators: 🎓 known
- Iterators: 🎓 known
- Async generator: 👂 heard
- Async iterator: 👂 heard
- Async generator: 🎓 known
- Async iterator: 🎓 known
- Chaining: 🎓 known
- Optional chaining: 🎓 known
- IIFE: 🎓 known
- Async IIFE: 👂 heard
- `global`: 👂 heard
- `globalThis`: 👂 heard
- `window`: 👂 heard
- Async IIFE: 🎓 known
- `global`: 🎓 known
- `globalThis`: 🎓 known
- `window`: 🎓 known
- Getters and setters: 🖐️ used
- `__proto__`: 👂 heard
- `prototype`: 🎓 known
- Equality operators: 🖐️ used
- Logical operators: 🖐️ used
- Logical Assignment: 🖐️ used
- Equality operators: 🙋 explained
- Logical operators: 🙋 explained
- Logical Assignment: 🙋 explained
- Bitwise operators: 🎓 known
- Ternary operator: 🖐️ used
- `void`: 🖐️ used
- `yield`: 👂 heard
- Ternary operator: 🙋 explained
- `void`: 🙋 explained
- `yield`: 🎓 known
- `await`: 🖐️ used
- Template literal: 👂 heard
- Strict mode: 🖐️ used
- Hoisting: 🎓 known
- `delete`: 🖐️ used
- `in`: 🖐️ used
- `in`: 🙋 explained
- `super`: 🎓 known
- `eval`: 🖐️ used
- `static`: 👂 heard
- `static`: 🙋 explained
- `Number.parseInt`: 🖐️ used
- `Number.parseFloat`: 🖐️ used
- Property descriptors: 👂 heard
- Sealing properties
- Freezing properties
- Computed properties
- Sealing properties: 🎓 known
- Freezing properties: 🎓 known
- Computed properties: 🖐️ used
- Instance class fields
- Static class fields: 👂 heard
- Static class fields: 🖐️ used
- Private class fields: 🖐️ used
- Private class methods: 🖐️ used
- Statements
Expand All @@ -65,7 +65,7 @@
- `for`: 🙋 explained
- `for..in`: 🙋 explained
- `for..of`: 🙋 explained
- `for await`: 👂 heard
- `for await`: 🎓 known
- `throw`: 🖐️ used
- `break`: 🙋 explained
- `continue`: 🙋 explained
Expand All @@ -79,25 +79,25 @@
- `with`: 👂 heard
- `new`: 🖐️ used
- Functions
- Arrow function: 🖐️ used
- Async function: 🖐️ used
- Arrow function: 🙋 explained
- Async function: 🙋 explained
- Function declaration: 🖐️ used
- Function expression: 🎓 known
- Default parameters: 🖐️ used
- Functional object: 👂 heard
- `Function.prototype.call`: 👂 heard
- `Function.prototype.bind`: 🎓 known
- `Function.prototype.apply`: 👂 heard
- `return`: 🖐️ used
- `return`: 🙋 explained
- Data structures
- `Array`: 🖐️ used
- `Map`: 🖐️ used
- `Set`: 🖐️ used
- `WeakMap`: 🎓 known
- `WeakSet`: 🎓 known
- Typed arrays: 👂 heard
- Typed arrays: 🖐️ used
- Mixins: 👂 heard
- `Object.assign`: 👂 heard
- `Object.assign`: 🎓 known
- Standard classes and namespaces
- `Proxy`: 👂 heard
- `RegExp`: 👂 heard
Expand All @@ -106,8 +106,8 @@
- `Reflect`
- `Error`: 🖐️ used
- `Atomics`
- `JSON`: 🎓 known
- `WeakRef`
- `JSON`: 🖐️ used
- `WeakRef`: 👂 heard
- `FinalizationRegistry`
- `Intl`
- `Promise`: 🖐️ used
Expand Down
58 changes: 29 additions & 29 deletions Skills/NodeJS.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,33 @@
## Node.js and backend

- Internals and concepts
- Strong and weak sides of node.js
- Strong and weak sides of node.js: 👂 heard
- Stateful and stateless servers
- Nonblocking I/O and blocking code
- Event loop phases
- Event loop microtasks and macrotasks
- Garbage collection
- Event loop phases: 👂 heard
- Event loop microtasks and macrotasks: 👂 heard
- Garbage collection: 🎓 known
- Node.js LTS schedule
- I/O-bound, CPU-bound, memory-bound tasks
- Interactive applications (close to real-time)
- Modularity, layers and dependencies
- CommonJS modules: 🖐️ used
- ECMAScript modules: 🖐️ used
- Module `node:module`
- 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`: 🎓 known
- Module-based permissions model
- Isolation with modularity
- Dependency injection
- Dependency injection: 👂 heard
- DI containers
- Coupling and cohesion
- Framework agnostic approach
- Environment
- Command line arguments: 👂 heard
- Node.js CLI
- Command line arguments: 🎓 known
- Node.js CLI: 🖐️ used
- Process-based permissions
- Graceful shutdown
- Clustering
Expand Down Expand Up @@ -57,7 +57,7 @@
- Module `node:url` vs `new URL`
- Module `node:assert`
- Internationalization
- Blob, File, Buffer, module `node:buffer`
- Blob, File, Buffer, module `node:buffer`: 🖐️ used
- Module `node:zlib`
- Network
- Endpoint throttling
Expand All @@ -68,23 +68,23 @@
- Fetch API
- IncomingMessage
- HTTP(S)
- TCP/SSL
- UDP
- TCP/SSL: 🎓 known
- UDP: 🎓 known
- TLS
- Websocket
- Websocket: 🖐️ used
- SSE
- HTTP/3 (QUIC)
- Long polling
- REST
- REST: 🖐️ used
- RPC
- Routing
- DoS
- DDoS
- XSS
- Routing: 🎓 known
- DoS: 👂 heard
- DDoS: 👂 heard
- XSS: 👂 heard
- Path traversal
- CSRF
- DNS
- SQL injection
- DNS: 🎓 known
- SQL injection: 👂 heard
- noDelay
- keep-alive
- IP sticky sessions
Expand All @@ -98,21 +98,21 @@
- Writable
- Transform
- Back pressure
- Buffer
- Console
- Buffer: 🖐️ used
- Console: 🖐️ used
- Inspector
- Data access
- Data access layer
- Repository
- Data access layer: 🎓 known
- Repository: 🖐️ used
- Active record
- Query builder
- Object-Relational Mapping
- CRUD
- DTO
- CRUD: 🖐️ used
- DTO: 🖐️ used
- Error handling and debugging
- `Error`
- `Error`: 🖐️ used
- `error.cause`
- `error.code`
- `error.code`: 🖐️ used
- `error.message`
- `error.stack`
- `Error.captureStackTrace`
Expand Down
10 changes: 5 additions & 5 deletions Skills/Paradigms.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
- Generic programming
- Concurrent computing
- Asynchronous programming: 🖐️ used
- Parallel programming
- Reactive programming
- Parallel programming: 👂 heard
- Reactive programming: 👂 heard
- Functional-reactive (FRP)
- Automata-based programming
- Domain-specific languages
Expand All @@ -29,13 +29,13 @@
- OOP basics
- Constructor: 🖐️ used
- Operator `new`: 🖐️ used
- Static method
- Static method: 🖐️ used
- Method: 🖐️ used
- Async method: 🖐️ used
- Getters, Setters: 🖐️ used
- Public fields: 🖐️ used
- Private fields: 🖐️ used
- Field declarations
- Field declarations: 🖐️ used
- Inheritance: 🎓 known
- Parent class: 🎓 known
- Polymorphism: 🎓 known
Expand Down Expand Up @@ -74,7 +74,7 @@
- Proxy: 👂 heard
- Chain of Responsibility: 👂 heard
- Command
- Iterator: 👂 heard
- Iterator: 🎓 known
- State
- Bridge
- Builder
Expand Down
Loading