Классический подход выглядит так: смотрим на задачу и пытаемся понять как мы будем её решать руками, рассматриваем разные варианты задачи, ошибаемся, пробуем ещё раз, знакомимся с ней одним словом. Потом полученное решение пытаемся формализовать и описать с помощью языка программирования.
Я, когда проходил этот этап, больше всего почерпнул из книги "Математика это просто":
https://www.ozon.ru/context/detail/id/31172916/
Несмотря на слово "математика" в названии, там речь идёт о том, как научиться решать задачи, для которых в голове нет готового решения.
Удачи и терпения на этом нелёгком пути :)