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

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

Tl;Dr;

  • Точное и надежное описание работы
  • Обзор работодателя (о вас)
  • Обзор кандидатов (о них)
  • Технический стек соискателя
  • Повседневная жизнь соискателя — отношения с командой, обязанности на церемониях
  • Обзор вашего стека технологий
  • Технический опрос/тест
  • Вопросы кандидата

Создайте индивидуальное описание вакансии

Первый шаг — понять, что вы ищете. Знание того, что ваши разработчики немного переработали и были бы признательны за дополнительную пару рук, не совсем подходит. Начните со структурированного описания работы, и вы ответите на большинство вопросов, которые возникнут в связи с этой ролью, и в конечном итоге вы получите нужные резюме на свой почтовый ящик.

Хороший способ структурировать описание работы:

  1. О компании
  2. О роли и ее уровне
  3. Гибкие навыки соискателя
  4. Технические навыки соискателя

Краткое описание компании и роли будет очень полезно для кандидата. Это единственный способ, которым они смогут оценить, подходят ли им компания и должность, и в значительной степени определит, отправят ли они резюме. Как только они узнают о роли, они просто оценят свои навыки по сравнению с требуемыми.

Когда дело доходит до перечисления технических навыков, это должно быть просто. Взгляните на свой технический стек, а также на то, какое место в организации займет человек, и список должен написаться сам собой.

Точно так же не должно быть сложно определить, какого уровня вы ожидаете нанять. Подумайте о проблемах, с которыми сталкивается команда, и о том, в чем она может потерпеть неудачу, и перечислите навыки, которые заполнили бы эти пробелы. Вам нужен лидер? Вам нужен кто-то, кто может сделать что-то, не держась за руки? Можете ли вы поддержать кого-то моложе? Эти вопросы должны помочь вам определить уровень, на который вы набираете сотрудников.

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

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

Процесс собеседования

Обычно процесс, который я видел наиболее успешно, выглядит следующим образом:

  1. Телефонное интервью
  2. Технический тест
  3. Лицом к лицу

Части 2 и 3 часто проходят в один и тот же день, с предварительным тестом, чтобы не утомлять вашего кандидата, прежде чем вы приступите к его допросу. Кроме того, таким образом вы сможете проверить выбор, сделанный кандидатом во время технического теста, чтобы лучше установить его возможности.

Собеседование по телефону

Основная цель здесь — сократить количество кандидатов, которых вы берете на собеседование, убедившись, что человек и роль хорошо подходят друг другу. Интервью по телефону поможет вам понять, есть ли у них потенциал, чтобы соответствовать культуре, оценивая их отношение и тип личности. Чем больше вы сможете узнать друг о друге, тем лучше.

Общая структура будет:

  1. Объясните процесс собеседования
  2. Предоставьте некоторую информацию о компании
  3. Предоставьте некоторую информацию о роли
  4. Спросите об опыте соискателя
  5. Спросите о навыках соискателя
  6. Спросите об амбициях соискателя
  7. Ответьте на любые вопросы, которые могут у них возникнуть

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

Важен обзор компании. Это не только шанс продать компанию потенциальным сотрудникам, но и возможность объяснить стратегическое направление компании и ее операционную программу. Это дает соискателю возможность решить, хочет ли он участвовать в этом путешествии и чего ожидать, когда он появится, и в то же время выделить навыки, которые им было бы целесообразно продвигать во время собеседования.

То же самое относится и к объяснению роли, но на этом этапе вы можете немного углубиться в технические аспекты, объясняя стек, структуру команды, а также рабочие процессы и принципы. Это должно позволить кандидату указать, нужна ли ему поддержка, чтобы ускориться, а также отказаться, если он чувствует, что не справится с задачей — вы не хотите, чтобы разработчик Java работал над вашим техническим стеком JavaScript. Например. Сколько раз неопытные рекрутеры присылали вам не то резюме?

Разделы о соискателе являются наиболее важными для вас как работодателя. Это первая возможность узнать об их опыте и навыках, а также о том, что они хотят от своей следующей роли и об их долгосрочных амбициях. Помните, это не односторонняя вещь. Если вы не думаете, что сможете поддержать их в достижении их амбиций, пора быть честными — никто не хочет, чтобы недовольные сотрудники портили настроение вашей команде, и было бы несправедливо вводить их в заблуждение. Если вам кажется, что вы движетесь в одном направлении с аналогичными технологиями, вы можете стать победителем.

Завершение телефонного интервью возможностью для соискателя задать любые вопросы о компании также полезно. Хорошо заполнить пробелы или решить проблемы, помогая убедиться, что роль или компания соответствуют их ожиданиям.

Технический тест

Правильно, соискателю пора заявить о своих деньгах. Технические тесты являются обычным явлением на инженерных собеседованиях. Компании должны быть уверены, что человек может решить свои проблемы, обладает способностями, на которые они претендуют, и определить, сможете ли вы поддержать техническое развитие и карьерный рост кандидата. Обучение и развитие — это большое дело для компаний и сотрудников; поэтому вы должны оценить, сколько усилий потребуется и есть ли у вас обоих время.

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

Возможные типы тестов:

  • Тест белой доски
  • Абстрактная задача на основе машин
  • Проблема реального мира на основе машин

Некоторые вещи, которые следует учитывать:

  • Ограничьте время проблемы — мы не хотим, чтобы это заняло весь день
  • Используйте свой технический стек — если вы набираете на роль JavaScript, проведите тест на основе JS. Как еще вы надеетесь определить способности?
  • Не усложняйте задачу — вы смотрите на то, как люди подходят к решению проблем, и определяете технические возможности, а не лучший в мире кодер.

Некоторые примеры проблем/задач, которые я делал в прошлом:

  • Предложите, как мы могли бы реорганизовать плохой фрагмент кода из кодовой базы компании.
  • Цикл для вывода последовательности Фибоначчи
  • Создать/взломать шифр, использующий простую замену символов
  • Напишите функцию сортировки
  • Игра «Камень-ножницы-бумага» или аналогичная игра
  • Используйте API и отображайте данные на странице в соответствии с простым дизайном.
  • Philip hue — создайте пользовательский интерфейс для изменения яркости и цвета лампочки
  • Создайте корзину для покупок с добавлением, удалением, изменением количества и цены, НДС и т. д.

Проведение личного интервью

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

Структура будет аналогична структуре интервью по телефону, опираясь на то, что вы знаете друг о друге. Часто на личном собеседовании будут присутствовать разные или дополнительные лица из вашей организации, что дает им возможность ознакомиться с кандидатом.

Общая структура может быть:

  1. Объясните процесс собеседования
  2. Предоставить информацию о компании
  3. Предоставить информацию о роли
  4. Обсудите опыт соискателя
  5. Обсудите навыки соискателя
  6. Обсудите амбиции соискателя
  7. Задавайте технические вопросы
  8. Обзор технических испытаний
  9. Ответьте на любые вопросы, которые могут возникнуть у заявителя

Возможные вопросы, которые вы могли бы задать:

  • Как вы организуете свои задачи?
  • Можете ли вы объяснить декларативное программирование императивному?
  • Как вы определяете объем своих задач?
  • Как обычно выглядит ваша рабочая неделя?
  • Какие структуры вы бы внедрили для улучшения качества кода?
  • Какую структуру вы бы использовали для улучшения способностей младшего разработчика?
  • Как бы вы разрешили конфликт в команде разработчиков — например, спор о реализации фичи?
  • Что такое TDD и BDD?
  • Что такое ООП?
  • Объясните «это»
  • Как вы обозначаете функцию генератора?
  • Объясните применение, вызов, привязку — контекст
  • Что такое подъем в JavaScript?
  • Можете ли вы объяснить разницу между модульными и e2e/автоматизированными/интеграционными тестами?
  • Что такое функциональное программирование и в чем его преимущества?
  • Не могли бы вы описать MVC
  • Назовите некоторые распространенные шаблоны проектирования
  • В чем разница между let, const и var?
  • В чем разница между == и ===?
  • В чем преимущество стрелочной функции?
  • Назовите и объясните некоторые функции es6 и почему они могут быть полезны.
  • Демонстрация инкапсуляции в функции JS
  • Использовали ли вы какие-либо методологии для организации CSS (БЭМ?)
  • Что имеет приоритет в CSS, идентификатор или класс, и можете ли вы выделить какие-либо подводные камни?
  • Как вы думаете, под какой шаблон проектирования подпадает редукс?
  • Как вы можете использовать хуки для управления состоянием в реакции?
  • Использовали ли вы API-интерфейс React Hooks и не могли бы вы привести примеры использования известных вам хуков?
  • Где вы могли бы разместить бизнес-логику/побочные эффекты в приложении с реакцией?
  • Каков результат этой функции? (Поиграйте с областью действия, инкапсуляцией и тайм-аутами, чтобы создать фрагмент кода, который выводит одно из нескольких значений)
  • Определите запах кода (приведите ряд примеров и попросите кандидата объяснить, какой запах кода они могут видеть)
  • ['Токио', 'Лондон', 'Рим', 'Донлон', 'Киото', 'Париж'] в [[ 'Токио', 'Киото'], ['Лондон', 'Донлон'], ['Рим ' ], [ 'Париж' ]]

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

Наконец, настало время вопросов соискателей. Есть ли у соискателя какие-либо вопросы о компании или ее рабочих процессах? Для них это хорошая возможность ближе познакомиться с бизнесом и лучше понять, как вы работаете, или устранить любые проблемы. Кроме того, это отличный шанс продать компанию и роль соискателю.

Подведение итогов

Правильный процесс собеседования чрезвычайно важен для создания эффективной команды. Как вы можете рассчитывать на получение нужных людей, если вы не подготовились к набору персонала или не понимаете, что вам нужно? Помните, что эти люди бесплатно потратили свое время на то, чтобы прийти на собеседование. Уважайте их время, сделайте себе одолжение и приложите усилия.