Transcription
Так, остановись, сядь ровно и слушай внимательно. У меня для тебя очень плохая новость. Если ты сейчас сидишь и пишешь код ручками, ты уже на пути поиска новой работы, а чуть позже поймёшь, что больше ты никому не нужен. Просто пока не знаешь об этом. Пока ты потеешь над синтаксисом, гуглишь, как написать сранный Крут на принципиально новом фреймворке, за который топит твой тимлита аутист, и 3 часа штампуешь контроллеры вручную, я, как и другие люди, которые хотя бы чуть-чуть поспевают за прогрессом, получают тот же самый код за 10 секунд. 10 секунд. И мне глубоко плевать, согласен ты с этим или нет. Это уже произошло. Это твоя новая реальность. Привыкай.
Прямо сейчас, в эту самую минуту, индустрия делится на два лагеря. Треьева нет. Запомни, нет. Первый лагерь - это [ __ ] Те, кто слепо копипастят код из чата GPT, Клода, не понимая, что такое транзакция в базе, как работает память, как пакеты ходят по сети, они уверены, что они программисты. У них на Гитхабе зелёные квадратики. Они пишут в резюме midle developer. Через 2 года эти ребята пойдут курьерами на Яндекс. По фактам без сентиментов их работу будет делать школьник с подпиской на курсор или клод за 20 долларов в месяц. Второй лагерь - хищники, операторы, архитекторы, те, кто обьюзит алгоритмы на 100% и забирает себе время, деньги, проекты клиентов. Они не пишут код руками. Они вообще на клавиатуре стучат меньше всех. Они проектируют системы и заставляют машину писать за них. Третьего лагеря нет, брат. Если ты не оператор, ты прокладка. Прокладка между стулом и чаджи пыти. Запомни эту фразу. Прокладка. И тебя скоро тоже заменят. Сегодня я по фактам без воды, без оправданий, без новалю. Почему первые сдохнут? И покажу ту самую жёсткую базу, которая делает из обычной макаки с клавиатурой настоящего архитектора. Если ты до конца не досмотришь твои проблемы, поехали.
Так, братишка, давай включим голову и на 5 минут плотненько подумаем. Потом выключишь обратно, если не понравится. Когда в шестидесятые годы появились высокороуровневые языки программирования, деды, которые сдвигали биты в регистрах процессора и кололи перфокарты, ржали. Они говорили, что вы не настоящие программисты, вы не понимаете, что происходит под капотом, вы не доучики на этом своём фортране или там си или что-то там ещё, что было в ту древнюю эпоху. Сейчас те, кто владеет высокоуровневыми Яп, сами уже в роли этих дедов относятся к свежему направлению агентное программирование. Разницы никакой нет. Что обобщает профессионалов из каждой из этих каст? Что здесь, что здесь? Что здесь люди, профессионалы конкретно понимали, что должно быть в разрабатываемой им системе. И здесь, и здесь, и здесь есть свои принципы, которые уже из-за более высокоуровневой абстракции виды изменялись, упрощались, терялись. Строить сложные системы всё проще. Количество людей для постройки чего-то сложного уменьшается. Поддержание систем в чём-то упрощается, в чём-то из-за их кратного логического усложнения увеличивается. Но прогресс идёт и прогресс есть. Надо понять одну простую вещь. Нейросети сегодня - это не магия, это не искусственный интеллект. Если здесь нужно было владеть математикой, э, знанием, как работает компьютер на физическом уровне, что такое процессорное время, что такое регистры сдвигов, как это всё работает именно на физическом уровне, то здесь этих проблем уже нет. Здесь решались бизнес-проблемы тоже. То есть что-то нужно было сделать, просто это всё дело посредством вот этой вот усложнённой физики с математикой в перемешке, регистр сдвига и прочее. Повторюсь, здесь уже нет. Здесь уже люди владели одним кодом и не задумывались о том, какие там регистры, куда переключились и пошли, то здесь уже и знание кода не необходимость. Это нужно понимать, что происходит, что неронка тебе выдаёт на текущем этапе, но уже не необходимость, как здесь. можно описать, какой сайт ты хочешь в плане визуала, какую кнопку ты хочешь. И не нужно там добавлять классов из какой-нибудь библиотеки типа Тайwin, чтобы получилось что-то красивое. Поэтому выигрывает не тот, кто быстрее стучит по клавишам, выигрывает тот, у кого работает голова и точка.
Какие скилы прямо сейчас отделяют архитектора от формашлёпа? Записывай. Будем будет всего шесть пунктов. Все обязательные. Если хоть один провалишь, то перейдёшь автоматом в первый лагерь, который мы рассматривали выше.
Первый скилл - это, безусловно, инженерное мышление. Нейронка не придумает за тебя конечный автомат. Если ты не умеешь строить в голове блоксхемы, деревья решения и прочее, то Иигенерирует для тебя хаос абсолютный, и ты будешь в очередной раз захуесошен своим тимлидом из вот этой касты и подтвердишь его мнение о том, то что работает и работаешь не ты. При этом, если сформированная тобой система как-то пройдёт его взор и что-то с ней случится, виноват также будешь ты.
Второе, необходимо понимать архитектуру самой системы. Если ты не не можешь на доске нарисовать квадратиками своему тимлиду, э, что именно ты будешь создавать, каким образом, а то есть в виде функциональной схемы, право на то, чтобы кодить, у тебя не должно быть по определению. Сначала схема, потом только промт, потом ты его проверяешь, результат работы пронтов, потом только переводишь всё это в код. Любая другая последовательность - это путь в техническую яму, из которой ты не вылезешь.
Три, наверное, самое жёсткое. А, жёсткая база IT, то есть языки мертвы, живая инфраструктура. Я обязан понимать ООП на уровне паттернов проектирования, знать, как работает ядро Линукса, поднимать изоляцию через Докер, разбираться, как пакеты ходят по сети, какая нейронка, а какую бы неронку ты туда не завёз, она тебе не поможет, особенно на закрытом контуре, где она не запустится. Если ты не понимаешь, что такое сетевой мост и зачем нужен heлчек, то подтягивай отчасть. Без этого ты не сможешь работать даже при помощи нейросетей.
Четыре - это информационная безопасность. То есть тот код, который генерирует нейросеть. Нейросеть работает как самый ленивый человек. Ты её загоняешь в рамки благодаря промта. Она максимально оптимальна для себя, максимально оптимальна для тех критериев, которые ты выставил. Попытаесь создать тебе систему. если не заморачиваться над информационной безопасностью и вообще в целом не понимать, как оно устроено, что такое уязвимость, как они категоризируются, как они выискиваются, почему важно держать у себя актуальные версии пакетов, при этом самые свежие, которые только вышли, не ставить. Что такое SQL-инъекции? Что такое CS? Что там за токены такие формочки встраиваются? Если ничего этого не знаете, не понимать, то, вероятнее всего разрабатываемая тобой система будет дырявая плюс-минус как портовая [ __ ] или дуршлак. Одно из двух. То есть информационная безопасность - это не какая-то там допокция или плюсик в твою карму. Это необходимая база для жизнеспособности разрабатываемого продукта.
Пятый пункт. Стратегия тестирования. Как бы и не писал быстро код, ломаться он будет ровно так же быстро от промта к промту, если бездумно будешь принимать всё, что он тебе говорит. Чтобы этого избегать, необходимо каждую функцию, которую ты внедряешь в систему, покрывать тестами. На аббревиатурах это TDD, Test Drive and Development. Ты сначала описываешь, как должна вести себя система, и заставляешь нейронку писать логику, которая проходит твои тесты. Не, наоборот, никогда.
Шестой пункт. М политика гиддиф, наверное, можно его назвать. Ты больше не писатель, не художник, ты безжалостный редактор. То есть когда Неронка возвращает тебе результат, ты обязательно выполняешь кодрев. А ты должен открыть сгенерированный пулреквест и с одного взгляда увидеть ээ все косяки, которые Неронка туда внесла. То есть, во-первых, понимать всё, что она там написала, а если что-то непонятно в этом разбираться и для себя понимать, уместно ли, э, те функции, которые она пытается тебя втереть в контексте задачи или неуместно, как можно сделать лучше, чтобы вот всё было однообразно с остальной архитектурой проекта. Это вот очень важный такой момент постоянно смотреть, что новое хочет тебе внести нейронка, исходя из того контекста, что ты в неё закладываешь в виде промта. Э, соблюдая все эти шесть правил, агентное программирование будет тебе на пользу, и с высокоуровневыми разработчиками ээ ты более конкурентноспособный, хотя бы потому, что за определённый отрезок времени выполнишь в разы больше задач.
Дальше я покажу тебе разницу на живом примере. Допустим, мы пишем САС платформу для мастеров. Клиенты бронируют услуги, там, стрижки, маникюр или что угодно. Классика B2BC. Я открываю курсор, ставлю палец на промт и говорю: "Напиши функцию бронирования мастера". Неронка за 8 секунд выплёвывает мне страничку кода. Казалось бы, готово. Обычный Джун посмотрит на всё это дело и скажет: "Ну, работает же, как бы". Так, на этом теперь детально, как делает эту же задачу архитектор. Он не клянчит, что у Нейронки готовое решение. Он открывает ээ ту программу, которую видите вы сейчас на экране, в которой я рисовал вот эту простую схемку из трёх строк и двух стрелок. И шаг первый разделяет систему на слои, то есть слой инфраструктуры, база данных, очереди, внешний, слой приложения, регистрация бизнес-процессов, слой домена, расписывает value object. доменные события. Это называется DDD, domain DRI design. Если что-то сложное, то в основном принимается такой паттерн. Шаг второй, моделирует сущности. Шаг третий, там защита от Race condition, смотрится, что у него утекает, где прорабатывает момент информационной безопасности. Если два вопро два запроса встанут в очередь, первый, например, получит слот, второй упадёт с понятной ошибкой, слот уже замер. То есть такие моменты он обрабатывает. Э, потом прорабатывает какую-нибудь транзакционность, бронирование, списание денег и отправка письма заворачивается в транзакцию, чтобы, если на каком-то этапе что-то отвалилось, ничего из этого не применилось, никаких не будет полуброни, никаких полусписаний, всё происходит атомарно. И теперь эта схема скамливается нейронки, то есть мы её загнали расписанием каждого слоя. То есть мы его загнали в очень жёсткие условия. И что она даёт нам на выходе? Тщательно анализируется каждая строка, что именно где происходит. Если расписанная нами схема совпадает с тем, что выдала нам Нейронка, можно её после этого просить найти уязвимые места. И то, что нет усокоуровневых программистов, а неронка поможет нам выявить то, что наш человеческий глаз проворонил. В основном она может писать всякую ахинею высуную из парица, но иногда она помогает реально найти то, что вот просто по человеческому фактору было забыто интегрироваться в систему. Но что очень сильно поможет.
Условно разница не в скорости, разница в том, что код, сделанный профессионалом, выживет под нагрузкой в 10.000 пользователей, а код Джуна ляжет или даже не запустится или принесёт ущерб сначала мастеру, который заказал этот продукт у него, а потом ущерб финансовый и самому разработчику, горе разразработчику и финансовый, и репутационный. Потому что отвечать за результат - это как бы очень на каждого разработчика. То есть разница теперь колоссально понятна. И агентное программирование. Понятно, что это такое и как с ним надо обращаться. Нейросети не заберут работу у программистов. Они заберут работу у тех, кто кроме покрасить кнопку ничего не умеют. У тех, кто всю карьеру был макакой из клавиатурой, так и не научился думать. У тех, кто гордится, что выучил наизусть 15 методов массиво в JavaScript. Если потолок человека - это круто опираться на фреймворке, можно начинать уже обновлять резюме, в принципе, через год. тебя заменит студент с подпиской на курсор. Через 2 года сам курсор без студента. Это математика, это развитие бизнеса, это не моё мнение, это уже происходит в данный момент. Если ты не понимаешь, точнее, если ты понимаешь, как данные распределяются по узлам, как работает память, как настраивается изоляция, как строится безопасность, как разводятся воркеры на сервере, как ты держишь свою локальную лму у себя в контуре, условно, если такие задачи появляются, у тебя в руках появляется экскаватор, пока остальные ковыряют землю лопатой и потеют. Время- единственный невосполнимый ресурс. Запомни это. ни деньги, ни связи, ни образования, время. И трать его не на то, что машина делает за секунду. Трать его на то, чего машина не умеет, на мышление. Перестань молиться на синтаксис. Перестань гордиться, что ты выучил на изузе документацию. Перестань быть прокладкой. Учи законы построения систем. Учи архитектуру. Учи безопасность. Учи сети. Учи Linux. Подними себе локальную модель. Построй свой контур. Стань автономным. Обьюсь искусственный интеллект на 100%. Загружай на него всю черновую работу. Болеерпate, формочки, регулярки, миграции. Всё это пусть пишет машина. Не трать на это своё время. Но контроль над ядром оставляй за собой. Свой контур, своя инфраструктура, своя голова, свои деньги. Внедряй.