Давайте поговорим об интервью на доске и возможных альтернативах

davajte pogovorim ob intervyu na doske i vozmozhnyh alternativah?v=1656605061

автор Сун-Ли Битти

0*PbKAbM5J891Qldc2
Авторство: linkedin.com

Ни для кого не новость, что многие инженеры ненавидят вопросы для собеседования на доске.

Независимо от того, есть ли это в Twitter, Medium или LinkedIn легко найти кого-то, кто выделяется. Фраза «процесс найма нарушена» используется настолько часто, что становится клише.

К сожалению, большая часть этого разочарования остается глухой.

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

Есть ли лучшие альтернативы?

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

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

Это затруднительное положение привело меня к двум вопросам:

  1. Являются ли собеседования на доске лучшим выбором?
  2. Если нет, то какие лучше альтернативы?

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

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

Или собеседования на доске самые плохие?

0*dGSW0KYP01_ER2zQ
Авторство: twitter.com

Первым шагом в этом процессе является тщательный осмотр доски.

Плюсы:

  1. Быстро и с низкими усилиями
  2. Не зависит от языка или домена
  3. Вы знаете (в общем), чего ожидать
  4. Поддержка сообщества (Glassdoor, LeetCode, Pramp и т.д.)

минусы:

  1. Удача – большой фактор (алгоритм лотереи)
  2. Не обязательно проверяет инженерные способности
  3. Предпочитает молодых инженеров и недавних выпускников

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

SpaceX, MacOS/Windows и React от Facebook были созданы инженерами с такими знаниями. Ожидается, что получить собеседование с доской в ​​одной из этих компаний.

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

  • Массивы/строки
  • Бинарные деревья
  • Связанные списки
  • DFS/BFS
  • Возврат назад
  • Динамическое программирование

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

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

Не каждый может долго учиться, чтобы овладеть алгоритмами.

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

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

Давайте рассмотрим некоторые из альтернатив.

Проблемы с кодировкой с помощью компьютера

0*zKA2iQE2rFMm8zkk
Кредит: lolboom.net

Плюсы:

  1. Используйте компьютер и знакомую среду разработчиков
  2. Это можно сделать удаленно с помощью общего доступа к экрану.
  3. Все остальные преимущества интервью на доске

минусы:

  1. Более строг относительно синтаксиса и возможностей выполнения.
  2. Среда программирования и плагины могут сыграть немаловажную роль
  3. Те же недостатки интервью на доске

Проблемы кодирования на ноутбуке являются менее строгим двоюродным братом собеседования с доской.

Кандидаты имеют преимущество в использовании собственных компьютеров. Их можно производить удаленно или в среде парного программирования.

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

Недостатком этого является то, что гораздо больше внимания уделяется функциональности.

Во время моего поиска работы мне дважды задавали проблему смены монеты. Один как задача на доске, а другой – в редакторе.

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

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

Не столько с проблемами кода.

Кто-то может утверждать, что упор на функциональность лучше, потому что нам платят за написание рабочего кода. Это правда, но нам не платят за 30–45-минутный спринт.

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

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

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

Примите оценки домой

0*yJV79cjWU46QjpSG

Плюсы:

  1. Можно работать над этим в пижаме
  2. Обычно на работу над заданием дается больше недели
  3. Используйте собственный редактор и среду разработчиков
  4. Может быть новым дополнением к портфолио
  5. Обычно веселее, чем доска

минусы:

  1. Уровень сложности может сильно варьироваться
  2. Гораздо больше усилий и времени, чем задача кодировки
  3. Может зависеть от домена
  4. Может привести к ползучести функции из-за конкуренции.
  5. Не означает ежедневную работу

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

Однако у домашних тестов есть некоторые серьезные недостатки.

Во-первых, ими легко манипулировать.

Многие компании размещают свои тесты на GitHub. Введите «Challenge» или «Test» в поиск на GitHub, и вы найдете многое. Это даст опытному кандидату достаточное время для предварительного исследования проблемы.

Это действительно не жалоба. Просто больше профессиональная подсказка.

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

Вы даже можете проверить это самостоятельно. Введите « Challenge» в поиск на GitHub и посмотрите, что вы найдете.

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

1*7fnMCmZZ2MmRB6L0Ol16uA

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

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

Во время последнего поиска работы мне дали четыре задания забрать домой. Три компании сказали, что им нужно всего 3–5 часов, чтобы окончить.

Все они заняли у меня несколько дней.

Основной причиной этого было то, что проблемы часто были специфичны для определенной области. Им понадобилось несколько часов исследования документов API и новых технологий.

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

1*2XReuwmibe1xgQ2NjJr9WA

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

Если кандидату удалось пройти собеседование одновременно с несколькими компаниями, он может стать полноценной работой, просто работая над этими проблемами.

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

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

На основе проекта/по договору найма

Плюсы:

  1. Получите возможность работать с кандидатом/командой
  2. Получите зарплату за работу
  3. Приступайте к работе над реальными проектами
  4. Оцениваются на основе того, насколько хорошо вы работаете с командой и кодом доставки

минусы:

  1. Длинные обязательства
  2. Работа без гарантии трудоустройства
  3. Нет пользы для здоровья как подрядчик
  4. Может поставить кандидата в плохую переговорную позицию
  5. Зависим от языка

Интервью на основе проекта встречаются редко. Но многие компании поддерживают их, например Basecamp и Automatic. Я могу понять почему.

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

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

Беспроигрышный. Или так кажется.

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

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

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

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

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

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

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

Ошибка безвозвратной стоимости в лучшем проявлении.

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

Так какой же самый лучший?

Как вы могли догадаться: это зависит ™.

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

Правда, так это то, что SaaS-компания должна просить кандидатов написать алгоритмы динамического программирования только если это помогает им определить навыки инженера. Не просто потому, что это делает Google.

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

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

Пожалуйста, сообщите мне, какой способ собеседования вы предпочитаете в комментариях ниже!

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

Не будь тем человеком.

Прекратите жаловаться.

Найдите решение.

Добавить комментарий

Ваш адрес email не будет опубликован.