Traktuj dane zagadnienie jako cel i dziel ten cel na codzienne mniejsze cele, które zrealizujesz danego dnia - jeżeli nie rozplanujesz sobie nauki i nie zrozumiesz przez ten rozgardiasz podstaw potrzebnych do dalszej pracy to później będzie to miało swoje konsekwencje, bo jeżeli masz niestabilny fundament to cała konstrukcja Ci się rypnie :)
Mówisz, że poświęcasz 8-10h na naukę, ale czy ta nauka jest efektywna? Rozumiesz to czego się nauczyłeś i byłbyś w stanie np. zdobytą wiedzę w bardzo prosty sposób przekazać osobie, która nie zna się na temacie? Wykorzystujesz nowo nabyte umiejętności w praktyce?
Piszesz "Znam podstawy HTML5, CSSA, JavaScript", ale co Ci z samych podstaw? Łapiesz wiele srok za ogon zamiast skupiać się na opanowaniu danego języka i to moim zdaniem jest błąd.
Wymyśl projekt i nad nim pracuj a wraz z jego rozrastaniem poznawaj potrzebne ci technologie do realizacji jakiejś funkcji. Nikt od Ciebie nie będzie wymagał żebyś był chodzącą encyklopedią programowania :) Ktoś daje ci jakiś projekt do wykonania a ty musisz dysponować mechanizmami, które doprowadzą cię do jego skutecznej realizacji.