Когда картина выглядит так:
- повторял упражнения по книге, все было просто,
- начал что-то делать сам - ничего не понятно
... это означает, что вам вообще ничего не понятно. Чтобы переписывать код из книжки, понимание не требуется. И от переписывания оно не образуется.
Чтобы действительно изучать язык, нужно самостоятельно писать что-то свое с самого начала, как только вы будете в состоянии написать пять осмысленных строчек кода.
Чтобы изучать программирование, нужно не только запомнить синтаксис языка, но и научиться создавать и комбинировать алгоритмы, логику. Это делается путем, опять же, самостоятельного написания простых программ и последующего их усложнения и совершенствования.
Не делайте глупостей и не перескакивайте с языка на язык - это не поможет. Ваша проблема - не язык, а собственное мышление, которое не адаптировалось к задачам программирования. И на это уходит больше времени, чем на запоминание синтаксиса языка.