я сталкиваюсь с тем, что я не понимаю как его делать, хотя там есть все то, что я уже проходил.
Это нормальная практика, называется она
"не набита рука".
Но, если я вижу решение того или иного задания, то я сразу же понимаю почему те или иные действия выполнены при решение.
Всё правильно, так и пишут код и находят решения 80% программистов. Гуглят решения -> компонуют решения под свой проект -> делают рефакторинг кода(если требуется) -> получают деньги. PS: не все крутые дядьки сеньоры-помидоры отличаются от вас мозгами, просто они уже вложили от 2000 до 10 000 часов на изучения материала, на который вы потратили только 100-200 часов.
В этом вся разница.
но как разобраться со своей проблемой я не знаю.
Очень просто. Решать типовые(и не типовые) задачи(от самых простых, до более сложных)
по 5-8 часов в день,
и каждый месяц делать breackpoint, анализируя пройденный путь.
Если через полгода не будет результата - всё и правда плохо, и скорее всего вам нужно качать не только программирование,
но и умение логически и критически мыслить, умение деструктурировать задачи на под задачи.