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