107

Какие вопросы я задаю на собеседовании java разработчикам1

Всем привет, я работаю разработчиком на java стеке с 2014 года, прошел довольно много собеседований и также собеседовал сам. Порядок интервью обычно такой: представить проект и стек технологий, дать представиться кандидату, обсудить вопросы по нескольким темам, ответить на вопросы кандидата. Темы зависят от уровня кандидата, не выходят за рамки резюме. Я выработал несколько вопросов, которые предлагаю обсудить кандидату, в этом посте поделюсь ими.

Первый вопрос касается процессов на прошлой работе: откуда кандидат узнавал постановку задач, как понимал что делает свою работу правильно. Не задаю вопрос, почему кандидат хочет сменить работу. Далее идут технические темы.

По классике java интервью, нужно начать с обсуждения алгоритмов и структур данных: ArrayList vs LinkedList, HashMap с hashCode и прочее. Так как в резюме почти у всех указан SQL, предлагаю вместо этого обсудить индексы в БД. Почему по дефолту используется Tree индекс вместо Hash индекса, хотя алгоритмическая сложность первого больше второго (logN > 1). Тот же вопрос: на что влияет порядок колонок в составном индексе? Это позволяет выяснить, понимает ли кандидат структуры данных, или просто запомнил стандартные вопросы.

Следующий вопрос: есть однопоточный сервис для переводов денег между пользователями, можно уйти в минус, но нужно следить чтобы деньги не потерялись (сумма на всех счетах является инвариантом). Что нужно учесть, чтобы сделать из него многопоточный. Это показывает, понимает ли кандидат проблемы синхронизации памяти потоков и организации блокировок. Стандартное решение для исключения взаимных блокировок - последовательный захват мониторов, если не ответите сразу то можете спровоцировать дополнительные вопросы.

У middle разработчиков обычно указан опыт работы с Kafka (система доставки сообщений на базе лога). Я предлагаю обсудить систему зачисления денежных средств на счет пользователя, поручения на зачисление приходят по кафке. Кто знаком с Задачей двух генералов понимает, что если кафка гарантирует доставку сообщений за счет многократных попыток, то она не сможет гарантировать единственность доставки. Прошу кандидата указать возможность идемпотентной обработки поручений.

Кандидатов junior и middle уровней я также прошу решить задачку в онлайн редакторе. Не обязательно чтобы решение компилировалось. Это позволяет понять, умеет ли кандидат на практике применять структуры данных. Пример задачи: определить, являются ли две строки перестановкой символов (a..z) друг друга. Перестановками являются "abba", "baba", не являются "nppn" и "npp". Ожидается, что кандидат сможет формализовать задачу (строки являются перестановками, если в обоих строках совпадает количество каждого из символов), и предложит эффективное решение. Можно просто сослаться на алгоритм Сортировки подсчетом.

Общий совет - проходить собеседования как можно чаще, даже когда я не ищу работу, мое резюме "приоткрыто". Сейчас я не собеседуюсь часто, так как не расчитываю радикально улучшить мои условия, но для специалистов среднего уровня советую делать это на постоянной основе.

Лига программистов

2.1K постов11.9K подписчиков

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий
А как сейчас вообще с джунами по Java? Они нужны или все затаились и ждут лучших времён?
раскрыть ветку (10)
2
Автор поста оценил этот комментарий

Не могу сказать точно, субъективно - с начала года конкуренция среди джунов выросла

0
Автор поста оценил этот комментарий
Да все компании закрыли все стажировки и прием. Найти работу джуном почти анрил, ну в Москве если только.
раскрыть ветку (8)
0
Автор поста оценил этот комментарий

Разве не все на удаленке?

раскрыть ветку (4)
3
Автор поста оценил этот комментарий
Джуна на удаленку? Ну такое себе решение, его ж нужно натаскивать, обучать, следить за его работой, чтоб не говнокодил.
раскрыть ветку (3)
1
Автор поста оценил этот комментарий

А натаскивают по зуму те, кто сидят на удаленке? :)

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Не обязательно, многие в офисах. Просто те же мидлы и сеньоры могут работать удаленно и самостоятельно, время на задачи прогнозируемо, а у джунов нет, могут сидеть тупить и стесняться спросить, а раз не получается, то почему бы домашними делами не позаниматься? Поэтому офис для них это нормально.
0
Автор поста оценил этот комментарий

а в чем проблема на удалёнке это всё делать?

0
Автор поста оценил этот комментарий

Компании закрылись (ушли из РФ), а не стажировки) Тот же андерсен набирал и набирает стажировки стабильно не только в Москве.

раскрыть ветку (2)
0
Автор поста оценил этот комментарий
Нет, дело не в компаниях, которые ушли. Многие крупные компании урезали бюджеты (некоторые в ноль) на прием и обучение стажеров/джунов. Тот же сбер, Т1, ВТБ.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Вы так категоричны) Если компании нет, то и стажировки от нее не будет, очевидно. Иностранных галер раньше было - тьма, сейчас сильно меньше, а те, что остались - сильно поредели, от того и бюджеты схлопнулись.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку