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

Вступление

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

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

На пути к своей первой работе в качестве инженера-программиста я столкнулся со многими из этих проблем - от решения вопросов типа структуры данных и алгоритма до часовых собеседований по парному программированию и даже недельного проекта на дом. Многие из них мне показались чрезвычайно трудными, некоторые были разработаны очень плохо и проверяли вас на предметах, не имеющих отношения к должности, а один даже прислал мне неработающий тест (я не буду называть имен, но это ГЛАВНАЯ техническая компания и никогда даже не извинился за свою ошибку, потратив несколько часов моего времени 👎🏻).

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

Выберите подходящий формат

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

Например, вы можете нанять на должность разработчика Frontend. Допустим, ваша компания использует интерфейс React. Очевидно, что эта задача по кодированию должна включать своего рода тестирование способности ваших кандидатов писать JavaScript и создавать приложение на основе React. Но при его проектировании необходимо учитывать некоторые моменты, например:

Желаемый уровень навыков

Вы нанимаете стажера или вам нужен старший инженер?

Чем отличаются эти ожидаемые наборы навыков?

Должны ли эти 2 разных типа кандидатов проходить один и тот же тест или вам следует создавать отдельные задачи для каждого уровня навыков? (Подсказка: вы обязательно должны, если можете)

Дополнительные навыки для тестирования

Итак, вы нанимаете Frontend-разработчика, но важно ли, чтобы ваш кандидат также имел опыт работы с серверной частью, такой как Node.js или Google Firebase?

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

Однако, если ваша роль «Frontend Engineer» действительно является Full Stack Engineer с акцентом на фронтенд, тогда, возможно, важно оценить их знакомство с какой-либо внутренней структурой.

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

Избавьтесь от занятой работы

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

Так почему же для вашей задачи с кодом все должно быть иначе?

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

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

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

Сделать это весело

Задачи кодирования невероятно напряжены для кандидатов и невероятно скучны для человека, проводящего оценку к тому времени, когда они доберутся до 50-го кандидата и увидят то же приложение.

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

Заключение

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

Больше контента на plainenglish.io