Задачи для собеседований



Как выглядят собеседования в прекрасной России будущего:

▫️ нет вопросов на внимательность

▫️ нет вопросов о PhantomReference и методах сервлетов

▫️ алгоритмы спрашивают, только если они используются на проекте

▫️ одна сессия не превышает часа, в сумме процесс найма длится не больше трёх часов

▫️ к собеседованиям вообще не нужно готовиться🥰



В этом посте поделюсь парой идей, как приблизить это светлое время.



Цель собеседования — найти сообразительного и внимательного человека. Он хорошо знает язык программирования и технологии, понятно излагает мысли и пишет симпатичный код.



Теоретические вопросы ок, но полезно посмотреть, как человек работает с кодом. Тестовые задания ок, но занимают много времени, поэтому сеньоры и мидлы часто отказываются их делать.



Посмотреть на человека "в деле" можно проще — обсудить уже готовый код и на его основе решить небольшую задачку. Удивительно, но даже задания меньше 20 строк люди делают по-разному.



Что можно обсудить:



1️⃣ Пет-проджект или предыдущие наработки кандидата



Если проект большой и сложный, попросите показать два самых интересных класса.



Плюс: вы видите код первый раз, можно лучше оценить soft skills кандидата и его подход к написанию кода

Минус: пет-проект может быть далёк от задач и стека целевого проекта



2️⃣ Часть текущего проекта (куда ищем кандидата)



▫️ Показать упрощённую версию или обсудить код ключевых классов. Транзакции, стратегии работы с кэшем, работа с БД, многопоточка и другие важные темы на конкретных примерах



▫️ Найдите в истории проекта несложную задачку и обсудите путь решения. Помните, что человек видит код первый раз и волнуется. Будьте добры к кандидату:)



3️⃣ Код опенсорсных проектов или произвольные сниппеты кода



4️⃣ Прикладные алгоритмические задачки



Прекрасно подойдут, если в проекте неплохая нагрузка и много задач на оптимизацию.



Пример задания: сравнить две строки без учёта регистра:

▫️ предложить несколько вариантов (минимум 3)

▫️ оценить, когда какой вариант быстрее



Задача интересная, основана на реальных событиях, а для решения нужен только исходный код String.



Ответ выложу в следующем посте!