Как известно динамическое программирование, это разбиение огромной глобальной задачи на маленькие задачи, то есть своего рода алгоритм последовательных действий.
Приведу пример: допустим ты молодой программист, тебе поручили задание написать программу для банка. с виду покажется сложно, так вот начинаем разбиение, сначала анализируем деятельность банка, спрашиваем что и как им нужно, формируем в голове модель продукта, изучаешь средства необходимые для создания конечного продукта и тд.
Все начинается с малого!