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