Техническое собеседование не должно быть отстойным!

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

О каких видах технических собеседований я говорю? Список нарушений бесконечен: тесты на доске в псевдокоде, многочасовые (или многодневные!) тесты на дом, вопросы по алгоритмам сортировки, FizzBuzz, LeetCode, просьба к незнакомцу написать рабочий код за 20 минут, пока вы смотрите на него, вопросы по кодингу с единственным правильным ответом, головоломки, ребусы, мозговые тизеры… Ума не приложу!

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

Итак, друзья, какого черта мы делаем? И можем ли мы, пожалуйста, взять себя в руки? Читайте дальше.

Сначала анекдот

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

В процессе работы над решением с использованием методов массивов ES6, таких как filter() и includes(), интервьюеры предложили мне отказаться от этого подхода и сделать это без ES6. Хорошо… Я сделал все возможное, чтобы согласиться, используя несколько вложенных циклов for. Затем меня спросили о вычислительных затратах обоих подходов.

Когда мы закончили, я спросил интервьюеров, возможно, в компании принято избегать ES6 в пользу гипер-оптимизированного кода. Я был потрясен, когда они сказали мне: «О, нет, вовсе нет! Все разработчики свободно используют ES6. Мы используем все, что работает и является наиболее быстрым для разработчика».

Мы потратили 45 минут на оценку вещей, которые не имели значения! Почему кандидат на должность инженерного менеджера с 20-летним опытом работы писал базовый код на JavaScript? Почему интервьюеры указывали ограничения, которые сами даже не соблюдают?

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

  • Однажды я отказался от работы в компании с миллиардным капиталом, когда они хотели назначить 17 часов собеседования!
  • Однажды я сделала домашний тест, который, как мне сказали, будет обсуждаться со мной на собеседовании, но о нем больше не вспоминали, и мне пришлось выполнять дополнительное упражнение на доске!
  • Когда я проходила собеседование на свою первую работу после университета, мне дали письменный (!) тест, который я выполняла в комнате одна. Тем не менее, я получил работу!

Красные флажки, красные флажки повсюду

Мы инстинктивно знаем, что типичный процесс технического собеседования — это минное поле проблем, потому что мы все с этим сталкивались. Любая из этих проблем в отдельности была бы достаточно токсичной, но когда они объединяются, это катастрофа.

Плохой предсказатель

Прежде всего, многие методы технического интервью просто не могут предсказать реальные результаты работы кандидата. Я имею в виду, как они могут быть?

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

Несмотря на это, мы также ошибаемся с форматом. Например, решение задач на доске — это действительно навык, но, как отмечает Куинси Ларсон, он «не имеет почти никакого отношения к современной разработке программного обеспечения».

Нервные кандидаты

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

Кори Куинн
@quinnypig
Если успешным, хорошо работающим инженерам приходится «зубрить» или иным образом углубленно готовиться к техническому собеседованию, значит, ваше техническое собеседование — отстой.
21:11 PM — 14 Jan 2022

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

Ничего общего с реальной работой

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

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

Представьте себе, если бы коллега действительно внедрил алгоритм сортировки в рабочее время! Мы бы справедливо усомнились в их здравомыслии. Им следовало бы погуглить, а затем воспользоваться библиотекой, и именно так мы бы им и посоветовали поступить. Почему типичные интервьюеры не поступают так же?

Кевин Нотон-младший.
@kevinnaughtonjr
Мой типичный день в Google:
9 утра — разворачиваю связный список
11 утра — подсчет уникальных способов подняться по лестнице с помощью dp
12 вечера — обед
15:00 — помочь животному эффективно выйти из матрицы NxM
16:00 — инвертировать двоичное дерево
17:00 — добраться до дома с помощью алгоритма Дейкстры
01:59 AM — 14 Apr 2022

Для кандидатов сам формат большинства собеседований может исказить и затушевать истинную рабочую культуру компании. Мы теряем жизненно важный механизм оценки — хотели бы мы работать с этим человеком?

Большинство компаний не являются крупными технологическими компаниями

В-четвертых, многие методы проведения собеседований не подходят для большинства компаний. Мы перенимаем многие «лучшие практики» у крупных технологических компаний — FANG, FAANG, MAMAA или как мы их сегодня называем — независимо от того, хорошая это идея или нет. То же самое касается технических собеседований.

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

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

Наша привилегия проявляется

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

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

Почему мы нанимаем, определяет то, как мы нанимаем

Мы многое позволяем или увековечиваем, сами того не осознавая! Для ясности, любой, кто когда-либо проводил собеседование, был причастен к этому — в том числе и я сам.

Многое в техническом интервью кажется правильным, как интервьюерам, так и кандидатам, даже если это поверхностно. Разработчики предпочитают объективность, четкие результаты и предметы, которые легко разделить на аккуратные маленькие ведерки. Поэтому, когда дело доходит до собеседования с разработчиками, мы просто хотим знать, могут ли они написать чертову программу или нет, верно?

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

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

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

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

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

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

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

Шер Скарлетт
@cherthedev
Вчера я спросила интервьюера, зачем они проводят собеседования по кодингу вживую.

Они ответили: «Чтобы убедиться, что вы умеете программировать».

Интересно, в какой момент симулировать программирование в течение почти 2 десятилетий?

14:01 PM — 01 Mar 2022

При приеме на работу цель состоит в том, чтобы найти ценное пополнение для вашей команды. В принципе, это все. Как справедливо отмечает Шер Скарлетт:

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

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

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

Принципы для лучшего технического собеседования

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

  1. Комфорт
  2. Отсутствие кода
  3. Реализм

Комфорт

Делайте все возможное, чтобы кандидату было комфортно. Я не могу не подчеркнуть, насколько важно определить ожидания и четко рассказать кандидату о том, что ему предстоит испытать.

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

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

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

I Am Devloper
@iamdevloper
Если компания не дала вам почувствовать себя комфортно, сказав «я не знаю» во время собеседования, почему вы думаете, что работа будет другой?
10:05 AM — 12 Jul 2022

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

No-code

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

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

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

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

Реализм

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

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

Все мы ежечасно ищем всякую ерунду в Google. Мы разговариваем с товарищами по команде, когда нас блокируют, и помогаем друг другу разблокироваться. Мы вместе проводим мозговой штурм проблем и обсуждаем возможные решения. Мы устраняем неполадки. Мы применяем критическое мышление, чтобы расставить приоритеты и оценить усилия. А иногда мы поднимаем руки вверх и говорим: «Я ни черта не понимаю».

Ник ДеХесус 🛒🎉 — неоплачиваемый технический директор @BTPipeline
@dayhaysoos
Ошибки во время технических испытаний могут стоить вам целой вакансии, но если вы совершаете такие же ошибки во время работы, вас не уволят. Ваши коллеги посмеются над этим и скажут вам, чтобы вы хорошо провели выходные.
22:12 PM — 05 Apr 2021

Итак, я веду беседы с кандидатами на таких условиях — и оцениваю их способности к программированию бесплатно! В ходе беседы кандидат обязательно даст мне представление о своих навыках кодирования, а я избегаю пялиться в IDE и выступать в роли переплачиваемого человека-линтера.

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

Набор инструментов интервьюера

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

  1. Представьте кандидату ошибку, которую нужно устранить вместе. Это может быть инсценировка для кандидата или реальная ошибка, которую еще никто в вашей команде не исправил.
  2. Мозговой штурм реализации новой функции. Это можно сделать с помощью макетов дизайна или с помощью существующей функции вашего сайта или приложения. Кандидат играет роль разработчика в команде, а интервьюеры играют роль менеджеров по продукту и т.п. Попросите кандидата обрисовать необходимую работу, компромиссы при выборе определенных решений, сложности и т.д.
  3. Попросите кандидата открыть Dev Tools для вашего сайта или приложения и пошарить там. Позвольте им идти туда, куда ведет их любопытство. Хитрость этого занятия — и то, что делает его интересным для всех участников — заключается в том, что оно по своей сути является бессрочным. Обратите внимание на то, что привлекает кандидата, как он использует инструменты, как задает и даже отвечает на свои вопросы, и так далее — иногда он даже обнаруживает ошибку! Хорошие кандидаты могут по-настоящему блеснуть здесь, если они придут подготовленными с заметками, потому что они уже заглянули в них до собеседования.
  4. Дайте кандидату имитацию запроса на исправление и попросите его провести анализ кода. Они могут поделиться своим экраном и пройтись по нему построчно и либо говорить, либо печатать свои комментарии. Интервьюер может сыграть роль «автора» запроса.

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

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

Наконец, в конце любого собеседования я обязательно спрашиваю: «Какие у вас есть замечания по поводу нашего процесса собеседования?».

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

Единственный выигрышный ход — не играть

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

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

Хорошая компания — это та, которая спрашивает, как вы, как менеджер по подбору персонала, хотите с этим справиться, и поддерживает ваши усилия.

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

Шер Скарлетт
@cherthedev
Для тех, кто спрашивает, как я отказалась, вот пример!
19:12 PM — 19 Nov 2021

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

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

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

Оцените статью
devanswers.ru
Добавить комментарий