Это зависит от того, как вы определяете «проблему программирования».
В реальных проектах ответ однозначно НЕТ. Большинство проблем - это даже не технические проблемы, а проблемы со связью, неясные требования и т. Д.
Тогда у вас есть целые предметы проблемных классов, которые почти не требуют алгоритмов. Например, графические пользовательские интерфейсы часто просты для «программирования», но реальная проблема заключается в том, чтобы иметь хороший дизайн (с точки зрения удобства использования, а не только графического вида).
Есть некоторые области, где проблемы имеют тенденцию быть намного более алгоритмическими по природе этой области все же. Например, ИИ является основным предметом, где в основе лежат алгоритмы. Графика может быть интенсивным алгоритмом, но это зависит от того, что именно подразумевается под «Программирование графики».
В общем, если задача, которую вы решаете программно, подходит для математического представления, то вы входите в алгоритмическую область. Конечно, это всего лишь приблизительный показатель, поскольку вы можете создавать математические модели практически для всего. Но для большинства вещей вы обычно не рассматриваете это.
Последний пример: если проблема заключается в создании графического интерфейса пользователя, который позволяет вводить данные для бизнес-объектов, вы не будете особо задумываться о математических формулировках. Однако, если проблема заключается в создании графического интерфейса пользователя, который динамически изменяется и перемещает элементы на основе некоторого значения важности, у вас гораздо больше шансов получить математическую модель и алгоритмическую реализацию.