Специалисты по найму персонала из Palantir – ведущего разработчика программного обеспечения в США, провели тысячи встреч с соискателями. Главной проблемой многочисленных собеседований HR-специалисты компании считают неизбежным риск отсеивания подходящих кандидатов, которые по тем или иным причинам не смогли справиться с тестовым заданием.
В условиях ограниченного времени на проверку способностей соискателя, можно легко пропустить «идеального сотрудника». Для того, чтобы снизить вероятность такого исхода, и помочь ИТ-специалистам максимально раскрыть свой потенциал в процессе решения тестовых задач, интервьюеры Palantir разработали «руководство соискателя». Мы представляем вашему вниманию адаптированный перевод этого документа.
На собеседованиях в компании айтишники сталкиваются с множством заданий, призванных выявить их умение писать код, проектировать, работать с системами. Интервью с разнопрофильными ИТ-специалистами объединяет одно: всех соискателей просят разработать алгоритм для решения конкретной практической задачи. Обычно подобные вопросы строятся по формуле: имея ряд условий X, придите к результату Y.
Понять задание правильно куда важнее, чем предложить «быстрое» решение
Специалисты Palantir советуют кандидатам убедиться, что задание сформулировано понятно. Обычно соискатели не хотят «терять очки» в глазах потенциального работодателя, поэтому не задают наводящих вопросов. Кроме того, они считают недопустимым тянуть время, размышляя над выполнением задачи. Но никто не ожидает, что кандидат, находящийся в стрессовой ситуации, даст верный ответ мгновенно, или даже спустя несколько минут.
После того, как задание было осмыслено, можно приступить к решению. Специалисты рекомендуют присмотреться к первому, которое приходит на ум, даже если оно выглядит слишком простым, «корявым» или неэффективным. От решения, кажущегося наиболее очевидным, можно отталкиваться в дальнейшем. Если соискатель не найдет иного, он все равно будет чувствовать себя уверено — ему есть, что продемонстрировать интервьюеру.
Но нередки и сложности — соискатель никак не может найти нужного решения задачи, а HR-специалист просит его ускориться. Вот несколько действий, которые можно предпринять, «зайдя в тупик» в разработке алгоритма решения:
Доска для записей не должна оставаться чистой
Это может показаться странным, но, по мнению представителей Palantir, чистая белая доска для записей перед кандидатом часто усугубляет состояние «ступора». Конечно, для некоторых людей визуализация не важна, но записи на доске могут помочь систематизировать мысли. Лучше зафиксировать хотя бы пару идей, чем оставить доску чистой.
Мысли полезно проговаривать вслух
Не стоит волноваться о том, что это может выглядеть глупо в глазах интервьюера. Можно заранее предупредить собеседника, сказав ему: «Я собираюсь размышлять вслух. Пожалуйста, не обращайте внимания на идеи, которые я буду высказывать в процессе».
Проговаривание мыслей — один из способов борьбы с неуверенностью. Кроме того, лояльный HR-специалист может посоветовать кандидату придерживаться той или иной высказанной вслух идеи. Но не стоит намерено обращать свои рассуждения к интервьюеру, чтобы получить подсказку. Если помощь в выполнении задания действительно нужна, стоит открыто попросить о ней.
Не стоит забывать об алгоритмах
Иногда полезно еще раз внимательно обдумать все условия задачи, чтобы прийти к неожиданному решению. Такой подход специалисты называют взглядом «снизу вверх». Но не стоит забывать и про метод анализа «сверху вниз», который предполагает подбор известных алгоритмов решения к данным условиям. Вот список алгоритмических методов, которые позволяют решить больше половины тестовых задач на собеседованиях в Palantir:
- Сортировка;
- «Разделяй и властвуй»;
- Динамическое программирование (рекурсия и мемоизация);
- «Жадный» алгоритм;
- Рекурсия.
Знание особенностей структурирования данных
Оптимальное решение некоторых тестовых заданий на собеседованиях в Palantir предполагает использование фильтра Блума или суффиксного дерева, однако со многими задачами можно справиться, вспомнив о более простых типах структурирования данных, например:
- Массивах;
- Списках, стеках и очередях;
- Hashset / Hashmap / Hashtable / Dictionary;
- Бинарном дереве;
- Куче;
- Графиках.
Те, кто знает эти типы структурирования данных «снаружи и изнутри», могут найти решение задачи, просто размышляя об особенностях каждого из них.
Поиск аналогий
Интервьюеры Palantir рекомендуют кандидатам вспоминать реальные задачи, с которыми они сталкивались на предыдущем месте работы или в процессе обучения. Не исключено, что давно позабытые решения удастся адаптировать к условиям тестового задания. Его форма не должна сбивать соискателя с толку, ведь за ней может срываться вполне привычный кейс.
Поэтапное решение
Если задача кажется слишком сложной, можно попробовать разбить ее на несколько мелких «подзадач», и решать их поэтапно.
Своевременный отказ от неверного решения
Сложно отказаться от решения, на поиск которого ушло несколько драгоценных минут собеседования, но если выбранный подход не работает, лучше отказаться от него и попытаться найти другие варианты.
Не стоит держаться за бесперспективное решение, если в наличии есть еще немного времени на раздумья.
Испробовать несколько различных подходов к решению полезно и потому, что чаще всего тестовые задания, предлагаемые соискателю имеют несколько эффективных решений. По мнению технических специалистов и интервьюеров Palantir использование такой подход помогает определить, как соискатель будет справляться с работой — ведь у проблем, возникающих в реальной жизни зачастую как раз и бывает несколько возможных решений.
Предыдущий материал цикла и другие интересные статьи в блоге GMS:
- Простые правила успешного собеседования по телефону: Советы соискателям
- Какие вопросы на собеседовании больше всего нравятся разработчикам
- Руководство для разработчиков: 7 советов по прохождению собеседования
- Интервью с разработчиками: на что обращают внимание в Microsoft, Google, Amazon и других ИТ-компаниях