Aneb co jsem se naučil v kurzu MongoDB pro Java vývojáře a proč byste jej měli absolvovat také.

Před pár dny jsem dokončil kurz MongoDB for Java Developers a jsem doslova nadšen. Perfektní elearning, zajímavá témata a mnoho tipů z praxe. Navíc je kurz zdarma a neklade nároky na přesný čas, kdy musíte u počítače sedět. Co víc si přát.

mongodb

Proč si vůbec dělat kurz?

S MongoDB už mám nějakou praxi, v posledním zaměstnání jsme nad ním postavili nástroj pro sledování návštěvnosti webů a dva roky jej vylepšovali a rozvíjeli. Kurz jsem si tedy zapsal pro to, abych ověřil, že nemám ve vzdělání mezery a nedělám něco vyloženě špatně.

A musím uznat, mnoho jsem toho nevěděl a spoustu věcí dělal mizerně. Špatně jsem navrhoval indexy, spoustu věcí počítal zbytečně až v aplikaci, protože jsem neznal aggregation framework.  

Otevřené termíny

Pokud vás MongoDB zajímá, neváhejte a zapište se taky. Termíny jsou následující:

MongoDB for Java developers: 6.1.2014

MongoDB for Node.js developers: 13.1.2014

MongoDB for Python developers: 25.11.2013

MongoDB for DBAs (pro adminy): 9.12.2013

 

Organizace studia

Každý týden přibývá nová sada přednášek, cvičení a domácích úkolů. Máte tak celý týden na studium a úkoly, nemusíte se časově přizpůsobovat.

Látka je probírána velmi srozumitelně, každé video má okolo 4 minut a po něm většinou následuje kvíz, abyste si ověřili, že jste téma dobře pochopili. Kvízy se nezapočítávají do finálního hodnocení.

Týdně musíte vypracovat domácí úkoly. Je jich zhruba 5 a každý zabere pár minut, půl hodiny maximálně. Často je zadáním naimportovat data, nad nimi provést nějaký výpočet a výsledek zadat zpět do elearningu. Nebo dostanete předpřipravený java projekt (blogový systém) a máte za úkol dopsat část funkcionality. Například načtení blogpostu podle jeho URL. 

Pokud se vám povede dosáhnout 65% finálního hodnocení, obdržíte certifikát o absolvování kurzu (PDF e-mailem). Hodnocení je tvořeno z 50% domácími úkoly (3 pokusy na každé odevzdání, nejhorší týden není započítán) a z 50% závěrečným testem (10 otázek podobných těm v domácích úkolech). 

Jestli umíte trochu s Javou, nebudete mít problém kurz absolvovat. Jde o jednoduchý kód a Java není v tomhle kurzu to podstatné. Seznámíte se s driverem pro MongoDB a naučíte se pracovat s daty, které vrací a bere jako parametry. Nic složitého.

Kurz je rozdělen do sedmi týdnů s následujícími tématy: 

Introduction

Co je to nerelační/dokumentová/bezschémová databáze a proč ji použít? Jaké jsou rozdíly oproti relačním (např. MySQL) databázím?

V jakém formátu jsou data ukládána a načítána, co je JSON a BSON?

K absolvování kurzu na vašem PC bude potřeba instalace MongoDB, Maven, Java a PyMongo (pro validační scripty). Jak nástroje instalovat a nastavit, je také součástí této lekce.

CRUD

Create, Read, Update a Delete. Základní operace pro práci s databází. Naučíte se, jak tvořit dotazy, konfigurovat kritéria a pracovat s dokumenty.

Schema design

Modelování dat, normalizace a denormalizace, vazby a embeddování dokumentů. Jak přejít ze světa relačních databází, kde jsou data rozsypána v mnoha tabulkách, do světa dokumentů. Kdy je normalizace zbytečná a kdy vhodným designem můžeme výrazně zlepšit výkon. Jak přežít bez transakcí?

Performance

Indexy nad kolekcemi, profilování query, explain příkaz pro lepší porozumění zpracování dotazu. Naučíte se pracovat s MongoDB tak, aby databáze nezdržovala a nebyla nejslabším článkem řetězu.

Aggregation

Framework pro agregaci dat, pro mě největší překvapení a nejzajímavější část. Mongo umí pracovat nad kolekcí metodou pipeline, známou z unixového světa. Můžete řetězit bloky za sebe a filtrovat, aggregovat a transformovat data. Velmi elegantně tak jde řešit group by z SQL světa a mnoho dalších problémů. 

Application engeneering

Replikace, sharding, write concern. Jak škálovat databázi, zajistit odolnost proti výpadkům a zvýšit výkon řešení. 

Case studies + final exam

Případové studie z foursquare a codeacademy. Tato lekce nemá domácí úkoly ani kvízy, je ale třeba vypracovat 10 otázek pro finální zkoušku. Nejste limitováni pokusy a výsledky se zpracují až na konci týdne. Do té doby můžete své odpovědi měnit.

Jak jsem dopadl já?

Moc jsem si kurz užil a už vybírám další, na který se vrhnu. Buď to bude kurz pro adminy nebo Node.js vývojáře. A z toho pro Javu mám 100% :-)

Další kurzy, jiná témata

Velmi pěkný souhrn kurzů a zdrojů sepsal Michal Pávek na svém blogu: http://blog.pavek.net/2013/10/online-kurzy-podzim-2013/