MongoDb online kurzy

education_mongodb Systematické vzdělávání je pro programátory holou nutností a naše doba nám k tomu dává výjimečné příležitosti. Když jsem s programováním začínal, byl jsem rád, když mi otec sehnal od známého z PVT nějakou vysloužilou knížku o programování v Basicu - a to byl můj jediný zdroj informací. Knížka byla v angličtině a plno věcí jsem tehdy ani nepochopil. Informací bylo pomálu a řada z nich byla už tenkrát zastaralá (mluvím o roce 93). Před příchodem Internetu bylo sdílení informací a možnost vzdělávání se v IT zkrátka velmi omezené a složité.

Letos poprvé jsem zakusil kouzlo on-line výukových kurzů a jsem z toho úplně u vytržení - každý z nás má nyní možnost naučit se plno věcí (často zdarma) od profesionálů svého oboru, kteří vám smysluplně odkryjí pozadí a souvislosti konkrétních technologií a přístupů. Myslím, že člověk by musel být hlupák, aby něčeho podobného nevyužil a sám se na sebe zlobím, že mi trvalo tak dlouho, než jsem tyto poklady objevil.

Portálů pro on-line výuku je v dnešní době celá řada: Coursera, TreeHouse, CodeAcademy, CodeSchool nebo třeba Khanova škola (ačkoliv tam je většina obsahu ne-IT). Nedávno se v podobném duchu rozepisoval i Tomáš Dvořák na svém blogu.  Já se dneska ale rozepíšu o tom, jak probíhá výuka na education.mongodb.com.

Kurzy probíhají 7 týdnů, přičemž každý týden vyžaduje 2-4 hodiny práce. To jsou poměrně rozumné nároky, které se dají zvládnout i při práci, rodině a dalších povinnostech. Na Coursera jsou kurzy náročnější (kolem 10 hodin týdně) a zatím si neumím úplně představit, jak bych to stíhal.

Každý týden se otevře nová sada video přednášek zakončená několika domácími úkoly. Přednášky trvají jen několik málo minut (3-10) a většina z nich je zakončena jednoduchým kvízem. Kurz je zakončen zkouškou, která je složená z 10 úloh podobajících se domácím úkolům, které se řeší v průběhu kurzu. Pro získání certifikátu je potřeba získat 65% bodů z domácích úloh a konečné zkoušky.

Velmi příjemně mě překvapila úroveň automatizace výuky. Způsob, jakým byl kurz připraven, umožňuje v několika málo lidech zvládnout stovky paralelních studentů. Videa s přednáškami jsou připravena 2 vyučujícími, kvízy jsou plně automatizované a ke každému následuje krátký video rozbor správných a špatných odpovědí. V prostředí prohlížeče je dokonce možné používat konzoli MongoDB databáze, která vám umožňuje pracovat s vaší vlastní izolovanou kolekcí na straně serveru (kterou si můžete kdykoliv obnovit do původního stavu).

Ověřování výsledků domácích úkolů a závěrečné zkoušky je taktéž automatizované. Buď vkládáte zpátky do prohlížeče nějaký údaj zjištěný na základě dotazů do MongoDB nad předpřipravenou sadou dat nebo spouštíte validační program napsaný v Pythonu, který ověří správnost řešení na vašem lokálním vývojovém prostředí a sám odešle validační kód na výukový server. Zkrátka už jen způsob výuky je jistým způsobem inspirující.

Kurz projde základy práce s MongoDB:

  • instalaci databáze na lokální stroj, zprovoznění ukázkového projektu (Maven, Java, Spark), základy JSON formátu
  • základy dotazování a persistence dat v Mongo, práce s MongoShellem
  • základy návrhu datových struktur v Mongo, klady a zápory různých přístupů k rozdělení datových struktur (Mongo neumí joiny)
  • výkonnostní aspekty, práce s indexy, analýza běhu dotazů (explain)
  • agregační dotazy - práce s řetězením dotazů, analogie s SQL group by a having
  • architektura systému - replikace a sharding (se zprovozněním replikovaného prostředí na lokálním prostředí)
  • a na závěr interview s architekty z Foursquare a CodeAcademy ohledně použití Mongo v prostředí rozsáhlých instalací

Závěrem mohu kurz M101J rozhodně doporučit. Pro mě osobně byl přínos hlavně v tom, že mě donutil systematicky se probírané látce každý týden věnovat. Za 7 týdnů jsem z téměř nulové znalosti MongoDB získal dostatek informací k tomu, abych si dokázal vyzkoušet praktické použití na nějakém komerčním projektu s jistou dávkou jistoty, že nenarazím na problémy hned za druhým rohem.