Why LLMs can't really build software 🔥 Горячее 💬 Длинная дискуссия
Почему LLM не могут строить ПО
Эффективный инженер постоянно прокручивает цикл:
- формирует ментальную модель требований,
- пишет код,
- проверяет, что он реально делает,
- сверяет модели и правит код или требования.
LLM умеют писать и обновлять код, запускать тесты, логировать, но не умеют держать в голове ясную модель. Они путаются: считают, что всё работает, не понимают, где ошибка — в коде или в тесте, и при раздражении сносят всё и начинают заново. Человек же, столкнувшись с проблемой, может «свернуть» контекст, сфокусироваться на детали, затем вернуться к общей картине.
Даже если модели станут мощнее, им нужно научиться так же «держать в памяти» и переключаться между уровнями детализации. Сейчас они страдают от выпадения контекста, пристрастия к свежим фактам и галлюцинаций. Работа над «памятью» идёт, но пока LLM не понимают происходящего и не могут сравнивать две похожие модели, чтобы решить, что менять.
LLM полезны: быстро генерируют код и документацию, справляются с простыми задачами. В сложных случаях человек всё равно должен контролировать требования и проверять результат. В Zed верят в совместную работу человека и агента, но руль остаётся за инженером, а LLM — лишь инструмент.
Комментарии (426)
- LLM хороши как инструменты-ассистенты: быстро пишут boilerplate, находят мелкие ошибки, экономят время на рутине.
- Главный недостаток — неспособность удерживать и «поддерживать» целостную ментальную модель задачи; контекст «размывается» или меняется непредсказуемо.
- Поэтому при росте кодовой базы отладка превращается в «чтение спагетти», и инженер всё равно вынужден начинать заново.
- Решение — не «больше контекста», а системы-обёртки: TDD-циклы, пошаговое планирование, документация-модель, строгие промпты.
- Вывод: сейчас LLM заменяют джунов и Google-поиск, но полноценное ПО без человека, который держит «теорию» проекта в голове, построить не могут.
An engineer's perspective on hiring 💬 Длинная дискуссия
Почему наём — боль
Компании теряют время: 9 раундов, охота за «трендовыми» разрабами, не могут отличить программиста от LLM. Кандидаты страдают: лучшие разрабы (Rust, Haskell) проваливают стресс-интервью, рекрутеры называют их «не-технарями», а потом пропадают на месяцы.
Каким должен быть хороший процесс
- Различать сеньора и маркетолога с ChatGPT.
- Применимо к работе: код, архитектура, ревью, документация.
- Долгосрочно: люди не взаимозаменяемы, уход дорого, специализация под стек выучивается за месяц.
- Экономно: инженерное время дорого.
- Уважительно: неуважение отпугивает лучших.
- Вкус: быстрое, но грязное решение — долгий долг команде; «клей» (поддержка коллег) множит продуктивность.
Почему популярные форматы не работают
-
Live-coding / LeetCode
Не различают, не про работу, уничтожают уважение и вкус, дорогие при многократных раундах. -
Take-home
Легко сгенерировать ChatGPT, неуважительны к времени кандидата, отпугивают сильных. -
Проектирование архитектуры
Лучше: ChatGPT не пройдёт, близко к реальной работе, можно оценить вкус и командное влияние.
Комментарии (171)
- Современные «интервью» больше похожи на серию экзаменов, чем на профессиональный разговор.
- Многие считают, что достаточно 1-2 коротких встреч или пробы через контракт «temp-to-perm», чтобы понять, подходит ли человек.
- Популярные live-coding и leetcode почти не отражают реальную работу и отбирают не тех специалистов.
- Лучше обсуждать реальные задачи, ревьюить существующий код или решать мелкий баг в паре — это ближе к ежедневным обязанностям.
- Кандидаты теряют время и энергию на домашние задания и 9-часовые циклы, поэтому всё чаще «интервьюируют» и сами компании.