Skip to content

Latest commit

 

History

History
95 lines (77 loc) · 7.35 KB

nodejs.md

File metadata and controls

95 lines (77 loc) · 7.35 KB

Вопросы для бэкендеров на NodeJS

Вопросы по soft skills Вопросы по алгоритмам

Junior

Общие вопросы

  1. Почему ты решил стать бэкенд-разработчиком, чем тебя привлекает профессия?
  2. Писал ли тесты? Как их писал? Какие есть типы тестов?
  3. Что использовал для валидации данных?
  4. Какие есть два подхода в создании телеграм ботов?
  5. Что такое Swagger?
  6. Что такое вебсокеты??
  7. Раскрой принципы SOLID?
  8. Что такое dependency injection?
  9. Что такое декораторы? Где они используются?
  10. Приходилось ли тебе самому писать нативные декораторы? Не NestJS декораторы, а свои. Расскажи про этот опыт.
  11. Что такое ООП? Раскрой понятия полиморфизм, наследование, инкапсуляция
  12. Какие ORM знаешь и какие использовал? Какие плюсы и минусы можешь выделить?

Javascript

  1. Отличия ES5 и ES6?
  2. Расскажи, что такое NodeJS? Из чего он состоит?
  3. Какие знаешь встроенные модули NodeJS?
  4. Можешь рассказать, что такое Event Loop? Какие есть фазы? Если в Event Loop ничего не останется после выполнения, то что произойдет? В какой последовательности вызываются микро и макро таски?
  5. Можешь рассказать, что такое замыкания в JS? Есть ли такое в других языках?
  6. Если мы в функцию передаем аргументы, как они передаются - по ссылке или по значению?
  7. Строки в JavaScript изменяемые? Или при добавлении символа в конец строки, это уже будет новая строка?
  8. Что происходит на сервере после написания кода на TS?
  9. Что происходит после того, как JavaScript передается в Node.js?
  10. Из каких компонентов состоит Node.js?
  11. Что внутри Node.js занимается оптимизацией? В какой момент происходит оптимизация? Что происходит с JS кодом чтобы он был “ближе к движку”? Во что разбирается JS код с помощью V8?
  12. Node.js однопоточна? Как реализуется многопоточность в Node.js в случае необходимости? Что такое трек пулл? Кто администрирует последовательности вызовов?
  13. Как можно оценить производительность приложения Node.js?
  14. Если поставить таймер на 10 секунд, то через сколько он сработает? Почему?
  15. Что такое package.json?
  16. Что такое package-lock.json? Зачем нужен? Зачем его коммитить? В чем разница npm i и npm ci?
  17. Когда-нибудь приходило к тебе понимание типа “а вот здесь я хочу использовать eventemitter”? Когда его лучше использовать?

Typescript

  1. Node.js может выполнять TypeScript?
  2. Отличия type и interface в TS?
  3. Отличия типа и абстрактного класса?
  4. Настраивал ли typeconfig?
  5. Какие есть встроенные типы Typescript?

Базы данных

  1. С какими СУБД работал?
  2. Фундаментальные различия между MongoDB и Postgress? В каких случаях что выберешь?
  3. Знаком с ACID? Можешь рассказать, что это такое?
  4. Какие виды JOIN знаешь? Чем они отличаются?
  5. Пользовался ли транзакциями? В каких случаях?
  6. Делал ли внешние ключи в базах данных? Зачем они нужны?
  7. Миграции/сиды писал?

Сети

  1. В чем различие TCP и UDP?
  2. Расскажи про OSI. На каком уровне находится HTTP?
  3. Что из себя представляет HTTP запрос? Структура? Тело есть у всех HTTP запросов?
  4. На чем основан HTTP запрос? На каком протоколе? А еще глубже?
  5. Можешь рассказать, что такое REST? Использовал ли в работе REST?
  6. Какой HTTP метод используется для обновления небольшого кусочка по REST?

Middle

Общие вопросы

  1. Какие минусы у микросервисной архитектуры? Какие плюсы?
  2. Работал с микросервисами? Расскажи, какие могут быть минусы?
  3. Что такое репликация и шардирование? Когда что использовать?
  4. Масштабирование, горизонтальное, вертикальное. Можешь рассказать, что такое?
  5. Как можно оценить, что твое приложение начинает тормозить?
  6. Какие знаешь паттерны ООП? Какие использовал?
  7. Знаешь, как работает сборщик мусора в NodeJS? Если у нас есть переменная, например объект, который ссылается сам на себя, сборщик мусора его обработает?
  8. Работал ли с Docker? Kubernetes?
  9. Работал ли с Grafana?

Базы данных

  1. Для чего нужны индексы в БД?
  2. В каких случаях первичный ключ может быть null?
  3. В каком случае первичный ключ может быть составным и может ли он быть составным? Можешь привести пример такой ситуации?
  4. Чем DELETE отличается от TRUNCATE? Какой запрос будет выполнен быстрее?
  5. Знаешь ли ты, что такое SELF JOIN?
  6. Решал ли ты какие-то задачи производительности в БД?
  7. Знаком, что такое PG Bouncer?
  8. Работал ли ты с Sequelize? Что тебе понравилось и не понравилось?
  9. Можешь рассказать про плюсы и минусы расположения БД в контейнере и без? В каких случаях стоит использовать базу в контейнере?