...
Vymysli si nějakou alespoň trochu smysluplnou (a pokud možno serverovou) aplikaci, která bude zpracovávat data, ukládat je do DB a prezentovat přes web nebo web service. Ideálně cokoliv z tvých zájmových oblastí (IT i ne-IT), protože pak budeš rozumět danému oboru a nebude tě (při učení se EE, záměrně nepíšu Java EE) tolik zatěžovat analýza a dekompozice oborových problémů, a také tě to pravděpodobně bude více bavit, než jen číst nějakou suchou dokumentaci.
Pak si stanov přibližnou architekturu (např. třívrstvá s MVC frontendem), stačí opravdu rámcově, protože to beztak netrefíš optimálně a několikrát to mezitím přehodnotíš. Určitě si přečti něco o Inversion of Control/Dependency Injection patternu, protože tomu se jako jedinému nevyhneš, a pokud ano, tak stejně je o něm dobré vědět.
Vyber si nejdůležitější runtime technologie (databázi, aplikační framework atd.), napiš v tom
hello world a rozběhej to na aplikačním serveru. Pokud tě to ještě nepřestalo bavit, tak si nadefinuj základní doménový a datový model a začni psát.
Začni třeba perzistencí, tzn. nějaká ta DB tabulka, nad tím DAO, nadefinuj si nějaké interfacy se základními metodami, připrav si kostru pro business logiku (pro začátek žádnou mít nebudeš), nacpi data do DB a pokus se výstup zobrazit na webu. Pro každou z těchto oblastí si najdi libovolnou technologii, která se na to používá, a o které si myslíš, že se na to bude hodit, a pokus se to v tom implementovat. Nemusí to být jen a pouze Java EE, ale i alternativní typu Spring, OSGi apod. (viz závěr). Googli fráze typu "Hibernate vs JPA", "EJB vs Spring" atd. a podle toho se rozhoduj. Přečti si také ty "kecy pro manažery", jak někdo uváděl, případně něco málo z dokumentace, ale nepřeháněj to, cíl je jen pochopit, k čemu to slouží a jak se to používá.
Pokud možno se snaž psát vše čistě a striktně podle filosofie dané technologie. Vyhni se tedy workaroundům, a když si s něčím nebudeš vědět rady (a sem patří i to, jak napsat
hello world v dané technologii), tak si to najdi v dokumentaci nebo v tutoriálech. Až teprve když si budeš 100% jistý, že zvolená technologie je jak drbání se levou nohou za pravým uchem, tak zvol jinou a přepiš to do ní.
Až to bude tak nějak fungovat, tak aplikaci začni vylepšovat, přidávej další funkce, zaměř se na problémy, pro které jsi ještě nepoužil nějaký typ technologie, který se chceš naučit, např. udělej web servicu a k ní vzdáleného klienta. Nebo si spoj aplikace do clusteru. Cokoliv tě napadne.
Časem se ti aplikace tak rozroste, že jednak zjistíš, že ji za celý svůj život sám nedokončíš. A dále kromě toho zjistíš i to, že beztak všechny techologie jsou si víceméně podobné, že se s evolucí různé principy a postupy opouštějí, nahrazují novými, a po nějakém čase se zase vracejí (ve vylepšené podobně), a tak pořád dokola. Anebo že nějaká technologie považovaná za horší postupně přebírá dobré věci z jiných, až se nakonec stane v daném čase nejlepší. Hlavní je pochopit, že důležité je znát ty principy a umět se k nim doučit vždy aktuální technologii. A že mít třeba certifikát na nějakou technologii se sice může momentálně hodit a dostat tě to i na hodně slušné pozice, ale za pár let to zase bude úplně k ničemu. Anebo že to je k ničemu hned od začátku.