Меня беспокоит то, как учатся новые разработчики, и мне нужно об этом поговорить.

Мы находимся в странном переломном моменте в разработке программного обеспечения. У каждого начинающего разработчика, с которым я разговариваю, круглосуточно работает Copilot, Claude или GPT. Они выпускают код быстрее, чем когда-либо. Но когда я углубляюсь в их понимание того, что они выпускают? Вот где начинаются проблемы.

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

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

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

Когда нам приходилось действительно думать

Недавно я понял, что целое поколение новых программистов даже не знает, что такое StackOverflow.

Когда "Claude" был не чат-ботом, а человеком, который изобрел область информационной энтропии, существовал другой способ отладки проблем программирования.

Сначала поиск в Google. Затем надежда, что какая-то отчаявшаяся душа задала похожий вопрос. Если это так, вы найдете подробный, продуманный (и часто снисходительный) ответ от мудрого старца на этом сайте под названием «Stack Overflow».

Вот один из вопросов, которые я задал 12 лет назад. Посмотрите на лучший ответ Натана Уолла (который заработал колоссальные 10 000+ баллов и, по-видимому, является техническим директором с 2015 года):

image.png

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

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

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

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

image.png

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

Это удобно и быстро.

Но есть одна причина, по которой StackOverflow был лучше:

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

Вот график, чтобы объяснить, что я имею в виду:

image.png

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

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

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

Что мы можем сделать?

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

  • Во-первых, используйте ИИ с установкой на обучение. Когда он дает вам ответ, допрашивайте его. Спросите его, почему. Конечно, это занимает больше времени, но в этом и заключается смысл.
  • Затем найдите свое племя. Reddit, Discord, Mastodon — где бы ни тусовались умные люди. Там вы найдете настоящие дискуссии. Те, которые заставляют вас задуматься: «Хм, я никогда не думал об этом так».
  • Проводите ревью кода по-другому. Вместо того, чтобы просто проверять, работает ли код, начните разговор со своей командой. Какие другие подходы они рассматривали? Почему они выбрали этот? Сделайте понимание процесса таким же важным, как и конечный результат.
  • Иногда создавайте вещи с нуля. Да, ИИ может сгенерировать эту систему аутентификации для вас. Но попробуйте сначала создать ее самостоятельно. Вы напишете код хуже, но будете понимать каждую его строку. Эти знания накапливаются.

Взгляд в будущее

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

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

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

Оригинал: https://nmn.gl/blog/ai-and-learning