Я составил список из 11 общих вопросов для проверки технических возможностей опытного инженера-программиста. Затем я нанял подопытных кроликов с разным уровнем навыков и сотрудничал с ними с ChatGPT.

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

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

Подготовка к собеседованию в ChatGPT

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

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

Вот что произошло.

⚰️ Убит

1. Викторина по коду

Налейте один для автоматических викторин по коду, потому что наш маркетолог (единственное техническое знание которого — это MySpace HTML с 2008 года) смог пройти алгоритмы и проблемы с базой данных с помощью ChatGPT. Он не только предоставил пример кода, но и объяснил, как подходить к каждой проблеме.

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

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

Примечание. Наши подопытные кролики не смогли найти ответ на проблему жесткого параллелизма LeetCode. ChatGPT здесь не удался из-за отсутствия контекста. (+1 за LeetCode.)

2. Углубленный технический вопрос

Неудивительно, что ChatGPT также ответил на гипотетический технический вопрос. Я подозревал, что это произойдет из-за его способности анализировать огромные объемы веб-данных. Вот что мы спросили:

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

3. Общий технический вопрос

Наконец, Р.И.П. на одноразовый технический вопрос. ChatGPT попытался ответить на 20 вопросов на практическом экзамене AWS и теперь является сертифицированным облачным практиком AWS.

Я признаю это. Это поразительно.

🧟‍♀️ Прихрамывает

4. Живое интервью по кодированию

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

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

Вот некоторые вещи, которые ChatGPT уже умеет:

1. Генерируйте альтернативные решения

2. Обсудите компромиссы между решениями

3. Обсудите производительность Big O (например, O (n²)) конкретного решения.

4. Объясните код на английском языке

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

5. Дизайн системы

Затем наши морские свинки попросили ChatGPT разработать архитектуру для Twitter.com. Это дало им приличную, голую схему веб-приложения и, казалось, понимало основы веб-архитектуры, включая названия некоторых продуктов/инструментов. Однако ChatGPT предоставил мало подробностей о конкретной цели подсказки и, похоже, не понял нюансов развертывания конкретной службы.

🏆 выживает

6. Домашние проекты

Ура! В моем эксперименте выжили предложения на дом, которые просят кандидатов работать над существующим проектом.

Пример 1:

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

Пример 2:

Они оба прошли часть отладки архитектуры в Woven’s Senior Full Stack Engineer Take Home, используя ChatGPT. Однако наш маркетолог провалил последние два сценария, и нашему младшему инженеру пришлось полагаться на значительные технические знания, чтобы добиться прогресса.

👉 TLDR; ChatGPT убивает «самостоятельные» проблемы, которые имеют небольшие, целенаправленные подсказки, где он может быстро найти жизнеспособный ответ. Выживают «домашки» с более запутанными и сложными проблемами.

7. Обзор кода

Мы использовали запрос на извлечение Fullstack Node + React как часть Сценария проверки кода. Этот сценарий требует, чтобы старшие инженеры рассмотрели PR в GitHub и предоставили вдумчивый, преднамеренный отзыв о коде. Ни один из наших испытуемых не смог понять, как вводить данные в ChatGPT таким образом, чтобы получить полезный результат.

Код-ревью — отличный способ оценить эффективность инженера, и он защищен ChatGPT.

Итог: влияние на ваш найм в 2023 году

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

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

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

ChatGPT может полностью сорвать технические собеседования… и это хорошо.

[1]: Технически, то, что я много раз звонил в Zoom за последние 4 года, считается обучением нейронной сети. Этот NN просто оказался мокрым и живет между моими ушами. https://xkcd.com/2173/