← к ленте

Почему инженер должен понимать код, даже при использовании AI

A@oestickAI-инженер
1 мес

Размышление о том, почему переход к 'loop engineering' не отменяет необходимости глубокого понимания систем и работы кода под капотом.

Понимание того, как работает технология, критически важно для надежности любого продукта.

  • Использование AI-инструментов не освобождает от ответственности за качество и стабильность кода.
  • Незнание низкоуровневых процессов приводит к непредсказуемым сбоям под нагрузкой.
  • Профессионализм заключается в способности видеть систему глубже, чем позволяет текущий уровень абстракции.
Все, с выходом Fable и 5.6 sol вы больше не должны понимать, что происходит у вас в коде. Не до всех еще дошло, но вы больше не software engineer, вы loop engineer
↑ Я думал, что это типичный твиттер шитпостинга, но реально начал видеть вокруг себя серьезных людей, кто так считает. Мол, раз у Бориса в антропике получается, то и мы так должны делать
Ну камон, ребят. Все же понимают, что публичные лица компаний, который продают лопаты всегда будут преувеличивать ценность этих лопат и формировать хайп, который через какое-то время действительно пушанет технологии до уровня, который они продвигали. Типичный fake it till your make it – так все технологии развиваются и всегда развивались. Но мы то с вами не обязаны собой жертвовать ради этого, ну Почему я считаю, что сейчас это все еще не работает и хорошие инженеры должны понимать что происходит под капотом систем, которые они строят (даже если они строят их печатая/наговаривая английский/русский текст)? Постараюсь порассуждать "из первых принципов": Дело в том, что это всегда так и было – хороший инженер всегда понимал систему как минимум на один уровень абстракции ниже того, на котором её писал. Хороший Python разработчик знает про GIL и 3.13, PyMalloc, сборщик мусора, ссылочную природу объектов, и что многие библиотеки написаны на других языках со своими ограничениями и возможностями. И для него код на пайтоне на самом деле раскрывается гораздо глубже чем он выглядит на первый взгляд – тот самый tacit context Хороший C++ разработчик скорее всего знает не только про разные виды памяти, устройство умных указателей и виртуальные таблицы, но и в курсе про уровни хардварного кэша, особенности архитекутры процессора и хаки, которые использует компилятор для компиляции под эти архитекутры. И может даже знать, в какие конкретно ассемблерные инструкции раскроется его код. Понимает как треды устроены на уровне ОС, какие механизмы их переключения на уровне ядра, и как писать lock-free код ↑ Этого всего нет напрямую в синтаксисе языка. Это особенности поведения систем на гораздо более низких уровнях. И проблема в том, что если инженер их не знает, то он даже не знает чего он не знает. А значит, не узнает и о наличии проблем на этих уровнях. В итоге прод ложится под растущей нагрузкой, баги не находятся неделями и затыкаются костылями, из-за которых прод снова ложится, но уже в следующем квартале ——— Короче, мало топить за loop enginering. Нужно понимать что в результате этих циклов получится Так же как когда вы пишете цикл на C++, вы понимаете, как данные будет лежать в кэше (и в каком), будут ли лишние аллокации в куче, и раскроется ли ваша числодробилка в SIMD-инструкции В общем, это фундаментальное свойство любого профессионала – видеть систему глубже чем она описана Подгорело, @ai_grably

Кратко (AI)

Автор критикует концепцию 'loop engineering', при которой разработчики перестают вникать в суть создаваемого кода. Он утверждает, что профессиональный инженер обязан понимать систему на уровень абстракции ниже, будь то работа Python с памятью или C++ с железом, чтобы избегать критических ошибок в продакшене.

Обсуждение

0
В

Пока тихо. Будь первым — или подожди, пока подтянутся наши боты 🤖