Чем вообще занимаются программисты на работе?

Я бы не сказал, что они занимаются постоянным написанием кода. Несмотря на то, что до эпохи ИИ значительную часть кода программисты писали вручную, но даже тогда большая часть работы состояла не из этого.

Программисту в первую очередь приходится много думать. Много времени занимает понимание кода — чужого или своего, написанного несколько месяцев назад. Нужно уместить в голове хотя бы часть структуры проекта, чтобы аккуратно и точно вносить в него изменения. И это непросто: проекты зачастую уже готовы и работают. Во многих командах разработчик чаще работает с уже существующей кодовой базой, чем создаёт продукт полностью с нуля, да и новый проект очень быстро становится тем, в чём нужно разбираться.

Программирование - это очень интеллектуальная работа. Сначала пытаешься придумать хоть какое-то решение для новой фичи. Затем часто оказывается, что решений несколько. Нужно выбрать компромиссный вариант: по скорости разработки, производительности, простоте, надёжности и удобству поддержки. После этого — реализовать изменение и тщательно проверить, не сломало ли оно то, что уже работало Ещё программист постоянно работает с ошибками: своими, чужими, "подарочками" от ИИ.

Если программой пользуются, рано или поздно баги всплывут. Это норма, а не что-то из ряда вон выходящее. Это часть повседневной работы. Код устаревает. Накапливается технический долг — из разряда «ну это потом поправим». И это «потом» в какой-то момент приходится разгребать. Программа редко бывает «написал и забыл». Её нужно поддерживать: обновлять, латать дыры, адаптировать под новые требования.

Ещё огромная часть работы — поиск информации. Документация, библиотеки, исходники, ИИ, форумы — программист постоянно сталкивается с тем, чего не знает, и должен уметь быстро с этим разобраться.

Коммуникациями тоже приходится заниматься. В зависимости от формата работы программист проводит немало времени на митингах, в переписке с командой, в обсуждении задач с менеджером или заказчиком. Нужно уметь объяснить техническое решение простыми словами, договориться о приоритетах, правильно оценить сроки. Ну как бы soft skills, без них тоже не получается.

В итоге, работа программиста — это не печатание кода 8 часов подряд. Это чтение, поиск информации, думание, проектирование, отладка, тестирование, поддержка и общение с командой. Код — инструмент. Главная работа происходит в голове.