├── README.md
└── questions
├── algorithms.md
├── auto-qa.md
├── data-analytics.md
├── devops.md
├── frontend.md
├── java.md
├── manual-qa.md
├── nodejs.md
├── php.md
├── python.md
├── rails.md
└── softskills.md
/README.md:
--------------------------------------------------------------------------------
1 | Сборник вопросов с собеседований для разработчиков, аналитиков, тестировщиков и других от Хекслет.Карьеры.
2 |
3 | ## Как прислать свой вопрос?
4 |
5 | Мы принимаем pull-request’ы
6 |
7 | Для новых направлений создайте файл в *questions/* и добавьте его в список.
8 |
9 | ## Вопросы по направлениям
10 |
11 | * [Аналитик данных](./questions/data-analytics.md)
12 | * [Фронтенд-разработчик](./questions/frontend.md)
13 | * [Java-разработчик](./questions/java.md)
14 | * [Бэкенд-разработчик на Nodejs](./questions/nodejs.md)
15 | * [Бэкенд-Разработчик на Python](./questions/python.md)
16 | * [Ручной тестировщик](./questions/manual-qa.md)
17 | * [Автотестировщик](./questions/auto-qa.md)
18 | * [Rails-разработчик ](./questions/rails.md)
19 | * [Бэкенд-разработчик на PHP](./questions/php.md)
20 | * [DevOps-инженер](./questions/)
21 |
22 | ## Вопросы по темам
23 |
24 | * [Софт скиллы](./questions/softskills.md)
25 | * [Алгоритмы и структуры данных](/questions/algorithms.md)
26 |
27 | ---
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/questions/algorithms.md:
--------------------------------------------------------------------------------
1 | ## Алгоритмы
2 |
3 | 1. Что такое О-нотация?
4 | 1. Знаком ли с алгоритмами и структурами данных? Что такое O(n) большое/малое? Как измерить сложность алгоритма?
5 | 1. Какие знаешь структуры данных? Расскажи про список, очередь, стек. Как их можно использовать?
6 | 1. Какая оценка времени доступа к разным структурам данных? Например, к массиву, списку, хэш-таблице?
7 | 1. Какая сложность у перебора двумя циклами? И как можно оптимизировать подобный алгоритм?
8 | 1. Чем бинарный поиск отличается от линейного?
9 |
--------------------------------------------------------------------------------
/questions/auto-qa.md:
--------------------------------------------------------------------------------
1 | # Вопросы для тестировщиков-автоматизаторов на JS
2 |
3 | [Вопросы по soft skills](/questions/softskills.md)
4 | [Вопросы по алгоритмам](/questions/algorithms.md)
5 |
6 | ## Junior
7 |
8 | ### Общие вопросы
9 |
10 | 1. Почему ты решил стать тестировщиком, чем тебя привлекает профессия?
11 | 1. Расскажи о себе рамках тестирования. Где работал, чем занимался, Какие задачки решал?
12 | 1. Из чего состоит веб-приложение, базовые части приложения?
13 | 1. Сталкивался ли с ревью кода? Как проходило ревью? По какому принципу бы сам проводил ревью?
14 | 1. С какими языками программирования знаком?
15 | 1. С какими менеджерами задач работал?
16 | 1. Есть ли опыт командной разработки?
17 | 1. Что такое API?
18 |
19 | ## Тестирование
20 |
21 | 1. На каком фреймворке писал автотесты? Расскажи о его структуре.
22 | 1. Тестирование - что это вообще, чем занимается тестировщик и зачем?
23 | 1. Какие виды тестирования знаешь?
24 | 1. В чем суть тестирования приложения
25 | 1. Что такое паттерн PageObject? Для чего нужен?
26 | 1. Как думаешь, какие тесты нужно автоматизировать в первую очередь?
27 | 1. Тестовые сценарии принято делить на позитивные и негативные. В чем разница между ними? Почему мы проверяем сперва позитивные сценарии, а потом негативные?
28 | 1. Расскажи, что такое функциональные требования и нефункциональные? Можешь привести пример?
29 | 1. Что такое пирамида тестирования, что в ней находится, почему она имеет форму пирамиды?
30 | 1. Что такое UI тестирование?
31 | 1. Расскажи в общих чертах как тестируются API и UI, какие инструменты бы использовал для каждого кейса?
32 | 1. Если у нас есть доступ к коду, как это может помочь писать автотесты?
33 |
34 | ### Браузер
35 |
36 | 1. Что такое DOM веб-страницы?
37 | 1. Какие локаторы использовал для поиска элементов?
38 | 1. В чем разница между css и xpath?
39 | 1. Что такое кроссбраузерное тестирование. Для чего проводится и как?
40 | 1. Что такое адаптивность?
41 |
42 | ### Базы данных
43 |
44 | 1. Что такое СУБД, для чего используется? Какие примеры СУБД можешь привести?
45 | 1. Чем отличается SQL от NoSQL?
46 | 1. Какие виды отношений между таблицами можешь назвать? Покажи примеры.
47 | 1. Какие запросы в БД может быть делаешь, На каком уровне знаешь SQL?
48 | 1. Что такое первичный и внешний ключ?
49 |
50 | ### Сети
51 |
52 | 1. Какие библиотеки использовал для HTTP-запросов?
53 | 1. Из чего состоит HTTP-запрос, что в него входит?
54 | 1. Для чего нужны куки?
55 | 1. Какие семейства кодов ответов можешь рассказать? Чем код ответа 200 от 201 отличается?
56 | 1. Чем `PUT` запрос отличается от `PATCH`?
57 | 1. В чем разница SOAP от REST API?
58 | 1. Можно ли в SOAP отправить JSON?
59 | 1. Что из себя представляет JSON?
60 | 1. Какие инструменты для тестирования API можешь назвать?
61 | 1. Как протестировать API веб-приложения? Какие инструменты применимы?
62 | 1. Какие чаще всего используются хедеры? Приведи пример.
63 | 1. Какой статус кода обычно отправляется при успешном запросе?
64 | 1. На что указывают ошибки `4**`?
65 | 1. В чем разница между `GET` и `POST`?
66 | 1. Что отвечает за авторизацию?
67 | 1. Есть такая вещь, называется токен. Для чего используется?
68 | 1. Что будет, если попытаться обратиться к приватному ресурсу без авторизации?
69 | 1. Если мы сделали запрос, и произошел редирект, как достать ссылку, которая ведет к редиректу из этого запроса?
70 |
71 | ## Middle
72 |
73 | ### Общие вопросы
74 |
75 | 1. Как выбираешь какие библиотеки использовать для дальнейшего развития проекта?
76 | 1. Приходилось ли прикручивать отчетность? Какие инструменты для этого использовались?
77 | 1. Приходилось ли использовать CI/CD? Какие инструменты для этого использовал?
78 |
79 | ### Тестирование
80 |
81 | 1. Опишите, как бы ты протестировал веб-приложение на кросс-браузерную совместимость?
82 | 1. Реализовывал ли подготовку данных для тестов? Если да, то как это делал?
83 | 1. Как думаешь, если локатор описан по xpath, является это самым стабильным способом?
84 | 1. Какой самый надежный по твоему мнению тип локаторов для поиска элементов?
85 | 1. Мы тестим веб приложение, это приложение при работе с браузером сохраняет свое состояние. Картинки, авторизационные данные. Что за хранилище в браузере, в каких местах сохраняет?
86 | 1. Знаешь про Flaky-тесты? Расскажи об этом подробнее.
87 | 1. Как бы ты разбил главную страницу Яндекс на паттерн Page Object?
88 | 1. Как работает WebDriver?
89 | 1. Можно ли к вебдрайверу добавлять хедеры? Что нужно для этого сделать?
90 | 1. Как не дублировать код с авторизацией? Как это сделать в UI-тестах?
91 | 1. С чем самым сложным сталкивался в UI-тестах?
92 |
93 | ### Базы данных
94 |
95 | 1. Какие виды соединений (joins) в БД используешь?
96 | 1. В каких случаях первичный ключ может быть `null`?
97 | 1. Чем `DELETE` отличается от `TRUNCATE`? Какой запрос будет выполнен быстрее?
98 |
99 | ### Сети
100 |
101 | 1. Можно ли в GET в теории поместить тело?
102 | 1. Как нам в теле GET запроса отправить картинку на сервер?
103 |
--------------------------------------------------------------------------------
/questions/data-analytics.md:
--------------------------------------------------------------------------------
1 | # Вопросы на собеседованиях аналитиков
2 |
3 | [Вопросы по soft skills](/questions/softskills.md)
4 |
5 | ## Junior
6 |
7 | ### Общие вопросы
8 |
9 | 1. Почему ты решил стать аналитиком данных, чем тебя привлекает профессия?
10 | 1. Есть ли опыт командной разработки? Как у вас происходил процесс взаимодействия с другими аналитиками?
11 | 1. Как ты относишься к написанию кода: делаешь так, чтоб просто работало, или пишешь обдуманно?
12 | 1. Какие инструменты используешь?
13 | 1. Сталкивался ли с ревью кода? Как проходило ревью? По какому принципу бы сам проводил ревью?
14 | 1. С какими менеджерами задач работал?
15 | 1. Приходилось ли тебе работать в команде? Как у вас была устроена работа с Git?
16 |
17 | ### Аналитика
18 |
19 | 1. Что такое доверительный интервал?
20 | 1. Что такое P-value?
21 | 1. Что такое Парадокс Симпсона?
22 |
23 | ### Python
24 |
25 | 1. Как устроены словари?
26 | 1. Что такое хеш-функция?
27 | 1. Что такое декораторы?
28 | 1. Какими библиотеками в работе ты пользовался?
29 | 1. Работал ли с pandas? Какие методы и основные функции использовал?
30 | 1. Работал ли с `matplotlib`? Какие методы и основные функции использовал?
31 | 1. Какая разница между кортежем и списком в Python? Между множеством и списком?
32 | 1. Практическая задачка: создай `dataframe` из списка, из массива.
33 | 1. Что такое функция `map()` и как ее применять? А для чего используется `reduce()`?
34 |
35 | ### SQL
36 |
37 | 1. В чем разница между `WHERE` и `HAVING` в SQL?
38 | 1. В чем разница между `UNION` и `UNION ALL`?
39 | 1. Какие есть способы обнаружения и удаления дубликатов? Назови три различных подхода.
40 | 1. Какие join-ы чаще всего используешь? Расскажи подробнее про каждый.
41 |
42 | ### Задачки
43 |
44 | 1. Предположим у нас есть какой-то продукт, например, светофор. Какую бы метрику качества его работы ты бы предложил?
45 | 1. Задачка по теории вероятности: предположим 10% писем, которые приходят к нам - это спам. Пользователь получил 100 писем, какая вероятность того, что хотя бы 5 емейлов это спам?
46 | 1. Задачка: найди самую большую зарплату в отделе, найди вторую самую высокую зарплату? Можно ли решить задачу другим способом?
47 | 1. Какие есть способы обнаружения и удаления дубликатов? Назови три различных подхода.
48 | 1. Задачка по теории вероятности: Представьте пустынную дорогу, за 30 минут вероятность, что проедет хотя бы 1 машина - 95%. Какова вероятность, что хотя бы 1 машина проедет за 10 минут?
49 | 1. Задачка по прогнозированию: Нашим приложением пользуются и с мобильного приложения и через сайт. За прошлый месяц конверсия в покупку упала относительного предыдущего месяца. Но по отдельности конверсия за веб-приложение и мобильное увеличилась. Как такое может быть?
50 | 1. Задачка по прогнозированию: предположим, что мы решили внедрить платный продукт. Случайно выбрали пользователей для теста. Новым продуктом воспользовались 1000 человек. Каким способом можно спрогнозировать на 95% доверительном интервале медианный/средний чек?
51 | 1. Вопрос про изменение среднего чека. Допустим есть интернет-магазин с двумя товарами. Мы решили повысить цены сразу на два товара. Покупок в месяц меньше не стало при этом. Верно ли, что средний чек такого магазина вырастет?
52 | 1. Маркетинговая задача. Перед нами стоит задача снижения стоимости привлечения клиентов. Есть показатель CTR - как люди кликают на объявление в Интернете. Взяли один баннер, но с разными цветами. Выяснили, что конверсия зеленого в два раза больше, чем у красного. Вопрос - верно ли наше предположение, что если мы начнем больше бюджета заливать в зеленый баннер, то стоимость привлечения клиентов снизится?
53 | 1. При анализе данных интернет-магазина мы заметили, что пользователи, которые привязывают к профилю социальной сети, у них намного выше средний чек, чем у тех, кто не привязывает. У нас появилась идея стимулировать всех пользователей привязывать социальные сети. Насколько это правильная/неправильная инициатива по твоему мнению и почему?
54 |
55 | ## Middle
56 |
57 | ### Аналитика
58 |
59 | 1. В каких случаях используем медиану, а в каких среднее значение?
60 | 1. Для чего проводят А/А тесты?
61 | 1. Что такое p-value?
62 | 1. Какие статистические критерии знаешь?
63 |
64 | ### Аналитические задачи
65 |
66 | * Есть магазин и в нем только 4 категории товаров. В каждой из них вырос средний чек, что произошло с общим средним чеком?
67 | * На нашем сайте была кнопка зеленого цвета, и было 10 посетителей и 3 из них оставили заявку. Потом кнопка стала красной, на сайт зашли 10 посетителей и 4 из них оставили заявку. Какие выводы мы можем сделать? Как нам провести A/B-тестирование? Как для этого использовать стат.критерии? Как определить количество наблюдений? Как мы можем поделить аудиторию? В каких случаем используем деление по клиенту? Как расчитать длительность эксперимента?
68 | * Нам нужно разработать метрики общеобразовательной школы. Чего мы можем это нам нужно? Как будем оценивать успеваемость? Как избежать завышения оценок? Как посчитать рейтинг школ? Как измерить оснащенность школ? Что еще можно придумать?
69 | * Как сделать рейтинг по ВУЗам? Как можем собирать данные? Подойдет ли балл ЕГЭ?
70 | * Напиши функцию, которая считает сумму всех цифр этого числа. ? Как можно ее оптимизировать по памяти? Какая сложность кода по памяти и временной сложности в конечном варианте?
71 | Пример функции для оптимизации
72 | def find_sum(num):
73 | return sum(int(digit) for digit in str(abs(num)))
74 |
75 |
76 | Пример оптимизации
77 | def find_sum(num):
78 | num = abs(num)
79 | sum = 0
80 | while num > 0:
81 | sum += num % 10
82 | num = num // 10
83 | return sum
84 |
85 |
86 |
87 | * Есть таблица лога транзакций в MySQL:
88 | ```sql
89 | CREATE TABLE transaction_log (
90 | account_id BIGINT,
91 | dt DATE,
92 | transaction_amt DOUBLE,
93 | CONSTRAINT transaction_id PRIMARY KEY (account_id, dt)
94 | );
95 |
96 | INSERT INTO transaction_log (account_id, dt, transaction_amt) VALUES
97 | (1001, '2023-01-01', 150.75),
98 | (1001, '2023-01-02', -50.00),
99 | (1002, '2023-01-01', 200.00),
100 | (1002, '2023-01-03', 75.50),
101 | (1003, '2023-01-02', -20.00),
102 | (1003, '2023-01-04', 300.00),
103 | (1004, '2023-01-01', 500.00),
104 | (1004, '2023-01-05', -100.00),
105 | (1005, '2023-01-02', 250.00),
106 | (1005, '2023-01-06', 100.00);
107 | ```
108 |
109 | Считаем, что для каждого счета может быть только одна транзакция в каждую дату. Нужно посчитать нарастающий итог для каждого `account_id` на каждую дату и вывести сумму транзакций по данному счёту до данной даты включительно.
110 | Ответ
111 | SELECT account_id, dt, sum(transaction_amt) OVER (PARTITION BY account_id
112 | ORDER BY dt) AS sum_amt
113 | FROM transaction_log;
114 |
115 |
116 |
117 | * Продукт образовательный онлайн-сервис, где ученики могут решать задачи бесконечное количество раз. Напиши запрос, который выведет по каждой задаче решаемость с первой попытки?
118 | * таблица Students
119 | * id (int)
120 | * date_created (timestamp)
121 | * grade (int) класс ученика от 1 до 11
122 | * rating (int) рейтинг успеваемости от 0 до 100
123 |
124 | * таблица решений задач Attempts
125 | * id (int)
126 | * date_created (timestamp)
127 | * student_id (int) идентификатор студента
128 | * problem_id (int) идентификатор задачи
129 | * is_mistake (bool) nar ошибочное решение или верное
130 |
131 | * Есть датафрейм с колонками *Order_dttm* (дата-время), *city*, *order_id*. Сделай из этого таблицу с помощью библиотек Python:
132 | * Строки - города
133 | * Столбцы - месяца
134 | * Значения - доля заказов по месяцу внутри города (сумма значений о строкам = 1, каждый месяц это дата)
135 |
--------------------------------------------------------------------------------
/questions/devops.md:
--------------------------------------------------------------------------------
1 | # Вопросы для DevOps-инженеров
2 |
3 | [Вопросы по soft skills](/questions/softskills.md)
4 |
5 | ## Junior
6 |
7 | ### Общие вопросы
8 |
9 | 1. С какими менеджерами задач работал?
10 | 1. Какие инструменты используешь?
11 | 1. Сталкивался ли с ревью кода? Как проходило ревью? По какому принципу бы сам проводил ревью?
12 | 1. Приходилось работать с пайплайнами Gitlab Runner? Какие виды пайплайнов есть?
13 | 1. Набираю в командной строке curl https://example.com/ расскажите детально что происходит дальше.
14 | 1. Почему символ DevOps - бесконечность?
15 | 1. Что такое трассировка, для чего может использоваться?
16 | 1. Работал ли с брокерами сообщений? Можешь рассказать, что это такое?
17 | 1. Работал ли с системами мониторинга и логирования?
18 |
19 |
20 | ### Docker
21 |
22 | 1. Приходилось самостоятельно писать Dockerfile? Чем отличается команда `ADD` от `COPY`?
23 | 1. Для чего нужны `CMD`, `ENTRYPOINT`?
24 | 1. В Docker есть понятие слоев. Что это такое?
25 | 1. В слой делаем `run yum update`. Как Docker понимает, что нужно пересобирать кэш, сбросить кэш или он `yum update` один раз сделал и больше делать его не будет?
26 | 1. В Docker есть понятие multi-stage? Что это такое, зачем используется?
27 | 1. Мультистейдж в Docker, для чего?
28 | 1. Команда `COPY . .` Хотим все, что у нас в корне, скопировать в корень контейнера. Мы можем ограничить, что будет копироваться? В Dockerfile не меняем ничего.
29 | 1. Как посмотреть логи работающего контейнера? Как посмотреть определённое количество строк лога?
30 | 1. Как попасть в bash работающего контейнера?
31 | 1. Развернули контейнер, как попасть внутрь? Как обеспечить доступ извне?
32 | 1. Приходилось работать с volume в Docker?
33 | 1. Мы можем примонтировать директорию к контейнеру, а можем указать "используй такой-то volume". В чем разница?
34 | 1. Зачем нужен Docker Compose?
35 |
36 | ### Сети
37 |
38 | 1. Необходимо отследить путь от одного хоста к другому, какой командой можно это сделать?
39 | 1. Что такое TTL?
40 | 1. У меня есть клиент-сервер. Как замерить пропускную способность между клиентом и сервером, какой командой?
41 | 1. TCP и UDP, в чем отличия? За счёт чего и какие гарантии доставки?
42 | 1. Клиент что-то отправляет на сервер. Во время соединения был перезагружен роутер. Будет ли доставлен пакет после перезагрузки роутера? В течение какого времени возможна доставка?
43 | 1. Отличия HTTP и HTTPS. Плюсы HTTPS помимо шифрования. За счёт чего нельзя просто подменить запрашиваемый сайт. HTTP это текстовый или бинарный протокол?
44 | 1. Сталкивался с REST? Какие методы есть, чем отличаются, когда используются? Основные 5. Отличия GET и POST.
45 | 1. URL при использовании HTTPS зашифрован? Если взять POST, то в URL мы можем передать информацию?
46 | 1. Basic auth. Что это такое и как оно передаёт свои данные?
47 | 1. Есть URL, тело запроса. Что еще передается при запросе?
48 | 1. Какие типы http-заголовков знаешь?
49 | 1. Что делает балансировщик нагрузки?
50 |
51 |
52 | ### Linux
53 |
54 | 1. У нас есть какой-то диск, который хотим примонтировать в Linux. Как это можно сделать? Останется ли примонтирован диск после перезагрузки при монтировании командой `mount`. Опции монтирования `fstab` - какие есть, зачем нужны?
55 | 1. Метрики. `I/O wait time` - что оно показывает? Как проверить загруженность диска? Как посмотреть количество свободной оперативной памяти?
56 | 1. Команда `free` - чем столбец free отличается от available. Что показывают остальные столбцы?
57 | 1. Представим, что есть файл с логами. Внутри него есть сообщения типа Warning, INFO, ERROR и так далее. Как посмотреть только ошибки в файле лога? Как посмотреть саму ошибку и 10 строчек до и после неё?
58 | 1. Какие механизмы ядра Linux используются для виртуализации?
59 |
60 | ### Ansible
61 |
62 | 1. Чем плэйбук отличается от роли Ansible?
63 | 1. Какие типы переменных есть у роли Ansible?
64 | 1. Какой приоритет у переменных Ansible? Как переопределить переменную роли?
65 |
66 | ### Базы данных
67 |
68 | 1. Что такое реляционная база данных?
69 | 1. Зачем в базах данных нужны транзакции?
70 | 1. Что такое индексы в бд?
71 |
72 | ## Middle
73 |
74 | ### Общие вопросы
75 |
76 | 1. Мы хотим собрать проект на Go. Какой порядок действий?
77 | 1. С какими базами данных приходилось работать?
78 | 1. Как поддерживали и разворачивали инфраструктуру с помощью Terraform?
79 | 1. Что такое REST API?
80 | 1. У нас есть инфраструктура полностью без Ansible. Что нужно для того, чтобы начать им пользоваться?
81 | 1. Как бы ты хранил чувствительные данные в Ansible плейбуках?
82 |
83 | ### Docker
84 |
85 | 1. Из чего состоит Docker?
86 | 1. Отличие контейнеризации от виртуализации.
87 | 1. Отличие `RUN`, `CMD` и `ENTRYPOINT`.
88 | 1. Без какой инструкции не запустится контейнер?
89 | 1. На каких технологиях построена контейнеризация (Docker)?
90 | 1. Как изменить настройки ядра в контейнере?
91 |
92 | ### Helm
93 |
94 | 1. Какие варианты знаешь, как развернуть Helm chart на 3 разные зоны?
95 | 1. Helm писал для проектов один общий или разные для разных проектов? Писал ли зависимости для Helm?
96 | 1. Что такое Helm? Зачем используется?
97 | 1. Мы задеплоили Helm chart и потом в темплейте поменяли значения replicaCount подов в Deployment, и потом пишем `helm upgrade --install`. Что произойдет в Kubernetes?
98 | 1. Точно такой же кейс, но с ConfigMap. Что будет?
99 |
100 | ### Kubernetes
101 |
102 | 1. Работал с Kubernetes? Расскажи про свой опыт.
103 | 1. Из чего состоит Kubernetes (архитектура)?
104 | 1. Что такое pod, для чего он нужен?
105 | 1. Namespace в Kubernetes. Для чего он?
106 | 1. Чем можно разворачивать поды? Отличие Deployment, StatefulSet и ReplicaSet.
107 | 1. Как Kubernetes-сервис находит, куда отправлять запросы?
108 | 1. kube-proxy. Расскажи подробнее.
109 | 1. Какие есть сущности для управления подами?
110 | 1. Отличие ReplicaSet, Deployment, StatefulSet и DaemonSet.
111 | 1. Для какой абстракции не нужен Kube scheduler?
112 | 1. Какие есть ограничения ресурсов в Kubernetes (QoS)?
113 | 1. Минусы request ограничения.
114 | 1. Варианты, как можно выкинуть приложения наружу.
115 | 1. Можно ли сделать так, чтобы pod всегда попадал на определенную ноду?
116 | 1. Отличие label и selector.
117 | 1. Как ты будешь реализовывать скейлинг приложений в кластере?
118 | 1. Допустим, у нас limit и request разные, и в кластере ресурсов меньше, чем в лимите, даст ли нам выложить pod в кластер?
119 | 1. Сколько мне нужно мастер-нод для отказоустойчивого кластера?
120 | 1. Хочу задеплоить сервис и потом увидеть его с ноутбука. Какие минимальные ресурсы мне нужны для этого?
121 | 1. Набираю в командной строке `kubectl apply -f nginx.yml` расскажи детально, что происходит дальше.
122 | 1. Что такое `init` и `sidecar` контейнеры?
123 | 1. Зачем нужны `pause` контейнеры?
124 | 1. Что такое `throttling`?
125 |
126 | ### Linux
127 |
128 | 1. Процесс и поток в Линуксе, в чем отличие?
129 | 1. Load average. Что это такое? Что делать, если высокий LA?
130 | 1. Как найти процесс и информацию о нем?
131 | 1. Cache в Linux, что это? Почему иногда говорят его выключать?
132 | 1. RAID в Linux, что это?
133 | 1. Сможешь описать полный процесс загрузки OS Linux?.
134 | 1. Userspace и systemspace. Отличия, зачем они нужны?
135 | 1. Почему некоторые сетевые службы запускаются в kernelspace, а не в виде демона?
136 | 1. Вывод команды `top`. Что означают колонки памяти у процесса?
137 | 1. Как вывести список домашних директорий для пользователей с непустым паролем?
138 | 1. Что такое namespaces, cgroups, capabilities в Linux?
139 |
--------------------------------------------------------------------------------
/questions/frontend.md:
--------------------------------------------------------------------------------
1 | # Вопросы для фронтендеров
2 |
3 | [Вопросы по soft skills](/questions/softskills.md)
4 | [Вопросы по алгоритмам](/questions/algorithms.md)
5 |
6 | ## Junior
7 |
8 | ### Общие вопросы
9 |
10 | 1. Решал ли какие-то задачки-каты? Codebattle, Codewars, Leetcode?
11 | 1. Какие фреймворки знаешь, расскажи о своем опыте использования фреймворков?
12 | 1. Как ты относишься к написанию кода: делаешь так, чтоб просто работало, или пишешь обдуманно?
13 | 1. С какими менеджерами задач работал?
14 | 1. Расскажи о своем пути в разработку, почему именно фронтенд?
15 | 1. Приходилось ли писать тесты? Знаешь, что такое TDD, BDD?
16 | 1. Как следишь за чистотой кода? Какие инструменты используешь?
17 | 1. Какой сборщик возьмешь - webpack или vite?
18 | 1. MobX или Redux?
19 | 1. Для чего нужен TypeScript?
20 | 1. Что такое CI/CD?
21 | 1. Какой опыт работы с Docker?
22 | 1. Отличие git revert от git reset?
23 | 1. Сталкивался ли с ревью кода? Как проходило ревью? По какому принципу бы сам проводил ревью?
24 | 1. Приходилось ли тебе работать в команде? Как у вас была устроена работа в Git?
25 | 1. Какие инструменты разработки используешь?
26 | 1. Какие виды уязвимостей знаешь? Что такое OWASP?
27 |
28 | ### JavaScript
29 |
30 | 1. В чем отличия `null` и `undefined`?
31 | 1. Отличие `var`, `let`, и `const`?
32 | 1. Строгий режим (strict mode) в JavaScript?
33 | 1. Какие есть типы данных в JavaScript?
34 | 1. Строки в JavaScript изменяемые? Или при добавлении символа в конец строки, это уже будет новая строка?
35 | 1. Что такое анонимные функции?
36 | 1. Что такое замыкание и hoisting (всплытие)? Привести пример замыкания. Есть ли разница при использовании `var` и `let`?
37 | 1. В чем разница function declaration и function expression?
38 | 1. В чем разница двойного равно и тройного (`==` и `===`)?
39 | 1. Как проверить переменную на `NaN`?
40 | 1. Как в JavaScript передается параметр в функцию - по ссылке или по значению?
41 | 1. Что делают `call()`, `bind()`, `apply()`?
42 | 1. Чем отличается `forEach()` от `map()`?
43 | 1. Что такое `map()`, `reduce()` и `filter()`? Расскажи про каждый и в чем разница?
44 | 1. Как сделать глубокую копию объекта?
45 | 1. Расскажи, какие ты знаешь способы копирования объекта в JavaScript?
46 | 1. Что такое глубокое копирование и поверхностное?
47 | 1. Расскажи про прототипы, что это такое?
48 | 1. Расскажи про область видимости.
49 | 1. Что на конце цепочки прототипов?
50 | 1. Что такое NodeJS? Из чего он состоит?
51 | 1. Из каких компонентов состоит Node.js?
52 | 1. Какими способами можно обработать ошибку в Promise?
53 | 1. Когда-нибудь приходило к тебе понимание типа “а вот здесь я хочу использовать eventemitter”? Когда его лучше использовать?
54 | 1. Что такое Event Loop? Для чего он нужен? Какую проблему решает? Можешь рассказать, что такое Event Loop? Какие есть фазы? Если в Event Loop ничего не останется после выполнения, то что произойдет? В какой последовательности вызываются микро и макро таски?
55 | 1. Что такое `keyof` и `typeof`?
56 | 1. Что такое `Set`, `Map`, `WeakSet`, `WeakMap`?
57 | 1. Что такое дескрипторы объекта?
58 | 1. Как добавить интернационализацию в приложение?
59 | 1. Что такое package.json?
60 | 1. Что такое package-lock.json? Зачем нужен? Зачем его коммитить? В чем разница `npm i` и `npm ci`?
61 | 1. Отличия ES5 и ES6?
62 | 1. Расскажи про различия "старого" JavaScript и "нового"?
63 | 1. Если поставить таймер на 10 секунд, то через сколько он сработает? Почему?
64 | 1. Можешь рассказать, что такое замыкания в JS? Есть ли такое в других языках?
65 | 1. Immediatly invoke function (самовызывающаяся функция). Это что?
66 |
67 | ### React/Redux
68 |
69 | 1. Расскажи мне про React, что это вообще такое?
70 | 1. Какие особенности у React? Что такое JSX? Что делает метод `render()` в React?
71 | 1. Что такое Virtual DOM, Дерево элементов? Какие есть фазы рендеринга? Reconciliation (согласование) в react это что?
72 | 1. Почему на jQuery не хотят писать, а на React хотят?
73 | 1. Если пишешь на хуках, какой единственный классовый компонент всё же нужен?(Error boundary)
74 | 1. Какие есть компоненты жизненного цикла? Как с помощью хуков заменить их?
75 | 1. Что такое хуки? Какие бывают хуки? Какие знаешь?
76 | 1. В чем проблема prop-drilling и как ее решить?
77 | 1. Зачем нужен `useRef()`? Как работает?
78 | 1. Чем отличается `useRef()` от `useState()`?
79 | 1. Как работает `useLayoutEffect` в React и чем он отличается от `useEffect`?
80 | 1. Где в React компоненте правильно писать запросы к серверу?
81 | 1. Отличия `useMemo()` от `useCallback()`?
82 | 1. Что такое Redux? Зачем он нужен?
83 | 1. Какие еще есть библиотеки, решающие эту же проблему?
84 | 1. Что такое `store`?
85 | 1. Что такое `action creator`?
86 | 1. Где лучше всего делать запросы к серверу в Redux?
87 | 1. В чем преимущества и недостатки MobX перед Redux?
88 | 1. Можно ли использовать Redux без React?
89 | 1. Что такое волна ререндеринга в React?
90 | 1. Какие существуют в React причины для ререндера компонента?
91 | 1. Что такое порталы React?
92 | 1. Зачем нужен key в React?
93 | 1. Что такое батчинг в React?
94 | 1. Расскажи про процесс обновления Virtual DOM.
95 |
96 | ### Фронтенд
97 |
98 | 1. Расскажи мне про базовую структуру HTML документа. Какие там основные теги?
99 | 1. Расскажи про специфичность селекторов.
100 | 1. Что такое `!important`? Каково твое отношение к ним?
101 | 1. Расскажи, как ты предпочитаешь работать со стилями CSS. Используешь ли какие-то препроцессоры?
102 | 1. Размер `50vh` - это сколько?
103 | 1. Что такое семантика? Зачем она нужна?
104 | 1. Что такое BEM методология?
105 | 1. Что такое `position absolute`, `relative` и `fixed`?
106 | 1. Разница между flex и grid?
107 | 1. Что такое псевдоклассы? Рассказать подробно
108 | 1. Селекторы `>, +, ~`. Расскажи про них, для чего используются?
109 | 1. Какие есть три главных жизненных цикла в рамках того, как работает наша html-страничка? В эти три пункта входит рендер?
110 | 1. Можешь рассказать, какие есть атрибуты для подключения JS-файлов? Каков их порядок вызова?
111 | 1. За что отвечает свойство `box-sizing` в CSS?
112 | 1. Расскажи про веса селекторов в CCS, от наиболее незначительных, до наиболее специфичных.
113 | 1. Как мы можем хранить данные на фронтенде, какие хранилища знаешь?
114 |
115 | ### Сети
116 |
117 | 1. Чем отличается вообще протокол HTTP и чем он отличается от HTTPS?
118 | 1. Что такое CORS? Это связано именно с HTTP?
119 | 1. Что такое REST API?
120 | 1. Какие коды ответа HTTP знаешь?
121 | 1. Как работает HTTP? Из чего состоит HTTP запрос?
122 |
123 | ### Браузер
124 |
125 | 1. Что такое Reflow и Repaint?
126 | 1. Когда пользователь вводит запрос в адресной строке браузера или кликает на ссылку, что происходит? Расскажи про этапы рендера.
127 |
128 | ### Git
129 |
130 | 1. Представим, ты работаешь в своей ветке, которая отделилась от develop. Внес изменения в нескольких файлах, тебя просит тимлид добавить hotfix в другой ветке. Что будешь делать. Если тебе сейчас нельзя сделать коммиты? Тебе нужно перейти из своей текущей ветки в другую, но при этом коммит делать нельзя
131 | 1. Знаешь, в чем отличие merge от rebase?
132 | 1. Представим, что у тебя есть ветка с тремя коммитами, и тебе нужны изменения из develop. Что произойдет с твоими коммитами, Например при ребейзе? А как с мержем?
133 |
134 | ## Middle
135 |
136 | ### Общие вопросы
137 |
138 | 1. Расскажи о своем пути в разработку, почему именно фронтенд?
139 | 1. Расшифруй и объяснени принципы SOLID.
140 | 1. В чем отличие методов `test()` и `match()`?
141 | 1. Что такое HTTPS и в чем отличие от HTTP?
142 | 1. Каким образом webpack понимает, что ему какую-то часть кода нужно вынести в отдельную чанку?
143 | 1. Что такое XML и XSD?
144 | 1. Для чего используются куки и в чем различия между `localStorage` и `sessionStorage`?
145 | 1. Что такое мемоизация?
146 | 1. В чем разница между WebSocket и SSE?
147 | 1. Плюсы и минусы Next.js?
148 | 1. Расскажи про фронтовые архитектуры.
149 | 1. Что такое Web Vitals? Чем отличается от Sentry?
150 | 1. Есть ли тело запроса у GET
151 | 1. Какие паттерны программирования знаете?
152 | 1. Как бы вы реализовали взаимодействие бэкенда с фронтендом?
153 | 1. Что такое Big O notation? Как рассчитывается сложность алгоритма?
154 | 1. На Webpack или Vite настраивал ли SSR или SSG без Next.js?
155 | 1. Сталкивался ли с ситуацией, где пришлось решать проблему серьезной утечки памяти?
156 | 1. Расскажи про ООП и как использовал.
157 | 1. Что такое протокол?
158 | 1. Что такое websocket?
159 | 1. Доводилось ли писать собственную авторизацию? Расскажи про авторизацию через токены.
160 | 1. Какие способы оптимизации приложения знешь?
161 |
162 | ### JavaScript
163 |
164 | 1. Что такое наследование? Что дает нам прототипное наследование? Через какое свойство мы наследуем? В чем разница `proto` и `prototype`?
165 | 1. Всё ли в JS объект?
166 | 1. В чем разница итерация по ключам объектов через `for.. in..` и через `Object.keys(...)`?
167 | 1. Что такое `async`, `await`?
168 | 1. Как принудительно отправить функцию в очередь микрозадач?
169 | 1. Чем множество отличается от массива в Javascript?
170 | 1. Сталкивался ли с CORS? Что это такое, почему из Postman можно выполнить запрос, а из браузера нет? Как обойти?
171 | 1. Можешь рассказать, что такое промисы в Javascript? Где они используются?
172 | 1. Есть браузер, в адресную строку вводим адрес и нажимаем Enter. Что в это время происходит?
173 | 1. Для чего используются `async` и `defer` при загрузке скриптов?
174 | 1. Если у нас есть какой-то большой файл стилей, например 50kb. Заблокирует ли он нам рендеринг?
175 | 1. Что такое `debounce()`? Зачем нужен. Написать реализацию
176 | 1. Зачем нужны классы в JS? Какие плюсы/минусы/подводные камни?
177 | 1. Расскажи про Eslint, huski. В чем разница prettier и eslint?
178 |
179 | ### TypeScript
180 |
181 | 1. Для чего нужен TypeScript, расскажи про плюсы и минусы?
182 | 1. Какие утилитарные типы ты можешь назвать?
183 | 1. Что такое дженерики?
184 | 1. Отличие интерфейсов от типов
185 | 1. Что такое абстрактные классы? Может ли абстрактный класс нести реализацию конкретного метода? Можем ли мы методу абстрактного класса прокинуть дженерик?
186 | 1. В чем разница между типом `any` и `unknown`? Будет ли разница при сборке?
187 | 1. Что такое union в TypeScript?
188 | 1. Как работают `keyof` и `typeof` в TS?
189 | 1. Что такое `infer` в TS?
190 | 1. Что такое `never` в TypeScript?
191 |
192 | ### React
193 |
194 | 1. Какие хуки имплементируют методы жизненного цикла? Как именно? Что делает хук `useLayoutEffect()`?
195 | 1. В чем разница `useImperativeHandle()` и `useRef()`?
196 | 1. Что такое `forwardRef()`?
197 | 1. Какие есть способы принудительного рендера компонента?
198 | 1. Для чего нужны ключи в React?
199 | 1. Что такое `reconciliation` в React?
200 | 1. Что такое React Fiber?
201 | 1. В чем будет разница, если в React компоненте обращаться к компоненту и менять его через `document.querySelector() `и через `ref`?
202 | 1. Что такое SSR, зачем он нужен? Как организовать SSR в React?
203 | 1. Что такое headless компонент?
204 | 1. Использовал ли ErrorBoundary? Как бы реализовал свой ErrorBoundary?
205 |
206 | ### Верстка
207 |
208 | 1. Как рендерится HTML в браузере. Опиши этапы.
209 | 1. Как мы можем принудительно вынести HTML элемент на слой?
210 | 1. В чем будет разница работы render flow, если мы будем менять позицию элемента через координаты `top/left` и через `transform/translate`?
211 | 1. Отличие тега `image` от тега `picture` (технически и семантически)
212 | 1. С какими препроцессорами CSS работал, с какими методологиями работал?
213 | 1. Расскажи, как ты предпочитаешь работать со стилями CSS. Используешь ли какие-то препроцессоры?
214 | 1. Что такое миксины?
215 | 1. Что такое `placeholder` селекторы?
216 | 1. Расскажи про различие директивы `@import` и `@use` в SCSS.
217 | 1. Приходилось работать с готовыми Uikit?
218 | 1. Почему плохо использовать `transition: all`?
219 | 1. Какие существуют способы изоляции стилей?
220 |
--------------------------------------------------------------------------------
/questions/java.md:
--------------------------------------------------------------------------------
1 | # Вопросы для Java-разработчиков
2 |
3 | [Вопросы по soft skills](/questions/softskills.md)
4 | [Вопросы по алгоритмам](/questions/algorithms.md)
5 |
6 | ## Junior
7 |
8 | ### Общие вопросы
9 |
10 | 1. Почему ты решил стать бэкенд-разработчиком, чем тебя привлекает профессия?
11 | 1. Решал ли какие-то задачки-каты? Codebattle, Codewars, Leetcode?
12 | 1. Как ты относишься к написанию кода: делаешь так, чтоб просто работало, или пишешь обдуманно?
13 | 1. С какими менеджерами задач работал?
14 | 1. Расскажи о своем пути в разработку, почему именно Java?
15 | 1. Писал ли тесты? Как их писал?
16 | 1. JIT компилятор и обычный компилятор - в чем отличия?
17 | 1. Плюсы и минусы монолитного приложения и микросервисного?
18 | CQRS - что это и в чем смысл?
19 |
20 | ### Java
21 |
22 | 1. Расскажи про ООП, что это такое, какие видишь преимущества и недостатки?
23 | 1. Что такое инкапсуляция, полиморфизм, наследование, абстракция данных?
24 | 1. Что такое раннее и позднее связывание?
25 | 1. Чем отличается declaration(объявление) от initialization(инициализация)?
26 | 1. Когда мы объявили переменную, занимает ли она память?
27 | 1. Почему в Java отказались от множественного наследования?
28 | 1. Что было бы, если бы у нас было два класса, если бы они одинаковые по сигнатуре методы? Были бы проблемы?
29 | 1. Композиция и агрегация. Что это такое? Можешь примеры из реального мира.
30 | 1. Когда использовать абстрактный класс, а когда интерфейс?
31 | 1. Что такое интерфейсы в Java?
32 | 1. Что значит immutable object и как его сделать, зачем он нужен?
33 | 1. Чем отличается JVM, JVE и JDK?
34 | 1. Чем отличается `List`, `ArrayList`, `LinkedList`?
35 | 1. Расскажите об иерархии Map.
36 | 1. Зачем нужен `Stream map()`, в каких случаях используется?
37 | 1. Расскажите про HashMap, что это и где используется?
38 | 1. Опишите типичные примеры ошибок в коде, когда два разных объекта могут дать коллизию (одинаковый хеш-код)?
39 | 1. Что такое `LinkedHashMap`?
40 | 1. За счет чего достигается сохранение порядка в `LinkedHashMap`?
41 | 1. Какая разница между stack и heap?
42 | 1. Для чего нужен класс `Object`?
43 | 1. Какие ORM знаешь и какие использовал? Какие плюсы и минусы можешь выделить?
44 | 1. У тебя есть метод, который суммирует строки. На вход он принимает большой массив (тысяча элементов). Необходимо собрать все элементы массива и собрать в одну строку. Как бы ты это реализовал?
45 | 1. Как происходит очистка мусора (GC) в Java (то есть, как понять, даже если есть взаимная циклическая связь между объектами) - когда такие объекты будут удалены?
46 | 1. Effective finally в Java - что это?
47 | 1. Чем хороши записи в Java?
48 | 1. Happens-before в Java - что это такое?
49 |
50 |
51 | ### Spring и Spring Boot
52 |
53 | 1. Какие минусы `@Autowired` есть?
54 | 1. Какие минусы JPA в Spring существуют?
55 | 1. Какие типы загрузки есть в Spring, чем плюсы и минусы каждого?
56 | 1. В чем заключается смысл Spring Boot?
57 | 1. Как происходит в Spring Boot обработка ошибок, какие аннотации используются?
58 |
59 | ### Hibernate
60 |
61 | 1. Какие типы загрузки есть в Hibernate, чем плюсы и минусы каждого?
62 |
63 | ### Многопоточность
64 |
65 | 1. Как работает CAS в многопоточной среде, если воздействуют на него сразу несколько потоков?
66 |
67 |
68 | ### Базы данных
69 |
70 | 1. С какими СУБД работал?
71 | 1. Какие фундаментальные различия между MongoDB и PostgresSQL?
72 | 1. Знаком с `ACID`? Можешь рассказать, что это такое?
73 | 1. Чем обеспечивается функция долговечности в транзакциях (принцип ACID)?
74 | 1. Какие виды `JOIN` знаешь? Чем они отличаются?
75 | 1. Что такое атомарность и консистентность?
76 | 1. Если соединяем несколько таблиц БД с помощью `INNER JOIN`, есть ли разница в оптимизации, в каком порядке соединяем таблицы?
77 | 1. За счет чего и каким именно образом обеспечиваются уровни изоляции в БД?
78 | 1. По какому параметру планировщик в БД выбирает самый оптимальный вариант?
79 |
80 | ### Сети
81 |
82 | 1. В чем различие `TCP` и `UDP`?
83 | 1. Расскажи про OSI. На каком уровне находится HTTP?
84 | 1. Что из себя представляет HTTP запрос? Структура? Тело есть у всех HTTP запросов?
85 | 1. Можешь рассказать, что такое REST? Использовал ли в работе REST?
86 | 1. Какой HTTP метод используется для обновления небольшого кусочка по REST?
87 |
88 | ### Безопасность
89 |
90 | 1. Какие виды уязвимостей знаешь?
91 | 1. Что такое `XSS` уязвимость? Как организовать защиту от неё?
92 | 1. Что такое `SQLi` уязвимость? Как организовать защиту от неё?
93 | 1. Чем HTTPS отличается от HTTP?
94 |
95 | ## Middle
96 |
97 | ### Общие вопросы
98 |
99 | 1. Какие знаешь паттерны ООП? Какие использовал?
100 | 1. Работал ли с Docker? Kubernetes?
101 | 1. Работал ли с Grafana?
102 | 1. Какие минусы у микросервисной архитектуры? Какие плюсы?
103 | 1. Что такое репликация и шардирование? Когда что использовать?
104 | 1. Масштабирование, горизонтальное, вертикальное. Можешь рассказать, что такое?
105 | 1. Как можно оценить, что твое приложение начинает тормозить?
106 | 1. Достаточно ли валидации в ORM при реализации проверки на уникальность, например, email при регистрации? Раскройте
107 | 1. Какие последствия возможны при отправке email прямо в контроллере? Как можно решить эти проблемы?
108 | 1. Как бы вы реализовали смену email на сайте, так чтобы соблюсти баланс между сложностью и безопасностью?
109 | 1. Можно ли доверять email, который мы получаем по oauth от соц сетей и мержить аккаунты автоматически? Приведите примеры
110 | 1. Как ограничить отправку email пользователю, который добавил письмо нашего проекта в спам? И почему это стоит делать (или не стоит)?
111 | 1. Предположим что вы реализуете редакцию журнала, где редактора могут в админке править статьи. Как предотвратить ситуацию, когда два редактора могут начать одновременно редактировать одну статью и перетирать изменения друг друга?
112 | 1. Каких принципов разработки нужно придерживаться, для обеспечения механизма zero downtime deployment. Как это достигается?
113 | 1. Что может произойти, если ваша `cron` задача, которая запускается раз в минуту, стала выполняться больше 1 минуты? Как это можно предотвратить?
114 | 1. Если вы пишите тесты, то как вы обходите проблему того, что код который вы тестируете, делает внешние вызовы? Доп условие, говорим о том, что на CI внешние вызовы запрещены (почему так правильно?)
115 | 1. Предположим что в вашей системе реализована смена емейла. При этом этот емейл хранится еще и во внешней системе, например эквайринге, который шлет пользователю свои письма (но пользователь им напрямую не пользуется). Как бы вы реализовали синхронизацию емейла с внешней системой?
116 | 1. Как вы узнаете об ошибках, которые происходят на продакшене? От пользователей или это автоматизировано?
117 | 1. Как обеспечивается изоляция тестов друг от друга если они ходят в базу и меняют ее? Если в вашем фреймворке этого нет, то как вы это делаете или сделали бы?
118 |
119 |
120 | ### Java
121 |
122 | 1. Что такое Structured Concurrency?
123 | 1. Где хранятся объекты в Java?
124 | 1. Для чего нужен метод `hashcode`?
125 | 1. Чем отличаются `iterable` и `iterator`?
126 | 1. Какие коллекции для многопоточного программирования знаешь?
127 | 1. Знаешь, как работает сборщик мусора? Если у нас есть переменная, например объект, который ссылается сам на себя, сборщик мусора его обработает?
128 |
129 | ### Базы данных
130 |
131 | 1. Для чего нужны индексы в БД?
132 | 1. В каких случаях первичный ключ может быть `null`?
133 | 1. В каком случае первичный ключ может быть составным и может ли он быть составным? Можешь привести пример такой ситуации?
134 | 1. Чем `DELETE` отличается от `TRUNCATE`? Какой запрос будет выполнен быстрее?
135 | 1. Знаешь ли ты, что такое `SELF JOIN`?
136 | 1. Решал ли ты какие-то задачи производительности в БД?
137 | 1. Знаком, что такое PG Bouncer?
138 | 1. Можешь рассказать про плюсы и минусы расположения БД в контейнере и без? В каких случаях стоит использовать базу в контейнере?
139 |
140 | ### Безопасность
141 |
142 | 1. Какие типы `XSS` уязвимости ты знаешь?
143 | 1. Какие типы `SQLi` уязвимости ты знаешь?
144 | 1. Знаком с OWASP? Какая цель у этого проекта и чем он полезен разработчикам?
145 | 1. Расскажи про OWASP Top 10. Какие самые популярные уязвимости в этом рейтинге?
146 |
--------------------------------------------------------------------------------
/questions/manual-qa.md:
--------------------------------------------------------------------------------
1 | # Вопросы для ручных тестировщиков
2 |
3 | [Вопросы по soft skills](/questions/softskills.md)
4 | [Вопросы по алгоритмам](/questions/algorithms.md)
5 |
6 | ## Junior
7 |
8 | ### Общие вопросы
9 |
10 | 1. Почему ты решил стать тестировщиком, чем тебя привлекает профессия?
11 | 1. Тестирование - что это вообще, чем занимается тестировщик и зачем?
12 | 1. Какие виды тестирования знаешь?
13 | 1. Тестовые сценарии принято делить на позитивные и негативные. В чем разница между ними? Почему мы проверяем сперва позитивные сценарии, а потом негативные?
14 | 1. Расскажи, что такое функциональные требования и нефункциональные? Можешь привести пример?
15 | 1. Тестировщик тестирует, написал тест-кейсы и начинает находить баги. Что такое баг или ошибка.
16 | 1. При описании ошибки должна быть информация. Какая-то обязательная, какая-то нет. Какие обязательные данные должны быть указаны при описании бага? А что можно указать по желанию?
17 | 1. Что такое Smoke и Sanity тестирование?
18 | 1. Мы открываем банковское приложение, заказываем детализацию счета. Но ничего не происходит. Тебе надо описать, какие варианты ошибок могут быть, что будешь передавать разработчику.
19 | 1. Какие уровни тестирования можешь назвать?
20 | 1. Какие правила хорошего тона для написания чек-листа. Как определяешь, что тест-кейс хороший?
21 | 1. Приведи пример ошибки у которой серьёзность ошибки самая высокая, а приоритет при этом самый низкий.
22 | 1. Есть какой-то веб-сайт, на нем кнопка, которая отвечает за вход в логин-систему. Когда эта кнопка не работает, это создает условие, когда пользователь не может получить доступ большей частью функционала. Как бы ты охарактеризовал приоритет этого бага?
23 | 1. У нас есть обычная шариковая ручка. Тебе ее нужно протестировать. Что будешь проверять в первую очередь и почему, что потом и почему.
24 | 1. Когда пишутся тест-кейсы, на каком этапе проекта?
25 | 1. Опиши структуру баг-репорта
26 | 1. Какие тест-кейсы ты передашь автотестировщику?
27 | 1. На сайте нажимаем кнопку "сделать заказ", но в корзине ничего нет. Как будешь тестировать?
28 | 1. Объясните разницу между позитивным и негативным тестированием
29 | 1. Что такое UI тестирование?
30 | 1. Что такое UX тестирование?
31 | 1. Что такое локализация и интернационализация в тестировании приложений?
32 | 1. Знаком ли ты с пирамидой тестирования?
33 | 1. В чем отличается тестирование мобильных приложений от веб-приложений?
34 | 1. Как ты протестируешь ввод в поисковую строку?
35 |
36 | ### Базы данных
37 |
38 | 1. Что такое СУБД, для чего используется? Какие примеры СУБД можешь привести?
39 | 1. Чем отличается SQL от NoSQL?
40 | 1. Какие виды отношений между таблицами можешь назвать? Покажи примеры.
41 | 1. Какие запросы в БД может быть делаешь, На каком уровне знаешь SQL?
42 | 1. Что такое первичный и внешний ключ?
43 | 1. Какие виды соединений `JOIN` в БД используешь?
44 |
45 | ### Сети
46 |
47 | 1. Что такое веб-тестирование? Что такое веб-приложение? Что из себя представляет клиент-серверная архитектура?
48 | 1. Для чего нужны куки?
49 | 1. Что такое кроссбраузерное тестирование. Для чего проводится и как?
50 | 1. Что такое адаптивность?
51 | 1. Какие семейства кодов ответов можешь рассказать? Чем код ответа 200 от 201 отличается?
52 | 1. Чем `PUT` запрос отличается от `PATCH`?
53 | 1. В чем разница SOAP от REST API?
54 | 1. Что из себя представляет JSON?
55 | 1. Из чего состоит стартовая строка?
56 | 1. Как нам в теле `GET` запроса отправить картинку на сервер?
57 | 1. Какие инструменты для тестирования API можешь назвать?
58 | 1. Можешь рассказать, как написать тесты в Postman?
59 | 1. Какие примеры негативных сценариев для Postman можешь предложить?
60 | 1. Есть такая вещь, называется токен. Для чего используется?
61 | 1. Опиши, как вы бы протестировали веб-приложение на кросс-браузерную совместимость?
62 | 1. Мы тестим веб приложение, это приложение при работе с браузером сохраняет свое состояние. Картинки, авторизационные данные. Что за хранилище в браузере, в каких местах сохраняет?
63 |
64 | ## Middle
65 |
66 | ### Общие вопросы
67 |
68 | 1. Что такое CI/CD, т.е. продолжительная интеграция и доставка?
69 | 1. Что такое система контроля версий и для чего используется?
70 | 1. Какой командой мы можем получить себе на локальную машину проект?
71 | 1. Существуют классические подходы к разработке проектов, а есть гибкие. Расскажи про них, чем отличаются.
72 | 1. Что такое регрессионное тестирование и когда оно используется?
73 | 1. Как выглядел ваш рабочий процесс? Какие инструменты использовали?
74 | 1. Какие среды у вас использовались в проекте?
75 | 1. Какая у вас была тестовая документация? Как вы ее вели?
76 | 1. Писали ли вы автотесты? Что использовали?
77 | 1. Выберите из SQL таблицы все имена заканчивающиеся на "А"
78 | 1. Какие техники тест-дизайна вы знаете?
79 | 1. Какая разница между приоритетом и серьезностью бага? Приведите пример серьезного, но не приоритетного бага
80 | 1. Что такое User Story?
81 | 1. Пользовался ли Kibana? Какими фильтрами в ней можно пользоваться?
82 | 1. Объясните жизненный цикл дефекта (Bug Life Cycle)
83 | 1. Какая роль у тестировщика на проекте?
84 | 1. Какие этапы жизненного цикла ПО существуют?
85 | 1. Что такое пирамида тестирования, что в ней находится, почему она имеет форму пирамиды?
86 | 1. Как протестировать API веб-приложения? Какие инструменты применимы?
87 | 1. Расскажи про динамическое и статическое тестирование.
88 | 1. Что такое регрессионное тестирование?
89 |
--------------------------------------------------------------------------------
/questions/nodejs.md:
--------------------------------------------------------------------------------
1 | # Вопросы для бэкендеров на NodeJS
2 |
3 | [Вопросы по soft skills](/questions/softskills.md)
4 | [Вопросы по алгоритмам](/questions/algorithms.md)
5 |
6 | ## Junior
7 |
8 | ### Общие вопросы
9 |
10 | 1. Почему ты решил стать бэкенд-разработчиком, чем тебя привлекает профессия?
11 | 1. Писал ли тесты? Как их писал? Какие есть типы тестов?
12 | 1. Что использовал для валидации данных?
13 | 1. Какие есть два подхода в создании телеграм ботов?
14 | 1. Что такое Swagger?
15 | 1. Что такое вебсокеты??
16 | 1. Что такое dependency injection?
17 | 1. Что такое декораторы? Где они используются?
18 | 1. Приходилось ли тебе самому писать нативные декораторы? Не NestJS декораторы, а свои. Расскажи про этот опыт.
19 | 1. Какие принципы объектно-ориентированного программирования ты знаешь?
20 | 1. Какие ORM знаешь и какие использовал? Какие плюсы и минусы можешь выделить?
21 | 1. Какие принципы SOLID знаешь? Можешь подробнее про них рассказать?
22 | 1. Что такое чистая функция?
23 |
24 | ### Javascript
25 |
26 | 1. В чем отличия `null` и `undefined`?
27 | 1. Отличие `var`, `let`, и `const`?
28 | 1. Какие есть типы данных в JavaScript?
29 | 1. Строки в JavaScript изменяемые? Или при добавлении символа в конец строки, это уже будет новая строка?
30 | 1. Что такое анонимные функции?
31 | 1. Что такое замыкание и hoisting (всплытие)? Привести пример замыкания. Есть ли разница при использовании `var` и `let`?
32 | 1. В чем разница function declaration и function expression?
33 | 1. В чем разница двойного равно и тройного (`==` и `===`)?
34 | 1. Как проверить переменную на `NaN`?
35 | 1. Как в JavaScript передается параметр в функцию - по ссылке или по значению?
36 | 1. Что делают `call()`, `bind()`, `apply()`?
37 | 1. Чем отличается `forEach()` от `map()`?
38 | 1. Что такое `map()`, `reduce()` и `filter()`? Расскажи про каждый и в чем разница?
39 | 1. Как сделать глубокую копию объекта?
40 | 1. Расскажи, какие ты знаешь способы копирования объекта в JavaScript?
41 | 1. Что такое глубокое копирование и поверхностное?
42 | 1. Расскажи про прототипы, что это такое?
43 | 1. Расскажи про область видимости.
44 | 1. Что на конце цепочки прототипов?
45 | 1. Что такое NodeJS? Из чего он состоит?
46 | 1. Из каких компонентов состоит Node.js?
47 | 1. Node.js однопоточна? Как реализуется многопоточность в Node.js в случае необходимости? Что такое трек пулл? Кто администрирует последовательности вызовов?
48 | 1. Как можно оценить производительность приложения Node.js?
49 | 1. Что происходит после того, как JavaScript передается в Node.js?
50 | 1. Что внутри Node.js занимается оптимизацией? В какой момент происходит оптимизация? Что происходит с JS кодом чтобы он был “ближе к движку”? Во что разбирается JS код с помощью V8?
51 | 1. Какими способами можно обработать ошибку в Promise?
52 | 1. Когда-нибудь приходило к тебе понимание типа “а вот здесь я хочу использовать eventemitter”? Когда его лучше использовать?
53 | 1. Что такое Event Loop? Для чего он нужен? Какую проблему решает? Можешь рассказать, что такое Event Loop? Какие есть фазы? Если в Event Loop ничего не останется после выполнения, то что произойдет? В какой последовательности вызываются микро и макро таски?
54 | 1. Что такое `keyof` и `typeof`?
55 | 1. Что такое `Set`, `Map`, `WeakSet`, `WeakMap`?
56 | 1. Что такое дескрипторы объекта?
57 | 1. Как добавить интернационализацию в приложение?
58 | 1. Что такое package.json?
59 | 1. Что такое package-lock.json? Зачем нужен? Зачем его коммитить? В чем разница `npm i` и `npm ci`?
60 | 1. Отличия ES5 и ES6?
61 | 1. Расскажи про различия "старого" JavaScript и "нового"?
62 | 1. Если поставить таймер на 10 секунд, то через сколько он сработает? Почему?
63 | 1. Можешь рассказать, что такое замыкания в JS? Есть ли такое в других языках?
64 | 1. Immediatly invoke function (самовызывающаяся функция). Это что?
65 |
66 | ### NodeJS
67 |
68 | 1. Node.js однопоточна? Как реализуется многопоточность в Node.js в случае необходимости? Что такое трек пулл? Кто администрирует последовательности вызовов?
69 | 1. Как можно оценить производительность приложения Node.js?
70 | 1. Что происходит после того, как JavaScript передается в Node.js?
71 | 1. Что внутри Node.js занимается оптимизацией? В какой момент происходит оптимизация? Что происходит с JS кодом чтобы он был “ближе к движку”? Во что разбирается JS код с помощью V8?
72 |
73 | ### Typescript
74 |
75 | 1. Node.js может выполнять TypeScript?
76 | 1. Отличия type и interface в TS?
77 | 1. Отличия типа и абстрактного класса?
78 | 1. Настраивал ли typeconfig?
79 | 1. Какие есть встроенные типы Typescript?
80 |
81 | ### Базы данных
82 |
83 | 1. С какими СУБД работал?
84 | 1. Фундаментальные различия между MongoDB и Postgress? В каких случаях что выберешь?
85 | 1. Знаком с ACID? Можешь рассказать, что это такое?
86 | 1. Какие виды JOIN знаешь? Чем они отличаются?
87 | 1. Пользовался ли транзакциями? В каких случаях?
88 | 1. Делал ли внешние ключи в базах данных? Зачем они нужны?
89 | 1. Миграции/сиды писал?
90 | 1. Если соединяем несколько таблиц БД с помощью `INNER JOIN`, есть ли разница в оптимизации, в каком порядке соединяем таблицы?
91 |
92 | ### Сети
93 |
94 | 1. В чем различие TCP и UDP?
95 | 1. Расскажи про OSI. На каком уровне находится HTTP?
96 | 1. Что из себя представляет HTTP запрос? Структура? Тело есть у всех HTTP запросов?
97 | 1. На чем основан HTTP запрос? На каком протоколе? А еще глубже?
98 | 1. Что такое REST API? Можешь рассказать, что такое REST? Использовал ли в работе REST?
99 | 1. Какой HTTP метод используется для обновления небольшого кусочка по REST?
100 | 1. Чем отличается вообще протокол HTTP и чем он отличается от HTTPS?
101 | 1. Что такое CORS? Это связано именно с HTTP?
102 |
103 | ## Middle
104 |
105 | ### Общие вопросы
106 |
107 | 1. Какие минусы у микросервисной архитектуры? Какие плюсы?
108 | 1. Работал с микросервисами? Расскажи, какие могут быть минусы?
109 | 1. Что такое репликация и шардирование? Когда что использовать?
110 | 1. Масштабирование, горизонтальное, вертикальное. Можешь рассказать, что такое?
111 | 1. Как можно оценить, что твое приложение начинает тормозить?
112 | 1. Какие знаешь паттерны ООП? Какие использовал?
113 | 1. Знаешь, как работает сборщик мусора в NodeJS? Если у нас есть переменная, например объект, который ссылается сам на себя, сборщик мусора его обработает?
114 | 1. Работал ли с Docker? Kubernetes?
115 | 1. Работал ли с Grafana?
116 | 1. Достаточно ли валидации в ORM при реализации проверки на уникальность, например, email при регистрации? Раскройте
117 | 1. Какие последствия возможны при отправке email прямо в контроллере? Как можно решить эти проблемы?
118 | 1. Как бы вы реализовали смену email на сайте, так чтобы соблюсти баланс между сложностью и безопасностью?
119 | 1. Можно ли доверять email, который мы получаем по oauth от соц сетей и мержить аккаунты автоматически? Приведите примеры
120 | 1. Как ограничить отправку email пользователю, который добавил письмо нашего проекта в спам? И почему это стоит делать (или не стоит)?
121 | 1. Предположим что вы реализуете редакцию журнала, где редактора могут в админке править статьи. Как предотвратить ситуацию, когда два редактора могут начать одновременно редактировать одну статью и перетирать изменения друг друга?
122 | 1. Каких принципов разработки нужно придерживаться, для обеспечения механизма zero downtime deployment. Как это достигается?
123 | 1. Что может произойти, если ваша `cron` задача, которая запускается раз в минуту, стала выполняться больше 1 минуты? Как это можно предотвратить?
124 | 1. Если вы пишите тесты, то как вы обходите проблему того, что код который вы тестируете, делает внешние вызовы? Доп условие, говорим о том, что на CI внешние вызовы запрещены (почему так правильно?)
125 | 1. Предположим что в вашей системе реализована смена емейла. При этом этот емейл хранится еще и во внешней системе, например эквайринге, который шлет пользователю свои письма (но пользователь им напрямую не пользуется). Как бы вы реализовали синхронизацию емейла с внешней системой?
126 | 1. Как вы узнаете об ошибках, которые происходят на продакшене? От пользователей или это автоматизировано?
127 | 1. Как обеспечивается изоляция тестов друг от друга если они ходят в базу и меняют ее? Если в вашем фреймворке этого нет, то как вы это делаете или сделали бы?
128 |
129 | ### Базы данных
130 |
131 | 1. Для чего нужны индексы в БД?
132 | 1. В каких случаях первичный ключ может быть `null`?
133 | 1. В каком случае первичный ключ может быть составным и может ли он быть составным? Можешь привести пример такой ситуации?
134 | 1. Чем `DELETE` отличается от `TRUNCATE`? Какой запрос будет выполнен быстрее?
135 | 1. Знаешь ли ты, что такое `SELF JOIN`?
136 | 1. Решал ли ты какие-то задачи производительности в БД?
137 | 1. Знаком, что такое PG Bouncer?
138 | 1. Работал ли ты с Sequelize? Что тебе понравилось и не понравилось?
139 | 1. Можешь рассказать про плюсы и минусы расположения БД в контейнере и без? В каких случаях стоит использовать базу в контейнере?
140 | 1. Если соединяем несколько таблиц БД с помощью `INNER JOIN`, есть ли разница в оптимизации, в каком порядке соединяем таблицы?
141 |
--------------------------------------------------------------------------------
/questions/php.md:
--------------------------------------------------------------------------------
1 | # Вопросы для PHP-разработчиков
2 |
3 | [Вопросы по soft skills](/questions/softskills.md)
4 | [Вопросы по алгоритмам](/questions/algorithms.md)
5 |
6 | ## Junior
7 |
8 | ### Общие вопросы
9 |
10 | 1. Почему ты решил стать бэкенд-разработчиком, чем тебя привлекает профессия?
11 | 1. Приходилось писать тесты и на чем?
12 | 1. Знаком с пирамидой тестирования? Какие виды тестирования знаешь?
13 |
14 | ### PHP
15 |
16 | 1. Какие есть типы данных в PHP?
17 | 1. Что такое интерфейсы и абстрактные классы в PHP, зачем они нужны и чем отличаются?
18 | 1. Что такое инкремент и декремент и в чем разница между префиксной и постфиксной записями?
19 | 1. Расскажи про динамические переменные.
20 | 1. Что такое рекурсия? Назовите плюсы и минусы рекурсии?
21 | 1. В чем разница между `=`, `==`, `===`?
22 | 1. Какая система типов используется в PHP?
23 | 1. Что такое магический метод? Какие магические методы вы знаете, где они применяются?
24 | 1. Что такое трейты?
25 | 1. Можно ли наследоваться множество раз? Если нет, то какие есть альтернативы для этого решения?
26 | 1. Какие существуют методы обработки ошибок?
27 | 1. Какая разница между `self` и `$this`?
28 | 1. Что такое генератор?
29 | 1. Что такое неймспейсы и зачем они нужны?
30 | 1. Чем отличается `include` от `require`?
31 | 1. Как сделать, чтобы объект вел себя как массив?
32 | 1. При замыкании как прокинуть переменную? При использовании в классе, нужно ли прокидывать `$this`?
33 | 1. Что будет с объектом после передачи в метод и его модификации? А если передать массив?
34 | 1. Сможешь рассказать о принципах разработки ПО: SOLID, DRY, KISS? Какие еще знаешь принципы разработки?
35 |
36 | ### Базы данных
37 |
38 | 1. С какими СУБД работал?
39 | 1. Фундаментальные различия между MongoDB и Postgres?
40 | 1. Знаком с ACID? Можешь рассказать, что это такое?
41 | 1. Какие виды `JOIN` знаешь? Чем они отличаются?
42 | 1. Что такое транзакция?
43 | 1. Расскажи о ссылочной целостности в БД, что это и для чего нужно?
44 | 1. Какие ключи есть в MySQL? Как их можно настроить, на какие события?
45 | 1. В чем различие between where и having?
46 | 1. Обязательно ли поле с id, которое ссылается на другую таблицу, делать внешним ключом?
47 | 1. Какие ORM знаешь и какие использовал? Какие плюсы и минусы можешь выделить?
48 | 1. Если соединяем несколько таблиц БД с помощью `INNER JOIN`, есть ли разница в оптимизации, в каком порядке соединяем таблицы?
49 |
50 | ### Сети
51 |
52 | 1. В чем различие TCP и UDP?
53 | 1. Расскажи про OSI. На каком уровне находится HTTP?
54 | 1. Что из себя представляет HTTP запрос? Структура? Тело есть у всех HTTP запросов?
55 | 1. Можешь рассказать, что такое REST? Использовал ли в работе REST?
56 | 1. В чем разница между `GET` и `POST`?
57 | 1. Какой HTTP метод используется для обновления небольшого кусочка по REST?
58 | 1. Можно ли передавать параметры запроса в URL при использовании метода POST?
59 | 1. При работе с каким методом стоит использовать кэш?
60 |
61 | ### Безопасность
62 |
63 | 1. Почему использование функции `eval()` небезопасно? Какие ещё знаешь небезопасные функции в PHP?
64 | 1. Какие виды уязвимостей знаешь?
65 | 1. Что такое `XSS` уязвимость? Как организовать защиту от неё?
66 | 1. Что такое `SQLi` уязвимость? Как организовать защиту от неё?
67 | 1. Чем HTTPS отличается от HTTP?
68 |
69 | ## Middle
70 |
71 | ### Общие вопросы
72 |
73 | 1. Как сделать, чтобы другие сервисы могли проверить подлинность токена, но при этом не иметь возможности выпускать токен?
74 | 1. Зачем нужен refresh-токен в JWT? Почему недостаточно обычного access-токена?
75 | 1. JWT или сессии — что лучше? Чем различаются?
76 |
77 | 1. Решал ли ты какие-то задачи производительности в БД?
78 | 1. Знаком, что такое PG Bouncer?
79 | 1. Какие минусы у микросервисной архитектуры? Какие плюсы?
80 | 1. Про микросервисы. Расскажи, какие могут быть минусы?
81 | 1. Масштабирование: горизонтальное, вертикальное. Можешь рассказать, что это?
82 | 1. Как можно оценить, что твое приложение начинает тормозить?
83 | 1. Какие знаешь паттерны ООП? Какие использовал?
84 | 1. Как обобщить и унифицировать множество команд, чтобы получать одну из команд в зависимости от контекста, какой паттерн для этого можно применить?
85 | 1. Работал ли с Docker? Kubernetes?
86 | 1. Можешь рассказать про плюсы и минусы расположения БД в контейнере и без? В каких случаях стоит использовать базу в контейнере?
87 | 1. Работал ли с Grafana?
88 | 1. Достаточно ли валидации в ORM при реализации проверки на уникальность, например, email при регистрации? Раскройте
89 | 1. Какие последствия возможны при отправке email прямо в контроллере? Как можно решить эти проблемы?
90 | 1. Как бы вы реализовали смену email на сайте, так чтобы соблюсти баланс между сложностью и безопасностью?
91 | 1. Можно ли доверять email, который мы получаем по oauth от соц сетей и мержить аккаунты автоматически? Приведите примеры
92 | 1. Как ограничить отправку email пользователю, который добавил письмо нашего проекта в спам? И почему это стоит делать (или не стоит)?
93 | 1. Предположим что вы реализуете редакцию журнала, где редактора могут в админке править статьи. Как предотвратить ситуацию, когда два редактора могут начать одновременно редактировать одну статью и перетирать изменения друг друга?
94 | 1. Каких принципов разработки нужно придерживаться, для обеспечения механизма zero downtime deployment. Как это достигается?
95 | 1. Что может произойти, если ваша `cron` задача, которая запускается раз в минуту, стала выполняться больше 1 минуты? Как это можно предотвратить?
96 | 1. Если вы пишите тесты, то как вы обходите проблему того, что код который вы тестируете, делает внешние вызовы? Доп условие, говорим о том, что на CI внешние вызовы запрещены (почему так правильно?)
97 | 1. Предположим что в вашей системе реализована смена емейла. При этом этот емейл хранится еще и во внешней системе, например эквайринге, который шлет пользователю свои письма (но пользователь им напрямую не пользуется). Как бы вы реализовали синхронизацию емейла с внешней системой?
98 | 1. Как вы узнаете об ошибках, которые происходят на продакшене? От пользователей или это автоматизировано?
99 | 1. Как обеспечивается изоляция тестов друг от друга если они ходят в базу и меняют ее? Если в вашем фреймворке этого нет, то как вы это делаете или сделали бы?
100 |
101 | ### PHP
102 |
103 | 1. Знаешь, как работает сборщик мусора в PHP? Если у нас есть переменная, например объект, который ссылается сам на себя, сборщик мусора его обработает?
104 | 1. При передаче объекта в функцию и модификации этого объекта в функции, что происходит? Расскажите про механизм "Copy on Write".
105 | 1. Что такое деструкторы, где применяются?
106 | 1. Приходилось работать с Reflection API? Зачем оно может пригодиться?
107 |
108 | ### Базы данных
109 |
110 | 1. Для чего нужны индексы в БД?
111 | 1. В каких случаях первичный ключ может быть `null`?
112 | 1. В каком случае первичный ключ может быть составным и может ли он быть составным? Можешь привести пример такой ситуации?
113 | 1. Чем `DELETE` отличается от `TRUNCATE`? Какой запрос будет выполнен быстрее?
114 | 1. Знаешь ли ты, что такое `SELF JOIN`?
115 | 1. В каких случаях необходима денормализация? Как она может помочь в системе рекомендаций?
116 | 1. Как можно ускорить запрос с выбором данных из категорий с самыми дешевыми товарами?
117 | 1. Обязательно ли делать поле внешним ключом? Всегда ли это плохо? Что такое нормальная форма?
118 | 1. Что такое репликация и шардирование? Когда что использовать?
119 | 1. Если соединяем несколько таблиц БД с помощью `INNER JOIN`, есть ли разница в оптимизации, в каком порядке соединяем таблицы?
120 | 1. Чем различаются уровни транзакций в БД?
121 | 1. Что такое аналитические СУБД?
122 | 1. Какие NoSQL знаешь? Для чего используются?
123 |
124 | ### Безопасность
125 |
126 | 1. Какие типы `XSS` уязвимости ты знаешь?
127 | 1. Какие типы `SQLi` уязвимости ты знаешь?
128 | 1. Знаком с OWASP? Какая цель у этого проекта и чем он полезен разработчикам?
129 | 1. Расскажи про OWASP Top 10. Какие самые популярные уязвимости в этом рейтинге?
130 |
--------------------------------------------------------------------------------
/questions/python.md:
--------------------------------------------------------------------------------
1 | # Вопросы для разработчиков Python
2 |
3 | [Вопросы по soft skills](/questions/softskills.md)
4 | [Вопросы по алгоритмам](/questions/algorithms.md)
5 |
6 | ## Junior
7 |
8 | ### Общие вопросы
9 |
10 | 1. Почему ты решил стать бэкенд-разработчиком, чем тебя привлекает профессия?
11 |
12 | ### Python
13 |
14 | 1. Какие типы данных существуют в Python?
15 | 1. Области видимости в Python. Как работают?
16 | 1. Методы работы со списками, какие существуют?
17 | 1. Как устроены хеш-мапы в Python?
18 | 1. В чем разница между операторами `is` и `==`?
19 | 1. Какие циклы существуют в Python?
20 | 1. Что такое контекстный менеджер? Для чего он используется?
21 | 1. Что такое магические методы в Python? Как они работают?
22 | 1. В чем разница между приватными и защищенными методами?
23 | 1. Различия между `staticmethod` и `classmethod`.
24 | 1. Что такое GIL? Как он влияет на многозадачность в Python?
25 | 1. Что может быть ключом словаря, а что не может? Почему?
26 | 1. Как устроено наследование в Python? Как работает множественное наследование?
27 | 1. Что такое ленивые вычисления в Python?
28 | 1. В чем разница между Flask и FastAPI?
29 | 1. Что такое сериализация? Где и зачем она используется?
30 |
31 | ### Базы данных
32 |
33 | 1. Какие бывают типы баз данных? В чем их отличия?
34 | 1. В чем разница между `JOIN` и `UNION`?
35 | 1. В чем различия между `UNION` и `UNION ALL`?
36 | 1. Какие требования предъявляются к оператору `UNION`?
37 | 1. В чем разница между `HAVING` и `WHERE`?
38 | 1. Что такое индексы в базах данных? Какие плюсы и минусы у их использования?
39 | 1. Что такое SQL-инъекции? Как их предотвратить?
40 | 1. Что такое транзакции? Как они работают?
41 | 1. Какие ORM знаешь и какие использовал? Какие плюсы и минусы можешь выделить?
42 | 1. Если соединяем несколько таблиц БД с помощью `INNER JOIN`, есть ли разница в оптимизации, в каком порядке соединяем таблицы?
43 |
44 | ### Сети
45 |
46 | 1. Какие бывают протоколы передачи данных?
47 | 1. В чем разница между HTTP и HTTPS?
48 | 1. В чем разница между UDP и TCP?
49 | 1. Какие методы HTTP существуют? Как они различаются?
50 | 1. Что такое JWT токен?
51 | 1. Что такое REST API и как оно работает?
52 |
53 | ### Безопасность
54 |
55 | 1. Какие виды уязвимостей знаешь?
56 | 1. Что такое `XSS` уязвимость? Как организовать защиту от неё?
57 | 1. Что такое `SQLi` уязвимость? Как организовать защиту от неё?
58 | 1. Чем HTTPS отличается от HTTP?
59 |
60 | ## Middle
61 |
62 | ### Общие вопросы
63 |
64 | 1. В чем разница между аутентификацией, авторизацией и идентификацией?
65 | 1. Расскажи о принципах SOLID.
66 | 1. Расскажи о принципах ООП.
67 | 1. Какие паттерны программирования знаешь? Приведи пару примеров.
68 | 1. Достаточно ли валидации в ORM при реализации проверки на уникальность, например, email при регистрации? Раскройте
69 | 1. Какие последствия возможны при отправке email прямо в контроллере? Как можно решить эти проблемы?
70 | 1. Как бы вы реализовали смену email на сайте, так чтобы соблюсти баланс между сложностью и безопасностью?
71 | 1. Можно ли доверять email, который мы получаем по oauth от соц сетей и мержить аккаунты автоматически? Приведите примеры
72 | 1. Как ограничить отправку email пользователю, который добавил письмо нашего проекта в спам? И почему это стоит делать (или не стоит)?
73 | 1. Предположим что вы реализуете редакцию журнала, где редактора могут в админке править статьи. Как предотвратить ситуацию, когда два редактора могут начать одновременно редактировать одну статью и перетирать изменения друг друга?
74 | 1. Каких принципов разработки нужно придерживаться, для обеспечения механизма zero downtime deployment. Как это достигается?
75 | 1. Что может произойти, если ваша `cron` задача, которая запускается раз в минуту, стала выполняться больше 1 минуты? Как это можно предотвратить?
76 | 1. Если вы пишите тесты, то как вы обходите проблему того, что код который вы тестируете, делает внешние вызовы? Доп условие, говорим о том, что на CI внешние вызовы запрещены (почему так правильно?)
77 | 1. Предположим что в вашей системе реализована смена емейла. При этом этот емейл хранится еще и во внешней системе, например эквайринге, который шлет пользователю свои письма (но пользователь им напрямую не пользуется). Как бы вы реализовали синхронизацию емейла с внешней системой?
78 | 1. Как вы узнаете об ошибках, которые происходят на продакшене? От пользователей или это автоматизировано?
79 | 1. Как обеспечивается изоляция тестов друг от друга если они ходят в базу и меняют ее? Если в вашем фреймворке этого нет, то как вы это делаете или сделали бы?
80 |
81 | ### Python
82 |
83 | 1. Как создать генератор в Python?
84 | 1. Чем тебе интересен Python? Почему выбрал эту технологию?
85 | 1. Расскажи про проекты, которыми занимался, и какие технологии использовал?
86 | 1. Как бы ты охарактеризовал Python? Какие преимущества или недостатки у него есть?
87 | 1. Как ты понимаешь ссылочную модель в Python?
88 | 1. Если мы создадим переменную `a`, в которой будет значение `1`, и создадим переменную `b = a`, то сколько объектов и сколько ссылок будет создано?
89 | 1. Для чего нужен счетчик ссылок в Python?
90 | 1. Какие типы данных изменяемые, а какие неизменяемые в Python? Почему это важно?
91 | 1. Расскажи про использование моков
92 | 1. Какие есть способы расширить модель пользователя в Django?
93 | 1. Что такое класс `BaseView` и для чего он используется?
94 | 1. Как бы ты описал модель проектирования Django? Какие конструкции использует Django?
95 | 1. Как реализовать систему избранного в интернет-магазине на Django?
96 | 1. Как устроена система авторизации в Django?
97 | 1. Как реализовать корзину для интернет-магазина в Django?
98 |
99 | ### Сети
100 |
101 | 1. Какие статусы ответов HTTP знаешь?
102 | 1. В чем отличие GET запроса от POST? Можем ли отправить файл через GET?
103 | 1. Какие методы HTTP передают тело запроса?
104 | 1. Что входит в один HTTP-запрос?
105 | 1. Что такое REST? Перечисли принципы. Перечисли частые методы
106 |
107 | ### Базы данных
108 |
109 | 1. Как реализуется связь многие ко многим в базах данных?
110 | 1. Расскажи что такое транзакция
111 | 1. Расскажи о принципах ACID
112 | 1. В чем разница между `UNION` и `JOIN`? `UNION` и `UNION ALL`?
113 | 1. Приходилось ли анализировать план запроса? Чем отличается `EXPLAIN` от `EXPLAIN ANALYZE`?
114 | 1. Если соединяем несколько таблиц БД с помощью `INNER JOIN`, есть ли разница в оптимизации, в каком порядке соединяем таблицы?
115 |
116 | ### Безопасность
117 |
118 | 1. Какие типы `XSS` уязвимости ты знаешь?
119 | 1. Какие типы `SQLi` уязвимости ты знаешь?
120 | 1. Знаком с OWASP? Какая цель у этого проекта и чем он полезен разработчикам?
121 | 1. Расскажи про OWASP Top 10. Какие самые популярные уязвимости в этом рейтинге?
122 |
123 | ### Задачи
124 |
125 | 1. Как написать скрипт для скачивания 1000 картинок? Какие подходы лучше (асинхронно, несколько потоков и т.д.)?
126 | 1. Как бы ты оптимизировал скрипт для скачивания изображений и сделал из него микросервис?
127 | 1. Как реализовать обработку изображений в таком микросервисе?
128 | 1. Как написать код для подсчета четных чисел в списке?
129 | 1. Как работать с запросами, которые внезапно стали медленнее, особенно с `JOIN`?
130 | 1. Как обработать исключения при работе с файлами в Python (отсутствие файла, другие ошибки)?
131 | 1. Как реализовать обращение к API с ограничением по времени и количеству потоков?
132 |
--------------------------------------------------------------------------------
/questions/rails.md:
--------------------------------------------------------------------------------
1 | # Вопросы для разработчиков на Ruby On Rails
2 |
3 | [Вопросы по soft skills](/questions/softskills.md)
4 | [Вопросы по алгоритмам](/questions/algorithms.md)
5 |
6 | ## Junior
7 |
8 | ### Общие вопросы
9 |
10 | 1. Почему ты решил стать бэкенд-разработчиком, чем тебя привлекает профессия?
11 | 1. Приходилось писать тесты и на чем?
12 | 1. Знаком с пирамидой тестирования? Какие виды тестирования знаешь?
13 | 1. Приходилось профилировать код?
14 |
15 | ### Ruby
16 |
17 | 1. Какие типы данных в Ruby знаешь?
18 | 1. Чем тип данных символ отличается от строк?
19 | 1. Что вернётся в результате сложения `10.5` и `10`?
20 | 1. Чем отличаются `proc` от `lambda`
21 | 1. Что такое блок? Что такое `yield`? Можно ли передавать блоки в методы? Каким образом?
22 | 1. Как происходит наследование в Ruby?
23 | 1. Есть ли в Ruby множественное наследование если нет чем можно заменить?
24 | 1. Модули что такое зачем нужны, `extend`, `include`, `prepend` - в чем отличие
25 | 1. Какие ORM знаешь и какие использовал? Какие плюсы и минусы можешь выделить?
26 | 1. Что такое Манкипатчинг? Применял ли?
27 |
28 | ### Сети
29 |
30 | 1. Чем PUT от PATCH отличается?
31 | 1. Что из себя представляет HTTP запрос? Структура? Тело есть у всех HTTP запросов?
32 | 1. Можешь рассказать, что такое REST? Использовал ли в работе REST?
33 | 1. В чем разница между `GET` и `POST`?
34 |
35 | ### Базы данных
36 |
37 | 1. Базы данных - какие базы бывают, чем отличаются.
38 | 2. Индексы в БД что это для чего нужны, какие типы индексов бывают.
39 | 3. Ассоциации(один к одному, один ко многим, многие ко многоим) как реализовать на уровне БД, как реализовать на уровне Rails-моделей.
40 | 4. Какие виды JOIN-ов бывают, чем отличаются.
41 |
42 | ### Задачки на код
43 |
44 | 1. Есть два приложения между ними шина данных(Kafka, RabbitMQ, gRPC), из одного в другой пришли кривые данные, как будешь дебажить?
45 | 2. Есть таблица `posts` и таблица `comments`, связь один ко многим, в таблице `comments` вторичный ключ `post_id` - напиши запрос который вытащит все посты у которых > 3 комментариев и дата создания поста после 20 ноября
46 | 3. Есть новые данные вот такой структуры
47 |
48 | json:
49 | [
50 | {
51 | id: 1,
52 | number: 'H1111',
53 | position: [
54 | {
55 | id: 1
56 | name: 'Хлеб'
57 | cost: '59.90'
58 | },
59 | # ......
60 | ]
61 | },
62 | #......
63 | ]
64 |
65 |
66 |
67 | И им соответствуют модели
68 |
69 | ```ruby
70 | class Order < ApplicationRecord
71 | has_many :positions
72 | end
73 |
74 | class Position < ApplicationRecord
75 | belongs_to :order
76 | end
77 | ```
78 |
79 | Нужно в соответствии с этими данными обновить таблицу `Orders` в которой 100_000 записей
80 |
81 | 4. Есть код Контроллер и две модели
82 | ```ruby
83 | class Order < ApplicationRecord
84 | has_many :positions
85 | end
86 |
87 | class Position < ApplicationRecord
88 | belongs_to :order
89 | end
90 |
91 | class OrdersController < ApplicationController
92 | def index
93 | # solution
94 | end
95 |
96 | def show
97 | #solution
98 | end
99 | end
100 |
101 | class OrderSerialiser < ActiveModel::Serializer
102 | # solution
103 | end
104 | ```
105 |
106 | Нужно дописать экшены в контроллере и сериалайзер, что вернет из экшенов такую структуру
107 |
108 |
109 | index:
110 | [
111 | {
112 | id: 1,
113 | number: 'H1111',
114 | position: [
115 | {
116 | id: 1
117 | name: 'Хлеб'
118 | cost: '59.90'
119 | },
120 | # ......
121 | ]
122 | },
123 | #......
124 | ]
125 |
126 |
127 |
128 |
129 | show:
130 | {
131 | id: 1,
132 | number: 'H1111',
133 | position: [
134 | {
135 | id: 1
136 | name: 'Хлеб'
137 | cost: '59.90'
138 | },
139 | # ......
140 | ]
141 | }
142 |
143 |
144 |
145 | ## Middle
146 |
147 | ### Общие вопросы
148 |
149 | 1. Достаточно ли валидации в ORM при реализации проверки на уникальность, например, email при регистрации? Раскройте
150 | 1. Какие последствия возможны при отправке email прямо в контроллере? Как можно решить эти проблемы?
151 | 1. Как бы вы реализовали смену email на сайте, так чтобы соблюсти баланс между сложностью и безопасностью?
152 | 1. Можно ли доверять email, который мы получаем по oauth от соц сетей и мержить аккаунты автоматически? Приведите примеры
153 | 1. Как ограничить отправку email пользователю, который добавил письмо нашего проекта в спам? И почему это стоит делать (или не стоит)?
154 | 1. Предположим что вы реализуете редакцию журнала, где редактора могут в админке править статьи. Как предотвратить ситуацию, когда два редактора могут начать одновременно редактировать одну статью и перетирать изменения друг друга?
155 | 1. Каких принципов разработки нужно придерживаться, для обеспечения механизма zero downtime deployment. Как это достигается?
156 | 1. Что может произойти, если ваша `cron` задача, которая запускается раз в минуту, стала выполняться больше 1 минуты? Как это можно предотвратить?
157 | 1. Если вы пишите тесты, то как вы обходите проблему того, что код который вы тестируете, делает внешние вызовы? Доп условие, говорим о том, что на CI внешние вызовы запрещены (почему так правильно?)
158 | 1. Предположим что в вашей системе реализована смена емейла. При этом этот емейл хранится еще и во внешней системе, например эквайринге, который шлет пользователю свои письма (но пользователь им напрямую не пользуется). Как бы вы реализовали синхронизацию емейла с внешней системой?
159 | 1. Как вы узнаете об ошибках, которые происходят на продакшене? От пользователей или это автоматизировано?
160 | 1. Как обеспечивается изоляция тестов друг от друга если они ходят в базу и меняют ее? Если в вашем фреймворке этого нет, то как вы это делаете или сделали бы?
161 |
--------------------------------------------------------------------------------
/questions/softskills.md:
--------------------------------------------------------------------------------
1 | ## Вопросы на soft skills
2 |
3 | * Что послужило мотивом поиска работы (смена работы или профессии)?
4 | * В какой фазе поиска работы ты находишься? Может быть уже есть предложения о сотрудничестве?
5 | * Что ты знаешь о компании? Почему согласился пройти собеседование именно к нам?
6 | * Расскажи о своем опыте: где работал, какие задачи выполнял, какие технологии использовал?
7 | * Расскажи о своем пути в <направление>. Почему выбрал именно это направление?
8 | * В каких технологиях ты бы хотел себя прокачать? Почему?
9 | * В каком направлении ты видишь свое развитие?
10 | * Как ты справляешься с дедлайнами или неожиданными проблемами в проекте?
11 | * Каким образом организуешь свою работу? Какие инструменты используешь для управления временем?
12 | * Расскажи про какую-то сложную задачу, которую ты решил и которой гордишься.
13 | * Был ли у тебя опыт наставничества? Как он проходил? Что бы ты сделал, если твой подопечный повторяет одни и те же ошибки?
14 | * Как решаешь конфликты в команде или вопросы при взаимодействии с коллегами?
15 | * Расскажи о каком-нибудь неудачном опыте в работе. О чем жалеешь?
16 | * На что обращаешь внимание при выборе места работы? Какие есть “ред флаги” для тебя?
17 | * Какими задачами тебе было бы неинтересно заниматься?
18 | * Что для тебя комфортный уровень общения в команде?
19 | * Какие у тебя есть профессиональные и личные интересы?
20 | * Решал ли какие-то задачки-каты (например, на Codewars, Leetcode, sqlex)?
21 | * Какие инструменты используемшь в работе??
22 | * Какие у тебя есть вопросы к нашей команде/компании/проекту?
23 |
--------------------------------------------------------------------------------