Почему собеседования по кодированию утомительны и несправедливы

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

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

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

Почему собеседования по кодированию являются стандартными

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

И эти люди правы - эти интервью не представляют собой настоящую работу. Разработчикам никогда не приходится писать подробный код на доске в повседневной работе. Кроме того, большинство тем, затронутых на собеседованиях по кодированию, никогда не выходит за рамки собеседований. Как часто, например, фронтенд-разработчик, специализирующийся на React, должен будет проходить B-Tree определенным алгоритмическим способом? Никогда, если только они не делают что-то глубоко неправильное.

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

Еще более обидно? Собеседование по кодированию часто бывает совершенно несправедливым. Даже создатель Brew - с десятками миллионов установок - был приглашен на собеседование в Google, а затем отклонен, потому что он не мог решить проблему B-Tree.

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

Так зачем они даны?

Несмотря на все свои недостатки, собеседования по кодированию доказывают три вещи:

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

Как различаются собеседования по программированию в разных компаниях

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

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

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

Приготовление рацион - это все! Но как?

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

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

Если вы хотите работать в ведущей технологической компании, такой как Google или Facebook, мы рекомендуем вам попрактиковаться в:

  • Опытный инженер: четыре-шесть недель по два часа в день.
  • Новый инженер: шесть-восемь недель по три часа в день.

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

  • Опытный инженер: две-четыре недели, два часа в день.
  • Выпускной учебный курс: четыре-шесть недель по два-три часа в день.

Да, это много времени, и вы можете подумать: «Неужели мне нужно так много готовиться?»

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

Несколько общих тем

  • Деревья
  • Хеш-таблицы
  • ООП, системы
  • Большой O
  • Рекурсия
  • Стеки / очереди
  • Массивы
  • Связанные списки
  • Алгоритмы: BFS, DFS, двоичный поиск, сортировка слиянием, быстрая сортировка
  • Битовые манипуляции (немногие интервьюеры дают их, но все равно покрывают их)

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

Методы подготовки

Некоторые системы онлайн-обучения просто фантастичны. В Интернете есть как платные, так и бесплатные системы обучения.

Некоторые из этих сайтов включают:

  • Компьютерщики для компьютерных фанатов - бесплатно - универсальный магазин для высокоуровневого обзора большинства технических собеседований, от базовых до экспертных заданий. Кроме того, здесь размещены требования к подготовке к собеседованию для многих ведущих мировых брендов.
  • Triplebyte - бесплатно - пройдите онлайн-тест по кодированию вместо того, чтобы предоставлять резюме. Компания начнет автоматически подбирать вам компании, чьи основные требования к кодированию вы соответствуете. Интервью в ускоренном режиме!
  • Pramp - бесплатно - скажите им, когда и что вы хотите практиковать, и они соединят вас с оптимальным сверстником. Они предоставляют вопросы (и ответы) на собеседовании, которые вы оба будете использовать для интервьюирования друг друга. Собеседования по кодированию - это видеосеансы в реальном времени с совместным редактором кода. Вы и ваш коллега беседуете друг с другом по 30 минут каждый. После собеседования вы оба оцениваете работу другого. Учитесь на отзывах коллег, приобретайте уверенность и овладевайте искусством проведения собеседований. Продолжайте практиковаться, пока не дойдете до интервью, как рок-звезда. Произведите впечатление на рекрутеров и получите отличные предложения о работе.
  • Interviewing.io - Бесплатно - Бесплатная анонимная практика технических собеседований с инженерами из Google, Facebook и других компаний. Получайте полезные отзывы, получайте отличные результаты на собеседовании, быстро продвигайтесь в ведущих компаниях.
  • Codefights - бесплатно - есть аркада для решения проблем и развития ваших навыков в интерактивной среде, такой как видеоигры, собеседования, соревнования по кодированию с коллегами или незнакомцами, турниры и корпоративные боты.
  • Моя школа кода - исследуйте тему и убедитесь, что вы понимаете ее целостно.
  • Getboost.io - Решите ~ три простых практических задачи и две сложные практические задачи и просмотрите решения, пока не поймете их полностью.

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

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

Как узнать, когда вы будете готовы?

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

Тем не менее, когда ты прыгаешь?

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

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

Удачной охоты и удачи!

Другие источники