Халява уходит из программирования |
||
|
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ Атаки на ИИ Внедрение ИИИИ теория Компьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Промпты. Генеративные запросы Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2025-04-29 13:21 Для меня халява — это гарантированный результат за вложенные усилия. Логика повествования требует такого определения, дальше всё будет ясно. Халяве учили и учат в школе. Сделай домашнее по алгебре, выучи стихотворение, научись решать линейные уравнения — и получишь пятерку, то есть лучшее из возможного. Любовь получать пятерки сыграла злую шутку со многими, ведь в жизни вне учебных заведений халявы практически нет. Слово «легко» ниже по статье тоже означает гарантированный результат за усилия, но подразумевается «легко, если умеешь работать с собственной мотивацией». Тезисы для поддержки рассуждений Рассмотрим несколько тезисов сразу, чтобы далее по статье не останавливаться на доказательства и ссылки. Обратите внимание, что первые 3 тезиса могут иметь причинно-следственные связи, как и тезисы 4 и 5. Тезис 1: ИИ улучшается в решении типовых задач
Тезис 2: ИИ упрощает разработку
Тезис 3: практически все разработчики используют ИИ
Тезис 4: крупные компании больше не вкладываются в разработчиков
Тезис 5: разработчик ПО больше не дефицитная профессия
Тезис 6: LLM — это не интеллект, а паттерн-матчинг
Этот тезис выбивается из повестки, но только на его основе и строится главный вывод статьи. Давайте обо всем по порядку. Программирование являлось халявой, но больше не является В недалеком прошлом достаточно было пройти несколько туториалов, посмотреть примеры собеседований, прорешать пару десятков задач c Leetcode (Codewars, Hackerrank) и идти на рынок. Легко было обходиться без базовых знаний Computer Science: понимания структур данных и алгоритмов, баз данных, операционных систем, сетей, теории асимптотической сложности и т.п. Даже если брать программистов с базой, многие считали своей главной задачей — перевести требования в код. По ходу статьи будут агрументы, что в этом уже нет большой ценности. С дармовщиной покончено, и я предсказываю, что индустрия уйдет от сверхдоходов за умение решать простенькие логические задачки к обычному доходу за компетенции. А компетенции будут проверяться еще строже. Тренд уже заметен и высмеивается в миниатюрах: LLM сейчас могут не просто помогать писать код, но и решать какие-никакие задачи вообще без помощи программиста. Казалось бы, логично предположить, что порог входа в разработку снизился. Но это не так. Раньше junior-разработчику приходилось конкурировать с другими джунами, но тоже разработчиками. Сейчас приходится конкурировать еще и с промпт-программистами, вайб-кодерами, просто разработчиками, которые читерят с ИИ для прохождения собеседований. Отбор и найм превратились в гонку вооружений и на самом этапе отбора: рекрутеры применяют ИИ для поиска резюме, а кандидаты оптимизируют свои резюме с помощью ИИ. На таком рынке лучше всего тем, у кого есть опыт и есть база. Уже сформированный программист также пользуется ИИ, но может утилизировать этот рычаг с большей эффективностью. Для всех остальных требования взвинтились невероятно. Главное заблуждение вайб-кодера Вайб-кодер думает, что наступили времена, когда за неумение писать код и незнание основ computer science компании будут платить деньги. Жестокая правда такова, что эти времена как раз закончились с появлением LLM. Повторюсь. С появлением LLM некомпетентность перестала оплачиваться. Дело в том, что никакой сложности решать большую часть задач на большинстве проектов не было и раньше. Да, надо было иметь какое-никакое знание языка программирования, но это вопрос одной-двух недель, этому и дошкольников обучают. Вместо 1x запросов к LLM надо было сделать 2x запросов в Google и скопировать код. Может быть, внести мелкие правки. Никакого волшебства с LLM не произошло, только поиск стал быстрее и нудная рутина ушла. Если речь идет о задаче, которую не решили в интернете, то и LLM не поможет. Говорю как человек, который ежедневно использует ChatGPT с 2022 года.
В прошлом работодателю казалось, что программировать сложно. Кандидаты могли ничего не знать и не уметь, но легко находили работу. Надо было подготовиться к собеседованию, а потом «копипастить» с интернета. Я сам начинал так и получал хорошие в сравнении с другими сферами деньги. Без базы. Без алгоритмического мышления. Без умения писать простой код. Сейчас работодатель понимает, что типовые задачи легко решаются с LLM, и не готов платить за это много. А желающих получать вознаграждение за легкую работу значительно(!) прибавилось. Навык алгоритмизации — не то, что определяет программиста сегодня Про то, что это важно, впервые услышал здесь (youtube). Даже 10 лет назад большая часть работы абсолютного большинства программистов была не про алгоритмизацию. Мобильные разработчики получали json и рисовали «фид» (ленту), самоутверждаясь переписыванием архитектуры на очередную аббревиатуру (MVC, MVP, MVI, VIPER, MVVM, TEA...). А бекендеры перекладывали json-ы и джойнили таблицы, самоутверждаясь через выделение микросервисов и затаскивание новых технологий в проект. Сегодня (низкоуровневая) алгоритмизация нужна и того меньше. Когда ясно, что алгоритмизировать, — например, после гугления и разбора, — можно скопипастить готовое решение или попросить LLM написать код из формального определения. А вот чтобы это было ясно, нужна база, которая включает в себя теорию сложности алгоритмов, сами алгоритмы и структуры данных. Я хочу сделать акцент на том, что прорешав кучу задач с Leetcode, вы больше не являетесь завидным кандидатом. Искусственные простенькие задачки — это бутафория. Надо уметь их решать, но не нужно делать это самоцелью. А еще никому не нужен — или вот-вот станет не нужен — программист с отношением: говорите мне, что «закодить», а я «закожу». LLM сделает это быстрее. Теперь надо знать, что и зачем кодить. Знание фреймворка становится менее ценным Если вы познакомились с фреймворком по туториалам и прорешали десяток литкод-задач, вы ничем не лучше, чем любой подросток с ChatGPT. Промпт-программистам сегодня легко даются решения, которые гуглятся и без ChatGPT, а всё, что касается популярных фреймворков, гуглится легко. Базовых ошибок, вроде утечек памяти, или «секьюрных» дыр, вроде сохранения ключей в коде, можно избежать, если настроить LLM на ревью кода. Не уверен, что вайб-кодеры так делают, но рекомендую им это в первую очередь. Если фреймворк не важен, то что важно?
Такое нельзя получить из туториалов или обойтись консультацией ChatGPT при разработке, особенно, если нужно принять архитектурное решение. Потому что будет непонятно, насколько хороша эта консультация. LLM свойственны галлюцинации и когнитивные искажения, и вы можете принять решение, основанное на ошибочных заключениях LLM. Шкала технических навыков программиста сегодня Я вижу технические навыки программиста в таком приоритете:
Тут самое главное, что важны первые три и совершенно не важны последние два. Архитектура и масштабируемость — основа, так как влияет на предсказуемость расходов, надежность с SLA, скорость разработки, «поддерживаемость» системы со временем. Базовые знания для программиста становятся более востребованными, потому что навыки написания кода и использования фреймворка легко компенсируются ИИ, а понимание основ computer science позволяет:
Важно, чтобы кодовая база хорошо «старела». Другими словами, надо уметь минимизировать accidental complexity, иначе со временем проект физически невозможно будет поддерживать — решение одной проблемы будет порождать две других (гидра). Пункты 4 и 5 практически не важны, так как легко решаются через LLM и будут решаться еще лучше со временем (см. тезис 1 из начала статьи). Проблему написания неидиоматичного кода и специфичные для ЯП проблемы можно отловить через ревью теми же LLM. Исключение: переход с высокоуровневого языка (JS) на низкоуровневый (C++). Тут LLM не помогут, но это можно отнести к пункту 2 (базовые знания), ведь в JS не нужно думать ни о потоках, ни о памяти. На собеседованиях пункты 4 и 5 до сих пор ставят в приоритет. Это является ошибкой компаний. Надо либо разрешать пользоваться LLM на собеседовании, обращая внимания на то, что человек замечает и как рассуждает, или вообще не тратить на алгоритмические задачки ни свое, ни время кандидата. Почему важно понимать бизнес У некоторых программистов — да и у меня самого, не буду лукавить, — отношение к бизнесу индифферентное. Неинтересно думать о бизнесе — интересно писать код и разбираться в технологиях. Кто-то открыто говорит, что готов затаскивать «ненужные» технологии в проект, потому что интересно и для резюме полезно. CV-driven development. И боль последующих поколений, кому это поддерживать. Бизнес в конечном итоге платит за ценность. В идее из абзаца выше ценности мало, мало ее и в том, чтобы «закодить» описанную вдоль и поперёк задачу. Это может любой с LLM. Больше ценности в умении принимать качественные архитектурные решения. Такие задачи сложнее и требуют не только опыта и технической осведомленности, но и понимания доменной области. А иначе как отвечать на вопросы вроде:
Подчёркиваю, что дело не в лояльности бизнесу, а в лояльности профессии. Хорошие решения проистекают из хорошего понимания контекста. Халявное послесловие Поверхностный взгляд на программирование может создать иллюзию легкого старта для всех желающих. А на самом деле, стало значительно сложнее — и стартовать, и продолжать. Сложнее гарантированно получить хорошую компенсацию в обмен на небольшой набор знаний и навыков. Начинающие разработчики, особенно «промптеры», думают: без основ computer science и навыков программирования пойду работать программистом. Но как раз таки в прошлом, а не сейчас, это было легче. Теперь рынок требует от программиста большей подготовки за меньшую компенсацию. Ценность компетенций возросла, потому что LLM могут решать только типовые задачи, а для нетиповых нужны знания и навыки. Но даже если у вас есть опыт и знания, все равно придется соревноваться с наплывом людей, которые накручивают опыт и проходят собеседования с помощью LLM. Что делать? Оставаться в программировании, если вам это нравится, а не потому что тут легкие деньги. Больше вкладывайтесь в базу, а не во фреймворки, и следуйте за интересом. Идею статьи в общем случае передал одним сообщением в телеграме. P.S. Судя по комментариям, кто-то думает, что статья про то, что программисты не нужны. Тезис ровно противоположный. LLM — просто тулза для решения рутинных задач. Источник: habr.com Комментарии: |
|