Проблема в изучении программированию

Я изучаю C# и уже знаю основы и поверхностно ООП (задачи с его использованием уже решал, правда простенькие). Так же пытаюсь закреплять знания с помощью Unity, т.к хочу в будущем работать с этим движком.

Все это конечно хорошо, но суть проблемы в том, что я не могу написать какие либо алгоритмы самостоятельно, но если я увижу их реализацию у других, то мне становится понятно что за что отвечает и как работает. Например если я хочу реализовать взаимодействие персонажа с другими объектами, то я сталкиваюсь с тем, что не понимаю как это сделать, но посмотрев готовое решение, я сразу же понимаю что к чему и как работает, при этом сам в процессе решения об этом даже не догадывался, хотя там есть все, что я уже проходил.

Возможно это нехватка практики? Или неправильный подход к обучению? Как бы посоветовали учиться?

А что за взаимодействие и на каком этапе проблемы?
Если есть примерное понимание о применимых для решения таких задач компонентах (например, что для активации какого-то действия при подходе к определенному месту можно использовать колайдер/тригер), то можно гуглить не полное решение всей задачи, а более мелкие подзадачи (как обрабатывать срабатывание тригера, как реализовать части нужного действия типа “повернуть объект в эту сторону”, “сделать, чтоб он шел к этой точке”, “сделать задержку между этими действиями”, …).

Тут не описано какой сейчас подход, но вообще правильность подхода сложно оценить, разные люди достигали успеха с разными подходами, какой подход лучше не особо понятно )

Я изучаю теорию, после чего пытаюсь закрепить полученные знания на практике.
Проблема именно в том, что например когда у меня есть задача - реализовать прыжки для персонажа, я не понимаю как это сделать.
Да, в голове я продумываю логику: сначала нужно проверить стоит ли персонаж на земле, после чего при нажатии определенной кнопки переместить его вверх с какой то силой. Но написать этот код я не могу, хотя если посмотрю реализацию этой механики в гугле, то все становится просто и понятно. И так происходит с любой задачей

Записывай возникающие вопросы, найденные решения, а также спрашивай поисковики по всем вопросам ( phind.com ), очень удобно стало сейчас программировать. Но если есть много свободного времени, то можно почитать книги по программированию.

То, что ты не можешь что-то сделать сам, это означает, что нехватает знания мелких деталей. Это нормально, не надо пугаться, люди всему учатся.