Но, я прекрасно понимаю, что делает определенная строка кода, что нужно изменить, чтобы заработало так, как нужно мне и т.д.
Но не могу написать все сам с нуля, что-то вылетает из головы, что-то забываю, и снова приходится подглядывать.
Это называется "иллюзией компетентности", ваш мозг вас обманывает.
Важно правильно работать с учебным кодом. Не запускать скачанный с сайта издательства код, а набирать его самостоятельно, после прочтения главы, и пытаться запустить. Если запуск не получается, то главу вы не поняли и её надо перечитать. После того, как запуск удался, можно сравнивать свой код с кодом автора. Стоит поэкспериментировать с кодом, внести в него несколько изменений, чтобы убедиться, что вы действительно понимаете, как он работает, а не просто успешно повторили заученные действия.
P.S. У вас заголовок вопроса расходится с текстом. Непонятно на что именно отвечать.