Подскажите, пожалуйста, с чего же все-таки именно начать?
1. Нужно научиться понимать текст и требования задачи.
2. Находить несколько (а лучше - все возможные) вариантов (алгоритмов) решения поставленной задачи (а их всегда более 1-го), и выбирать наиболее быстрый.
3. Научиться чётко и по шагам формулировать алгоритм/блок-схему решения (в голове или на бумаге) до начала написания кода в целях экономии времени на отладку кода и при поиске и устранении возможных ошибок.
4. Научиться чётко и с первой попытки конвертировать алгоритм в код на выбранном языке программирования.
Вот, для разминки: попробуйте начать с написания алгоритма для поиска решения полной сборки кубика-Рубика (все грани одного цвета) из любого начального состояния с наименьшим количеством задействованных (вращаемых) граней.