Начнем с конца.

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

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

Есть рабочие места, или, вернее, люди, которые не осознали, что GPT (когда я говорю «GPT», я имею в виду все новые Copilots) — это новый Google. Недавно Microsoft опубликовала некоторые данные, в которых говорится, что программирование с GPT на 50% быстрее. С какой стати мне нужно тратить 20 минут на какую-то функцию, я набираю букву за буквой, строку за строкой, когда я могу сказать GPT: «Получи X, выведи Y и сделай так». Я просматриваю его вывод, вижу, что это именно то, о чем я думал, может быть, укоротить или удлинить строку, подкорректировать ее, и БАМ! Я задолбался.

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

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

Таким образом, Codility и другим сайтам кодирования не только удалось создать вопросы, которые могут сбить с толку как людей, так и машины, но они также изо всех сил стараются не дать вам даже скопировать вопрос (привет?! Скриншот и выделение текста в предварительном просмотре). Избавь нас от своей чепухи, ладно? Примите генераторы кода, смиритесь с тем, что написание самого кода — не главное. Это понимание и знание того, как создавать и работать с этим. Точно так же, как знание того, что вы программист в начале спринта, вы начинаете исследовать и читать о каком-то новом компоненте, который хотите реализовать, глядя на примеры и вопросы; а в конце пишешь что переварил — это не читерство.

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

Итак, как выглядит этот экзамен?

В моих глазах примером такого экзамена был бы файл проекта, содержащий письмо: «Эй, Гили, один из наших джуниоров написал этот проект. Как видите, он сделал очень мало и навел бардак в коде, интерфейсе, архитектуре… Все, что он сделал, невозможно исправить даже за целый день, и уж тем более невозможно реализовать все необходимые новые функции.

Ваша задача: Потратьте 2–3 часа на проект, составьте список того, что нужно сделать, где и когда, расставьте приоритеты, запустите его и попробуйте добавить одну функцию.

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

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

Этот экзамен не проверяет, использовали ли вы GPT. Какая разница! Вы просмотрели код, он выглядит и реагирует так, как вы думаете. Если вы одобряете, это на самом деле ваш код.

Кроме того, я добавлю это; в настоящее время GPT является чисто текстовым и не имеет интеграции с IDE (Google только что объявил, что они интегрируют второй пилот AI в Android studio), используемую большинством разработчиков. И, конечно же, даже когда он появится, ему понадобится время, чтобы понять, как PNG-изображение от дизайнера должно выглядеть на устройстве по сравнению с тем, что на самом деле имел в виду дизайнер. И даже если завтра он сможет обработать миллион строк спагетти-кода и провести масштабный волшебный рефакторинг, я считаю, что потребуется время, чтобы все заработало гладко. Серьезно, каждый раз, когда IDE вынуждает меня преобразовать проект в соответствии с последними стандартами, я сожалею об этом. Итак, GPT потребуется время, чтобы освоить все роли программиста, а до тех пор такой экзамен — правильный инструмент для знакомства с вашими разработчиками.