Skip to content
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
5 changes: 4 additions & 1 deletion backend/node.js/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
# Список уровней:

- **Junior:**
* [junior-1](./junior-1/README.md)

- [junior-1](./junior-1/README.md)
- [junior-2](./junior-2/)
- [junior-3](./junior-3/README.md)

- **Middle**

Expand Down
45 changes: 22 additions & 23 deletions backend/node.js/junior-1/databases/PostgreSQL.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,27 @@
# PostgreSQL

* What is PostreSQL?
* What are the basic most commonly used types?
* What are domains? How to create a domain? How to create custom type? Enum type?
* What is constraint?
* How to use this constraints?
* Primary Key
* Foreign Key
* Unique
* Not Null
* How to use transactions in sql?
* How to create dump?
* How to restore dump?
* What is a View table?
* How to create it?
* How to update it?
* What is materialized views?

- What is PostgreSQL?
- What are the basic most commonly used types?
- What are domains? How to create a domain? How to create custom type? Enum type?
- What is constraint?
- How to use this constraints?
- Primary Key
- Foreign Key
- Unique
- Not Null
- How to use transactions in sql?
- How to create dump?
- How to restore dump?
- What is a View table?
- How to create it?
- How to update it?
- What is materialized views?

### Resources

* [Postgresql documentation: Chapter 8. Data Types](https://www.postgresql.org/docs/current/datatype.html)
* [A Look at PostgreSQL User-defined Data Types](https://neon.tech/postgresql/postgresql-tutorial/postgresql-user-defined-data-types)
* [PostgreSQL enum](https://neon.tech/postgresql/postgresql-tutorial/postgresql-enum)
* [Postgres Constraints for Newbies](https://www.crunchydata.com/blog/postgres-constraints-for-newbies)
* [PostgreSQL Transaction](https://neon.tech/postgresql/postgresql-tutorial/postgresql-transaction)
* [PostgreSQL Views](https://neon.tech/postgresql/postgresql-views)
- [Postgresql documentation: Chapter 8. Data Types](https://www.postgresql.org/docs/current/datatype.html)
- [A Look at PostgreSQL User-defined Data Types](https://neon.tech/postgresql/postgresql-tutorial/postgresql-user-defined-data-types)
- [PostgreSQL enum](https://neon.tech/postgresql/postgresql-tutorial/postgresql-enum)
- [Postgres Constraints for Newbies](https://www.crunchydata.com/blog/postgres-constraints-for-newbies)
- [PostgreSQL Transaction](https://neon.tech/postgresql/postgresql-tutorial/postgresql-transaction)
- [PostgreSQL Views](https://neon.tech/postgresql/postgresql-views)
6 changes: 6 additions & 0 deletions backend/node.js/junior-2/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Node.js Junior 2 level

- [Docker](../../shared/junior-2/docker.md)
- [Linux](../../shared/junior-2/linux.md)
- [SQL](./databases/sql.md)
- [Integration Tests](./tests/intergation-tests.md)
29 changes: 29 additions & 0 deletions backend/node.js/junior-2/databases/sql.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Junior-2 Sql level

##### `The Postgresql DBMS dialect`

- ###### `ORDER BY`

- What is an `ORDER BY` and what is it used for?
- What types of `ORDER BY` sorting exist?

- ###### `LIMIT and OFFSET`

- What is the `LIMIT`?
- What is the `OFFSET`?
- Give an example of how `LIMIT` and `OFFSET` can be used.

### Tasks

- Write an sql script that will pick up all users and sort them by id and creation time (descending sort), the script should pick up only 5 users. Table schema:

```
user table
________________________________
| id | email | created_at | name |
```

### Resources

- [Postgresql documentation: Order by](https://www.postgresql.org/docs/current/queries-order.html)
- [Postgresql documentation: Take and limit](https://www.postgresql.org/docs/current/queries-limit.html)
18 changes: 18 additions & 0 deletions backend/node.js/junior-2/tests/intergation-tests.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Basics and terminology:

- What is integration testing and how does it differ from unit testing?
- Which components are usually tested in an integration test?
- What are the advantages and disadvantages of integration testing?
- What tools do you know for conducting integration testing in Node.js ?
- What is the complexity of integration testing compared to unit testing?

### Recommendations

- It is best to raise a separate database that is designed specifically for testing (for example, raise the database via docker)

### Resources

- [Jest documentation](https://jestjs.io/docs)
- [Jest documentation: Getting started](https://jestjs.io/docs/getting-started)
- [Integration testing](https://en.wikipedia.org/wiki/Integration_testing)
- [Cypress](https://www.cypress.io)
9 changes: 9 additions & 0 deletions backend/node.js/junior-3/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Node.js Junior 3 level

- [Design Principles](../../../shared/junior-3/basicCodingAndDesignPrinciples.md)
- [Git](../../../shared/junior-3/git.md)
- [Testing](../../../shared/junior-3/testing.md)
- [Typescript](./ts/ts.md)
- [SQL](./databases/sql.md)
- [NoSql](./databases/nosql.md)
- [Patterns](./patterns/patterns.md)
10 changes: 10 additions & 0 deletions backend/node.js/junior-3/databases/nosql.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Junior-3 level Not only Sql

- `BASE`, what is it?
- What kind of in-memory database do you know and what can it be used for?

### Resources

- [BASE](https://www.lifewire.com/abandoning-acid-in-favor-of-base-1019674)
- [Redis documentation](https://master--redis-doc.netlify.app/docs/)
- [Dev: Caching](https://dev.to/aseemwangoo/using-redis-for-caching-2022-2og5?ysclid=m55dcpi0cw300594505)
32 changes: 32 additions & 0 deletions backend/node.js/junior-3/databases/sql.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Junior-3 level Sql

##### `The Postgresql DBMS dialect`

- ###### `aggregation functions`

* What are `aggregation functions`?
* What are the `aggregation functions` for?
* What does each of these `aggregation functions` do? `COUNT`, `MIN`, `MAX`, `AVG`, `ARRAY_AGG`, `JSON_AGG`, `JSON_ARRAYAGG`, `SUM`, `XMLAGG`
* What is the `GROUP BY`?
* What is the `HAVING`?

- ###### `JSON structure in database`

* What is the `JSONB`?
* Which data structure might `JSONB` be suitable for?

- ###### `JOIN`

* What is the `SELF JOIN`?

- ###### `General`

* `ACID`, what is it?

### Resources

- [Postgresql documentation: Aggregate functions](https://www.postgresql.org/docs/current/functions-aggregate.html)
- [Dev: Aggregate functions](https://dev.to/timescale/how-postgresql-aggregation-works-and-how-it-inspired-our-hyperfunctions-design-33k6?ysclid=m55b6zmvxm400507156)
- [Postgresql documentation: JSONB](https://www.postgresql.org/docs/current/datatype-json.html)
- [ACID](https://en.wikipedia.org/wiki/ACID)
- [Dev: ACID](https://dev.to/karimerrahli/acid-in-database-systems-11ih?ysclid=m55d6li2ol351610386)
9 changes: 9 additions & 0 deletions backend/node.js/junior-3/patterns/patterns.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Junior-3 level Patterns

- What is `MVC`?
- What is `MVVM`?

### Resources

- [MVC pattern](https://doka-guide.vercel.app/tools/architecture-mvc/)
- [MVVM pattern](https://dev.to/nhannguyendevjs/basic-mvvm-architecture-in-javascript-with-knockoutjs-14nk?ysclid=m57ynnexqh42409593)
21 changes: 21 additions & 0 deletions backend/node.js/junior-3/ts/ts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Typescript

- What is metadata in typescript?
- Where can I use metadata?
- Which library would you use for metadata?
- What is a property descriptor?
- What types of decorators are there?
- What is function overloading?
- What properties do I need to include in tsconfig in order for the decorators to work?
- What are alias paths for in typescript?

### Task

- Write a decorator that will collect dependency data in the constructor.
- Write a decorator that, when a class method is instantiated, outputs a message with the class name to the console.

### Resources

- [Official documentation: decorators](https://www.typescriptlang.org/docs/handbook/decorators.html)
- [Reflect metadata](https://techsparx.com/nodejs/typescript/decorators/reflection.html)
- [Dev: functions overload](https://dev.to/logrocket/implementing-function-overloading-in-typescript-2o7j?ysclid=m55bql87gj305756575)