Zrovna včera uvedl Dagi svůj článek Začátky s Javou: kde, co, proč, jak zkompilovat a spustit. V naší pozdější emailové diskusi jsme nastínili otázku, zda má smysl nechat se v Javě “vyškolit” a urychlit tak typické začátečnické tápání. Dovolím si začít od píky: Chci shrnout, jak probíhalo mé první seznamování s tímto jazykem.
Java na VŠE
Mnoho začínajích programátorů se jazyk začne učit na škole. Studuji VŠE a naše Katedra informačních technologií nabízí několik kurzů Javy. Zatím jsem absoloval IT_113 Úvod do programování a IT_115 Základy softwarového inženýrství. V těchto předmětech jsou studenti seznámeni se základními principy fungování jazyka a na několika jednoduchých programech se pak snaží poznatky aplikovat v praxi. Jde skutečně jen o základní seznámení, samostudium teorie a hlavně vlastní zkoušení v praxi je naprosto nezbytné. Kurzy jsou velmi stručné a věcné, není čas zabíhat do podrobností, avšak jako základní uvedení do problému jsou dostačující.
Měl jsem jednoznačnou výhodu, že jsem již základy znal a proto mi absolování nedělalo (a nedělá) větší problém. Právě však rychlé tempo a potřeba vtěsnat X poznatků do Y hodin může být pro nováčka ubíjející a osobně se domnívám, že by tento kurz měly povinně předcházet obecné základy objektového programování. Prostě a jasně - Java není jazyk, jehož základy se může člověk bez předchozí znalosti programování naučit ovládat za půl roku při frekvenci 3 hodiny týdně.
Velmi mě překvapilo(nevím, zda je to problém i na ostatních školách), jak studenti málo komunikují. Namísto, aby využili konzultačních hodin, kde se jim velmi vstřícný vyučující bude věnovat a ochotně jim zodpoví všechny dotazy, raději něco “zmastí po večerech” a výsledek tomu pak odpovídá. Myslím však, že neochota/neschopnost komunikovat je hlavním nedostatkem naší společnosti obecně.
Java pro “neškoláky”
Další (relativně rychlou) možností, jak získat základní přehled o Javě jsou specializovaná školení. Začneme u zdroje.
Školení Sun Microsystems
Sun pořádá celé spektrum školení v Javě-sestaví plán školení a certifikace. Ceny jsou však velmi vysoké. Osobně jsem na žádném nebyl, takže nemůžu hodnotit kvalitu lektora a studijní materiály. Uvítám názor účastníka.
Školení v Amaio Technologies
Na Amaio jsem narazil díky Bruce Eckelovi a jeho Thinking in Java. Rovněž ceny za školení jsou nižší než od Sunu. Pro nováčka, za kterým nestojí firma, která mu školení zaplatí je těžké se rozhodnout pro nemalou investici do svého rozvoje.
Zde jsem absoloval 3 školení:
J100 Úvod do programování v Javě pro neprogramátory
J110 Základy programování v jazyku Java
J120 Pokračujeme s Javou
Kvalita školení je na vysoké úrovni, lektor (Rudolf Pecinovský) velmi zkušený a trpělivý. Jako podklady ke studiu používá své vlastní materiály-vše je podrobně a dobře vysvětleno.
Uvedený set školení mi dobře posloužil i jako základní příprava na certifikační zkoušku.
Tyto školení (a ani žádné jiné) v žádném případě nenahradí samostudium. Zde však má absolvent obrovskou výhodu, že zná základy-není tak zahlcen zbytečnými informace a ví, co se kdy používá. Nejde tak cestou pokus-omyl (nejhorší možná varianta).
Rudolf Pecinovský má také vlastní stránky o výuce. Na nich uveřejňuje postupně kapitoly budoucí knihy “Myslíme objektově v jazyku Java 1.5″. Nutno říci, že je tato kniha již teď kvalitou zpracování a výtečným podáním skvělým odrazovým můstkem pro nové programátory. Autorovi držím palce!
Závěrem-školení ukáže dveře, ale projít musíme sami. Vynaložené náklady nebyly malé, ale rozhodně nelituji této investice. Nejvíce si cením toho, že mě lektor vždy dokázal včas zarazit, když jsem něco interpretoval špatně, byl schopen nastínit problém z několika stran a kladl důraz na používání v praxi. Prostě se dobře vyzná a ví, jak věc vysvětlit.
Samostudium
Zdá se, že samostudium je při porovnání se školením levnější varianta. Po mých zkušenostech však nedoporučuji začínat od píky sám, pokud nemáte po ruce zkušenějšího kolegu/dobrou emailovou konferenci s velmi trpělivými programátory a hlavně spoustu času. U samostudia se velmi často aplikuje metoda pokus-omyl a strávený čas nad zbytečným “vynalézáním kola” taky něco stojí.
Přímo se nabízí uvést zdroje v češtině, se kterými jsem začínal souběžně se školeními:
Materiály od Rudolfa Pecinovkého
Již zmíněno.
Bruce Eckel-myslíme v jazyku Java.
Velmi obsáhlá kniha, bohužel příšerně přeložená (Bogdan Kishka). Doporučuji číst anglický originál, který je k dispozici zdarma. Spousta omáčky, místy román a odskakování od tématu. Avšak v čestině zatím nic lepšího nemáme (IMHO to zlomí právě Rudolf Pecinovský svou knihou). Povinným úkolem pro každého čtenáře je splnění úkolů z probíraných kapitol! Někdy je to jediná cesta, jak pochopit probíranou problematiku.
Pavel Herout: Učebnice jazyka Java
Dobrá kniha, stručná, věcná, bez omáčky. Já bych tam ale dal více úkolů pro čtenáře :).
Joshua Bloch: Java efektivně-57 zásad softwarového experta
Doporučuji přečíst až po předchozích 2/3 knížkách. Autor je jeden z autorů Javy, kniha je VELMI výživná a někdy doporučení spíše překvapí (třeba rada #37 Optimalizujte rozumně), ale autor vždy dokáže, že se v problematice dokonale vyzná a přesvědčí nevěřící.
Překlad je velmi dobrý (Karel Voráček) a (mně) jasný.
ZÁVĚR: Jak jste začínali vy? Máte praktickou zkušenost se školením v Javě? Co literatura?
UPDATE 09.06.2004: R. Pecinovský mě informoval, že na podzim chystá Amaio první kurzy platformy J2EE.