Posledních 5 dní jsem nedělal nic jiného, než se učil na certifikaci 70-536 (.NET Framework 2.0 - Application Development Foundation). Jedná se o certifikaci základních znalostí a přehledu o .NET Frameworku. Vzhledem k tomu, že jsem na Internetu o této zkoušce našel v češtině jen asi dva postřehy, přidám se i já se svou troškou do mlýna.
Je pravda, že jsem tento typ zkoušek a certifikací nikdy neměl moc rád a neměl jsem motivaci jej podstupovat, i když poslední 3 roky jsem si říkal, že bych si nějakou mohl udělat. Samozřejmě vždycky se to odložilo na neurčito, až teď mě k tomu víceméně donutily okolnosti.
Co se týče přípravy, docela jsem to odfláknul s tím, že s .NET frameworkem mám dlouholeté praktické zkušenosti, ukázalo se ale, že to nestačí. Pečlivě jsem si prostudoval oficiální publikaci Microsoft Self-Paced Training Kit pro tuto zkoušku, kde jsem se dozvěděl spoustu věcí, které jsem neznal, protože jsem je nikdy na nic nepotřeboval. Co je ke zkoušce potřeba umět? Detailní popis je na webu Microsoftu, tohle je jenom seznam kapitol, které jsou v knize. Kniha
- Základní znalosti (hodnotové a referenční typy, syntaxe C# resp. VB.NET, konverze datových typů)
- IO (filesystém, IsolatedStorage, streamy)
- Práce s textem (kódování, regulární výrazy)
- Kolekce a generika
- Serializace (binární, SOAP, XML)
- Grafika (GDI+)
- Vlákna (Thread, ThreadPool, synchronizační primitiva – Monitor, Mutex, Semaphore, AutoResetEvent, ManualResetEvent, asynchronní volání)
- Aplikační domény a služby (AppDomain, Windows Services)
- Instalace a konfigurace aplikací (ConfigurationManager, Installer, ConfigurationSection)
- Instrumentation (práce s EventLogem, Debug a Trace, PerformanceCountery, WMI)
- Zabezpečení aplikací (Code Access Security)
- Zabezpečení dat (autentizace a autorizace, ACL, šifrování)
- Interoperation (používání COM objektů, ComVisible, P/Invoke)
- Reflection (Assembly atributy, Reflection obecně, Reflection.Emit)
- Mailování
- Lokalizace a národní prostředí
Jednotlivé kapitoly jsou probírány relativně do hloubky, některé by ale mohly býti detailnější, jiné zase zbytečně nutí člověka pamatovat si věci, které mu stejně poradí IntelliSense ve Visual Studiu.
Za sebe můžu říct, že jsem neměl problém s kapitolami 1-7 a 13-16, protože to jsou věci, které v praxi používám velice často. Ale třeba s aplikačními doménami jsem nikdy nepracoval (jenom jsem věděl, že existují), to samé s Code Access Security. Díky této zkoušce jsem se tedy potřebné věci naučil, abych je zase zanedlouho zapomněl, protože nemyslím, že je v dohledné době budu potřebovat. Ale určitě jsem za to rád, člověk má hned větší přehled.
Na zkoušku máte něco přes 3 hodiny, je 40 otázek (většinou vybíráte jednu z několika možností, někdy je možností více, a párkrát máte asi 7 položek s popisem nějakých činností a máte z nich vybrat 3 a určit pořadí, v jakém se mají udělat, abyste dosáhli toho, co chce zadání). Obecně otázky nejsou těžké, je to hodně o zapamatování názvů tříd a funkcí, což mi trochu vadilo. Většina otázek bylo jednoduchých (většinou se jelo vylučovací metodou, pokud jste ve 3 možnostech našli nějakou hovadinu), jen pár jich bylo záludných.
Docela zajímavé osobní problémy jsem měl s aplikací, ve které se test vyplňuje – během zkoušky mi asi 6x spadla (nechápu, proč si na to Microsoft nevyvine nějakou svoji a používá takový bastl spolu s ostatními firmami, jejichž certifikační cesty na ní také jedou). No, skočil jsem úspěšně skoro hodinu před koncem (docela dost času se strávilo řešením potíží). Bodů pro splnění zkoušky bylo potřeba 700 (asi z 1000, ale to si nejsem úplně jistý), já jsem měl něco přes 900, takže rezerva byla.
Jinak mnoho lidí tvrdí, že tyhle certifikace k ničemu nejsou, já si myslím, že to není tak úplně pravda. Jistě, daleko lepší je člověka prakticky vyzkoušet a nechat ho napsat kus kódu, ale na druhou stranu pokud zkouškou projdete, tak prokazujete, že máte o .NET Frameworku základní přehled. Bohužel musím konstatovat, že to není až taková samozřejmost. Hodně lidí umí jednu konkrétní věc či podmnožinu, ale naprosto netuší souvislosti, které jsou také potřeba. Rozhodně mi příprava na zkoušku něco dala.
Zjistil jsem, že se vyplatí obětovat 3 dny přečtením knihy a naučit se základní věci o nějaké nové technologii, než to pořád odkládat s tím, že na to člověk nemá čas, což jsem dělal poslední 2 roky. Jasně že se novou technologii člověk nenaučí přečtením knihy, ale dokope se k tomu hrát si s tím a získá alespoň základ, na kterém může stavět. Poslední dobou mi tak nějak připadá, že mi ujel vlak – přišlo mnoho nových technologií (WCF, WPF, Silverlight atd.) a já o nich moc nevím (a nic mě nemotivuje naučit se je, protože se to dá hodit na někoho jiného). Budu to muset nějak napravit.