Wednesday, April 16, 2025
ИИ Создает Поколение Безграмотных Программистов
Ниже есть продолжение.
...Многие программисты еще помнят тот неповторимый всплеск эндорфинов, когда удавалось самостоятельно одолеть сложную задачу... Все наслышаны о суровой атмосфере в профессиональной среде, которую часто ассоциируют со Stack Overflow. Но, возможно, именно эта жесткость и прямолинейная критика в какой-то мере и закаляли нас как специалистов — подобно строгому наставнику из фильмов, чьи методы поначалу вызывают отторжение, но в итоге оказываются действенными.
Целое поколение новых разработчиков может даже не знать о Stack Overflow. Сегодня многие вопросы решаются с помощью ИИ: получаешь готовый ответ, и никто не станет критиковать твои вопросы или код. Как метко заметил ThePrimeagen, "Линуса Торвальдса на вас не хватает", чтобы прямо указать на слабый код и заставить задуматься.
Автор текста сам использовал ИИ в течение нескольких месяцев. Поначалу подкупала возможность быстро получать готовые прототипы, не опасаясь осуждения за "глупые" вопросы. Однако со временем он заметил, что перестал вникать и анализировать, сводя работу к написанию следующего промпта. Эта привычка привела к неприятным последствиям: следуя инструкциям ИИ при установке программы, он случайно удалил системные файлы на своем Mac. В результате перестал работать стандартный QuickTime Player, и восстановить его оказалось невозможно. И это лишь один пример, бывают и куда более серьезные инциденты.
Разработчики с опытом в 10, 20 или даже 40 лет принадлежат к поколению, которому приходилось прилагать значительные усилия, чтобы заставить программу хотя бы запуститься. Для них ИИ действительно может стать мощным подспорьем. Но если ты не прошел через эти этапы самостоятельного поиска решений, не "пробивался" сквозь ошибки и сложности, то само понятие "преодоления" теряет смысл. Сегодня многие даже не открывают Google – все ответы ищет ИИ в своем окне. Безусловно, это удобно: под рукой всегда есть помощник с практически безграничными знаниями.
Но мы и так живем в эпоху бесконечного скроллинга, который, как считается, притупляет мышление. Теперь же мы рискуем лишиться и той сферы, где мозг традиционно работал интенсивно. Естественная склонность к экономии усилий (выбирать приятное и легкое – поесть, посмотреть сериал), которую необходимо преодолевать для обучения и профессионального роста, находит идеальное оправдание при использовании ИИ. Часто звучат опасения, что ИИ скоро заменит программистов. Но не получается ли, что мы сами себя вытесняем, когда перестаем читать документацию, глубоко разбираться в коде и сводим свою работу к "промпт-инжинирингу"?
У опытных разработчиков есть свои наблюдения. Во-первых, существует иллюзия понимания: прочитав статью, книгу или ответ ИИ, человек часто думает, что усвоил материал. Но стоит сесть за написание кода, как выясняется, что реального понимания нет. Во-вторых, как иллюстрирует пример с удалением системных файлов, ИИ способен генерировать не просто неверные, но и опасные решения. Слепое копирование таких инструкций может привести к серьезным проблемам. Новички, как правило, не обладают достаточной экспертизой, чтобы оценить качество и безопасность кода, предложенного ИИ. Здесь проявляется эффект амнезии Гелл-Манна: будучи экспертом в одной области, вы легко замечаете ошибки в публикациях на эту тему, но склонны доверять статьям по другим вопросам, где вашей компетенции недостаточно для критической оценки. Перенося это на программирование: новички не могут адекватно оценить код от ИИ, а исправлять возникшие из-за этого проблемы придется, вероятно, уже другим, более опытным специалистам.
Так что же мы имеем в сухом остатке? С одной стороны, ИИ дает невероятную скорость прототипирования. Можно быстро "набросать" решение, "пощупать" идею и оценить ее жизнеспособность. Это, безусловно, ценно. Но, как отмечает автор, есть риск, что мы становимся не в 10 раз эффективнее с ИИ, а в 10 раз зависимее от него. Мы выигрываем в краткосрочной продуктивности, но рискуем потерять в глубине понимания в долгосрочной перспективе. Автор прямо обращается к новичкам: чрезмерно полагаясь на ИИ, вы можете так и не испытать то уникальное чувство удовлетворения, которое приходит после самостоятельного решения сложной проблемы, потребовавшего часов, а иногда и дней отладки. Ведь сама суть отладки — это глубокое понимание системы и методичный поиск источника ошибки.
Вопрос уже не в том, будем ли мы использовать ИИ – этот поезд, как говорится, ушел. Вопрос в том, как мы будем его использовать. Полный отказ от ИИ нецелесообразен, но необходимо выработать осознанный подход и установить для себя определенные правила. Вот несколько рекомендаций:
Изучайте ответы ИИ и ставьте их под сомнение.
Проверяйте информацию в сообществах с опытными разработчиками.
Пишите код с нуля. ИИ шикарен для прототипов (например, напишет аутентификацию), но попробуйте сделать это сами – вы многое узнаете.
Читайте и пытайтесь понять, что пишет ИИ.
Пишите код без ИИ хотя бы иногда.
Автор подчеркивает: его личный интерес всегда лежал в области Computer Science – в стремлении понять, как что-то работает изнутри, а не только в создании конечного продукта. Он предпочитает "копаться" в ответах, задавать уточняющие вопросы и добираться до сути механизмов, сравнивая себя скорее с механиком, досконально разбирающимся в устройстве двигателя, нежели с его изобретателем.
Конечно, не всем нужно досконально разбираться в тонкостях бинарного поиска или механизмах авторизации. Многим достаточно получить работающую функцию для своего проекта, чтобы бизнес-процессы шли как надо. И это совершенно нормально: если сайт функционирует и привлекает клиентов – цель достигнута, даже если значительная часть кода сгенерирована ИИ. Однако, если говорить о программировании как об инженерной дисциплине, картина иная. Каждая строчка кода – это потенциальный источник проблем в будущем. Не секрет, что на поддержку и отладку существующего кода часто уходит больше времени, чем на написание нового.
Успешные проекты имеют свойство разрастаться, их кодовые базы увеличиваются. ThePrimeagen обратил внимание на важный момент: ИИ часто генерирует не самый оптимальный или "чистый" код, что ведет к разбуханию кодовых баз. Одновременно, легкость прототипирования с ИИ способствует появлению большего числа проектов. Вывод ThePrimeage таков: ближайшие годы могут стать "золотым веком" для по-настоящему квалифицированных программистов. Компании и команды, которые активно запускали проекты, полагаясь на сгенерированный ИИ код и быстрые "заплатки", рано или поздно столкнутся с необходимостью серьезной доработки и исправления ошибок. И тогда им остро понадобятся специалисты с глубоким пониманием – тот самый "биологический интеллект". Люди будут готовы платить значительные суммы тем, кто сможет разобраться и починить то, что неизбежно начнет ломаться. А ломается в сложных системах всё и всегда. Таким образом, ИИ может парадоксальным образом "отфильтровать" рынок, повысив спрос на тех, кто способен решать проблемы на фундаментальном уровне.
Возможно, все эти рассуждения – лишь ворчание "старика, кричащего на облака", ностальгирующего по былым временам. Однако автор верит, что среди читателей найдутся те, кто разделяет его стремление докапываться до сути вещей. Если это так, то их ждет по-настоящему увлекательный путь в профессии. Ну а если вы относите себя к "промпт-инженерам", эффективно делегирующим рутину ИИ, – что ж, это тоже стратегия. Как знать, возможно, именно таким специалистам, как автор, и придется однажды разбираться в результатах вашей работы. Или, может быть, все это – лишь рефлексия человека, который сам обжегся на слепом доверии к ИИ?
...Many programmers still remember that unique rush of endorphins when they managed to overcome a complex problem on their own... Everyone has heard about the harsh atmosphere in the professional environment, often associated with Stack Overflow. But perhaps it was precisely this toughness and direct criticism that, to some extent, forged us as specialists—like the strict mentor in movies whose methods initially cause resentment but ultimately prove effective.
A whole generation of new developers might not even know about Stack Overflow. Today, many questions are resolved using AI: you get a ready answer, and no one will criticize your questions or code. As ThePrimeagen aptly put it, you're missing a "Linus Torvalds" figure to bluntly point out weak code and make you think.
The author of the text used AI themselves for several months. Initially, the ability to quickly get ready-made prototypes without fear of judgment for "stupid" questions was appealing. However, over time, they noticed they had stopped delving deeper and analyzing, reducing the work to simply writing the next prompt. This habit led to unpleasant consequences: while following AI instructions to install a program, they accidentally deleted system files on their Mac. As a result, the standard QuickTime Player stopped working, and it proved impossible to restore it. And this is just one example; far more serious incidents can occur.
Developers with 10, 20, or even 40 years of experience belong to a generation that had to exert significant effort just to get a program to run. For them, AI can truly be a powerful aid. But if you haven't gone through those stages of independent problem-solving, haven't "fought through" errors and complexities, then the very concept of "overcoming" loses its meaning. Today, many don't even open Google – AI finds all the answers in its own window. Undeniably, this is convenient: an assistant with virtually limitless knowledge is always at hand.
But we already live in an era of endless scrolling, which is believed to dull our thinking. Now, we risk losing the very domain where the brain traditionally worked intensively. The natural tendency to conserve effort (choosing the pleasant and easy – eating, watching a series), which must be overcome for learning and professional growth, finds a perfect justification when using AI. Concerns are often voiced that AI will soon replace programmers. But aren't we effectively displacing ourselves when we stop reading documentation, delving deep into code, and reduce our work to "prompt engineering"?
Experienced developers have their own observations. Firstly, there's the illusion of understanding: after reading an article, book, or AI response, people often think they've grasped the material. But when they sit down to write code, it turns out real understanding is lacking. Secondly, as illustrated by the example of deleting system files, AI can generate not just incorrect but dangerous solutions. Blindly copying such instructions can lead to serious problems. Novices generally lack sufficient expertise to assess the quality and safety of AI-proposed code. This is where the Gell-Mann Amnesia effect comes into play: as an expert in one field, you easily spot errors in publications on that topic, but you tend to trust articles on other subjects where your competence is insufficient for critical evaluation. Applied to programming: novices cannot adequately evaluate AI-generated code, and fixing the resulting problems will likely fall to other, more experienced specialists.
So, what's the bottom line? On one hand, AI offers incredible speed in prototyping. You can quickly "sketch out" a solution, get a tangible sense of an idea, and evaluate its viability. This is undoubtedly valuable. But, as the author notes, there's a risk that we become not 10 times more effective with AI, but 10 times more dependent on it. We gain in short-term productivity but risk losing long-term depth of understanding. The author directly addresses newcomers: by relying excessively on AI, you may never experience that unique feeling of satisfaction that comes after solving a complex problem yourself, which required hours (or even days) of debugging. After all, the very essence of debugging is a deep understanding of the system and a methodical search for the source of the error.
The question is no longer whether we will use AI – that train has already left the station, as they say. The question is how we will use it. Completely rejecting AI is impractical, but developing a conscious approach and setting certain rules for ourselves is necessary. Here are a few recommendations:
Study AI responses and question them.
Verify information with communities of experienced developers.
Write code from scratch. AI is great for prototypes (e.g., writing authentication), but try doing it yourself – you'll learn a lot.
Read and try to understand what the AI writes.
Write code without AI at least sometimes.
The author emphasizes: their personal interest has always been in Computer Science – in understanding how things work internally, not just in creating the final product. They prefer "digging into" answers, asking clarifying questions, and getting to the core of the mechanisms, comparing themselves more to a mechanic who thoroughly understands an engine than to its inventor.
Of course, not everyone needs to delve into the intricacies of binary search or authorization mechanisms. For many, simply getting a working function for their project, so that business processes run smoothly, is enough. And that's perfectly normal: if the site works and attracts clients, the goal is achieved, even if a significant portion of the code was generated by AI. However, when talking about programming as an engineering discipline, the picture is different. Every line of code is a potential source of future problems. It's no secret that maintaining and debugging existing code often takes more time than writing new code.
Successful projects tend to grow, their codebases increase. ThePrimeagen highlighted an important point: AI often generates code that isn't optimal or 'clean', leading to bloating codebases. Simultaneously, the ease of prototyping with AI encourages the creation of more projects. ThePrimeagen's conclusion is this: the coming years could be a "golden age" for truly skilled programmers. Companies and teams that actively launched projects relying on AI-generated code and quick fixes will sooner or later face the need for serious refactoring and bug fixing. And then they will desperately need specialists with deep understanding – that very "biological intelligence." People will be willing to pay significant sums to those who can figure out and fix what inevitably starts to break. And in complex systems, things break constantly. Thus, AI might paradoxically "filter" the market, increasing demand for those capable of solving problems at a fundamental level.
Perhaps all these reflections are merely the ramblings of an "old man yelling at clouds," nostalgic for the old days. However, the author believes that among the readers, there are those who share this drive to get to the bottom of things. If so, a truly fascinating professional journey awaits them. And if you consider yourself one of the "prompt engineers" who effectively delegate routine tasks to AI – well, that's also a strategy. Who knows, perhaps specialists like the author will one day have to sort out the results of your work. Or perhaps, this is all just the reflection of someone who got burned by blindly trusting AI?
Subscribe to:
Posts (Atom)