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

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

Все, что может, могло или пойдет не так, сразу пойдет не так.

Недавно я взял техническое интервью для Triplebyte. Triplebyte - это кадровая фирма, которая работает с такими известными компаниями, как Apple, Twitter, Quora и Instacart, и это лишь некоторые из них. Процесс собеседований у них напряженный, но при средней стартовой зарплате более 100 000 долларов он полностью оправдан.

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

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

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

Это техническое интервью сбило меня с толку.

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

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

Я его разбомбил.

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

В конце интервью он спросил меня, есть ли у меня вопросы.

Я: Все технические собеседования так сложно?

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

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

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

Когда я получил письмо, я был потрясен.

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

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

Но был один совет, который запомнился.

Самый важный совет, который я могу вам дать, - это тратить больше половины своего времени на изучение базовых вещей, не зависящих от платформы. Знание структур данных, параллелизма или протокола http будет оставаться актуальным в течение более 20 лет. Знание React может оказаться бесполезным через 3 года (или через 3 месяца, если они полностью пересмотрят некоторые из своих стандартов). Глубокие знания Firebase также могут быть недолговечными и не переносятся на другие платформы. Знание компромиссов между производительностью реляционной базы данных / нормализацией, масштабированием веб-сервера, масштабированием реляционной базы данных и кэшированием хорошо послужит вам практически в каждом проекте.

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

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

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

Но помните одну вещь.

Провал собеседования - это не конец света.

Если вам понравилась эта статья, поделитесь ею со своими друзьями и коллегами. Если у вас есть другие вопросы, на которые я, возможно, не ответил, напишите мне в твиттере на @petermilesdev или напишите мне по электронной почте и [email protected].