Think in math, write in code (2019)
Программисты часто переоценивают роль языков программирования, воспринимая их как инструменты мышления, хотя на самом деле это лишь средства реализации для управления машинами. Истинным языком для вычислений на протяжении тысячелетий является математика — гибкая среда для создания логических моделей и решения проблем. Основной цикл программирования включает три этапа: идентификацию проблемы, проектирование алгоритмов и их реализацию, причем первые два этапа требуют большинства усилий, но не подходят для решения с помощью языков программирования.
Языки программирования обременены практическими ограничениями и деталями реализации, отвлекающими от сути задачи. Они также плохи как инструменты абстрагирования, поскольку "утечка абстракций" означает, что краткое описание не может полностью определить поведение системы. Вместо того чтобы пытаться решать сложные проблемы непосредственно в коде, автор рекомендует сначала использовать математику для четкого формулирования решения, а затем переходить к реализации, что позволяет сосредоточиться на выборе оптимальных структур и написании качественного кода.