Ciężko odpowiedzieć na takie pytanie, to jest trochę tak jakby odpowiedzieć na to ile czasu zajęła komuś nauka chodzenia. To przychodzi samo, trzeba się uczyć, rozwijać. Same technologie też są w ciągłym rozwoju. Uczysz się cały czas. Tak jak z chodzeniem, zanim staniesz do pionu to podnosisz głowę, siadasz, raczkujesz, chodzisz przy meblach, chodzisz sam, biegasz, skaczesz. Najpierw się musisz poobijać...
Zaczynasz od podstaw i idziesz kolejno, książki zazwyczaj są dobrze ułożone, od podstaw w górę.
Nie zawracaj sobie głowy dużymi systemami tylko przerabiaj małe rozwiązania. Każdy wielki projekt składa się z wielu małych rozwiązań.
Wątpię żeby do poprawnego projektowania starczyło przerobienie jednej książki, to zbyt wielki świat żeby go zmieścić w książce.
Składni nauczyć się stosunkowo gładko. Najważniejsze jest nauczenie się logiki programowania, wydajności, wzorców jeśli się nauczysz logiki programowania to będziesz mógł pisać programy w wielu językach gdyż reguły są w zasadzie identyczne.
No i jeszcze trzeba pamiętać że każdy różnie przyswaja wiedzę, jeden wolniej inny szybciej a jeszcze inny wcale.
Najlepsza ze znanych mi metod nauki to metoda szukania rozwiązań dla innych

Ja najwięcej skorzystałem gdy udzielałem odpowiedzi na forach. Najczęściej nie znałem odpowiedzi na wiele pytań zadanych przez innych. Szukałem ich w książkach, helpie, necie itp. i odpowiadałem. Pytający się, podziwiali nieraz zasób mojej wiedzy (nie powiem że mnie to nie satysfakcjonowało ), nie wiedzieli jednak że w chwili zadawania pytania często byłem tak samo „głupi” w danym problemie jak oni. I przestawałem być głupi jak odpowiedziałem im i … sobie. Dużo wygrałem, bo dla każdego rozwiązałem po jednym lub po kilka problemów a dla siebie setki a może i tysiące. Wyszedłem lepiej
Tak, uczyć innych to najlepsza szkoła dla siebie. Korzystniej jest szukać odpowiedzi niż zadawać pytania.