Кодирование с помощью ИИ-ассистентов стало привычной практикой для разработчиков, однако определение конечной цели и сути самого кода остается фундаментальной задачей человека. Запрос к ИИ несет в себе выбор цели, релевантной информации и приемлемых результатов. Концепция вычислительного мышления (computational thinking) делает эти выборы явными, связывая их с поведением программы.
В дискуссии об ИИ и абстракциях Мартин Фаулер и Унмеш Джоши разграничивают поиск новых полезных абстракций и применение уже существующих. Обе деятельности включают дизайнерские решения, которые проявляются в итоговой реализации.
Обсуждение The Pulse от AlphaWire с Конрадом Вольфрамом описывает вычислительное мышление как четырехэтапный процесс: определение вопроса, представление проблемы, вычисление и интерпретация результата. Вольфрам подчеркивает, что само вычисление является лишь частью этой более широкой деятельности. Применительно к разработке ПО, это разграничение помещает сгенерированный код между решениями о постановке задачи и оценкой полученного результата.
визначення проблеми
Требования к программному обеспечению формулируют желаемый результат, а вычислительная проблема придает этому намерению необходимую точность для работы. На этом этапе определяются цель, область применения и ограничения. Формулировка вопроса устанавливает, какая информация релевантна и какие аспекты должны сохраняться при переводе проблемы в код.
Описание желаемого поведения также требует критериев для оценки ответа. Успешное выполнение подтверждает, что инструкции были выполнены при заданных условиях, но не гарантирует правильность выбора исходного вопроса или ответа на него. Оценка программы, следовательно, включает анализ как ее поведения, так и использованных для оценки ожиданий.
Определение проблемы может меняться в процессе разработки. Работа над реализацией выявляет неочевидные неоднозначности. Уточнение вопроса является частью процесса разработки, наряду с написанием и редактированием кода. Точность не требует предварительного разрешения всех деталей реализации, но требует, чтобы важные термины имели общее значение, границы были четкими, а предполагаемый результат — измеримым.
Преобразование намерения в модель
Представление связывает заявленный вопрос с вычислением. Оно идентифицирует объекты, с которыми взаимодействует программа, связанную с ними информацию и отношения, которые она должна поддерживать. Явное именование этих концепций формирует словарь кода, который можно обсуждать независимо от конкретного языка программирования.
Генерация кода является частью создания этого представления. Код выражает выборы относительно данных и операций, а его выполнение эти операции осуществляет. Структура программы и наблюдаемое поведение делают модель доступной для изучения, обсуждения и пересмотра в процессе разработки.
Унмеш Джоши использует ИИ-ассистента для переписывания одного и того же кода на разные языки, включая Go и C++, чтобы исследовать альтернативы реализации. Эти «языковые проекции» позволяют ему изучать различные способы выражения решения, даже на незнакомых ему языках. Сгенерированный код становится материалом для развития дизайна.
Джоши также описывает, как различные подходы к программированию поддерживают его работу. Для обработки данных он считает полезным мыслить цепочками преобразований над потоками данных. Для интерактивных приложений он мыслит в терминах объектов, которые объединяют хранимую информацию с операциями, ее использующими.
Для обучения эти выборы отделяют понимание правил языка от понимания дизайна. Имена, данные и операции выражают взгляд на проблему. Объяснение их взаимосвязей показывает, как реализация соответствует своей цели, даже если ее синтаксис изменяется.

Вычислительное мышление с итерационным пересмотром. Источник изображения: Создано с помощью ИИ
Интерпретация результата
Вычисление производит вывод из выбранного представления. Интерпретация связывает этот вывод с целью, которая стала началом работы. В программном обеспечении результат включает в себя поведение программы вместе с доказательствами, используемыми для ее оценки.
Интерпретация вывода также включает признание объема модели. Результат касается информации и отношений, которые были представлены. Вопросы за пределами этого объема требуют другого представления или пересмотренного вопроса; они не могут быть решены простым повторным выполнением той же вычислительной процедуры.
Тесты выражают некоторые ожидания относительно поведения программы. Они предоставляют доказательства относительно этого поведения в условиях, которые они охватывают. Они не устанавливают автоматически, что выбранные ожидания охватывают все, что программа должна выполнить. Код-ревью исследует выборы реализации; тесты проверяют заданное поведение. Сравнение этих проверок с первоначальной целью — это суждение о программном обеспечении в целом.
Процесс Вольфрама позволяет вернуться к вопросу или представлению. Результат, который вызывает пересмотр, является частью процесса, а не его концом. Пересмотр модели меняет то, что вычисляется, в то время как пересмотр вопроса меняет то, что вычисление должно ответить. Работа объединяет эти выборы, реализацию и интерпретацию через повторное исследование.
Выбор того, что построить
Обзор технических работников METR, опубликованный в мае 2026 года, проводит аналогичное различие между скоростью выполнения задачи и ценностью произведенной работы. В нем приняли участие 349 технических специалистов, включая 87 инженеров-программистов, опрошенных с февраля по апрель 2026 года. Участники представляли случайную выборку, а не репрезентативное пересечение технических работников. Их оценки описывают их восприятие помощи ИИ; это не контролируемые измерения прироста продуктивности.
Исследователи разделяют время, затраченное на задачу, от полезности полученной работы. Они также рассматривают изменения в составе задач, которыми занимаются люди. Измерения скорости зависят от того, какие именно виды деятельности учитываются; вклад зависит от того, каких результатов эти виды деятельности достигают. Таким образом, быстрая реализация предполагает дальнейшее суждение о том, продвигает ли выбранная задача цель программного обеспечения.
Люди, ответственные за программное обеспечение, решают, что делает результат полезным. Сгенерированный код предоставляет им реализацию для работы; вычислительное мышление соединяет его поведение с целью, которой это кодирование должно служить.