Hej,
zdecydowanie warto kupić książkę. Należy łączyć naukę poprzez różne sposoby i platformy. Codzienna praktyka pozwoli na opanowanie programowania w dużo wyższym stopniu.
Proponuję łączyć: youtube (filmiki, tutoriale m.in. Pana Mirosława, ale nie tylko), książkę (Java - Thinking in Java, C++ - Symfonia C++ itd.), aplikacje na telefon (seria "Learn" lub Java Course), praktykę (samodzielne pisanie kodu, aplikacji, projektów, stron), internetowe akademie (codeacademy i inne) oraz testy jak codility.com.
To właśnie poprzez połączenie wielu technik i sumienną pracę osiągniesz efekty. :)
Pozdrawiam i życzę wytrwałości!