О программировании заданий как инструменте оценки рекрутинга

Когда вы проходите собеседование на должность [веб] разработчика, первым шагом обычно является презентация компании с «неформальным» собеседованием, где вы представляете себя как личность, а не просто резюме на листе бумаги. .

Если вы не совсем социально некомпетентны, вас, скорее всего, ждет контрольное задание от нанимающей компании, которое поможет оценить ваши навыки программирования.

Что вы пытаетесь измерить?

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

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

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

Мы не все одинаковы

Быть программистом не обязательно означает, что вам нравится проводить свободное время, решая головоломки/головоломки. Я, например, нет. И я очень хорошо справляюсь с традиционными IQ-тестами, но очень плохо с цифрами. К счастью, моя повседневная работа в качестве фронтенд-разработчика очень редко заставляет меня бороться с подобными математическими сценариями. Я могу заниматься функциональным программированием, не разбираясь во всех деталях его математической подоплеки.

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

Причуды и крайние случаи

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

Менее полезная версия этого (имхо) представляет вам крайний случай / причуду в рассматриваемом языке (особенно если это язык JavaScript, у которого больше причуд, чем любой здравомыслящий человек когда-либо хотел бы управлять больше, чем им абсолютно необходимо ). Причина этого в том, что эти причуды редко случаются в реальности (особенно когда у вас есть фреймворки, использующие стандартизированные способы их обработки/избегания) и обычно очень специфичны для конкретного случая, поэтому вы можете никогда не столкнуться с ними, если не будете делать очень специфические вещи там, где они есть. соответствующие. Если вы не человек, которому нравится находить и решать такие причуды, вы не получите много пользы от тестирования этого. В качестве примечания, конечно, но в качестве основной задачи эти причуды не являются хорошей мерой того, насколько квалифицирован кто-то в своей должности, как, например, фронтенд-разработчик, создающий SPA с помощью React/Redux.

Живое программирование

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

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

Ответ

Итак, какое задание может быть полезным? Ну, что-то похожее на то, что на самом деле ожидает должность от нанимаемого, конечно!

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

Что ж, ответ должен быть очевиден.

Есть с чем сравнить

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

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

Четко объясните, чего вы ожидаете

Не преуменьшайте значение задания. Либо ты это ценишь, либо нет. А если нет — зачем вообще раздавать? Так что, очевидно, вы это цените. Если вы скажете, что не делаете, это может повлиять на человека, который это сделает, особенно если вы также заявите, что это займет всего пару часов, когда на самом деле вы ожидаете качества продукции, и нет никакого способа, которым можно было бы достичь за пару часов.

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

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

Согласны или не согласны?

Пожалуйста, дайте мне знать в комментариях ниже!