V tomto textu představím přehled špičkových online zdrojů, které vám pomohou s výukou a osvojením si programovacího jazyka Go.
Jelikož každý preferuje jiný styl učení, zaměřím se na textové materiály, tutoriály, video lekce a populární kurzy týkající se Go.
Popularita Go neustále roste a jakmile se do něj ponoříte, pravděpodobně si ho zamilujete.
Komplexní průvodce pro vývojáře
S přibližně 50 000 studenty se jedná o jeden z nejlepších a nejucelenějších kurzů, který vás Go naučí od základů. Tento kurz je důkladně otestován a vyhovuje většině studentů. Po zakoupení získáte trvalý přístup k obsahu. Pokud dáváte přednost výuce prostřednictvím kompletních video kurzů, je toto skvělá volba!
Tento kurz je vhodný pro začátečníky i pro ty, kteří si chtějí oživit základy. Kurz obsahuje 9 hodin videozáznamů na vyžádání, doplněných o zdrojové kódy a praktické úkoly.
Témata, která tento kurz pokrývá, zahrnují například:
- Nastavení, instalaci a základy jazyka.
- Balíčky a strukturu souborů
- Proměnné, funkce, pole a řezy
- Detailní pohled na mapy, struktury a rozhraní
- Kanály a gorutiny (paralelní programování)
Bootcamp
S více než 300 přednáškami je kompletní Bootcamp kurz na platformě Udemy bezpochyby výbornou investicí a skvělým místem, kde se naučit Go. Během kurzu se naučíte vytvářet aplikace jako například:
- Analyzátor logů
- Skener souborů
- Filtr nevyžádané pošty
Navíc kurz nabízí více než 1000 praktických cvičení.
Kromě základních konceptů Go, jako jsou struktury, rozhraní a kanály, obsahuje tento kurz i zajímavý projekt, kde se naučíte animovat poskakující míček.
Po dokončení kurzu obdržíte certifikát o absolvování.
Prohlídka Go
Osobně jsem velkým fanouškem oficiální dokumentace, blogů a tutoriálů jazyka Go. Tento interaktivní kurz je zcela zdarma a nevyžaduje žádnou lokální instalaci. Stačí otevřít webovou stránku a začít se učit od základů s praktickými ukázkami kódu pro každé téma.
Tento kurz je ideální pro ty, kteří chtějí Go prozkoumat a naučit se jeho základy bez nutnosti jakéhokoli nastavování.
Go v příkladech
Nejedná se o kompletní kurz, ale spíše o místo, kde si můžete osvěžit základy. Stránka pokrývá všechny koncepty s krátkým úvodním textem a kompletními funkčními příklady. Stránka je maximálně jednoduchá, a tím se soustředí na učení. Mezi základní úvodní témata patří:
- Proměnné a konstanty
- Cyklus for
- Příkazy If/Else a Switch
- Pole a řezy
- Mapy
- Rozsah
- Funkce
a téměř všechna témata, která budete potřebovat! Určitě se na to podívejte a uložte si to pro budoucí použití.
Naučte se X za Y minut
Pokud chcete rychlý přehled základů, „Naučte se X za Y minut“ je skvělým zdrojem nejen pro Go, ale i pro téměř každý programovací jazyk. Jedná se o komunitní projekt, který pokrývá mnoho témat na jedné stránce. Až se v Go zdokonalíte, můžete i vy přispět.
Zde je úryvek kódu z tutoriálu, který vysvětluje paralelní programování v jedné funkci.
// We'll use inc to increment some numbers concurrently. func learnConcurrency() { // Same make function used earlier to make a slice. Make allocates and // initializes slices, maps, and channels. c := make(chan int) // Start three concurrent goroutines. Numbers will be incremented // concurrently, perhaps in parallel if the machine is capable and // properly configured. All three send to the same channel. go inc(0, c) // go is a statement that starts a new goroutine. go inc(10, c) go inc(-805, c) // Read three results from the channel and print them out. // There is no telling in what order the results will arrive! fmt.Println(<-c, <-c, <-c) // channel on right, <- is "receive" operator. cs := make(chan string) // Another channel, this one handles strings. ccs := make(chan chan string) // A channel of string channels. go func() { c <- 84 }() // Start a new goroutine just to send a value. go func() { cs <- "wordy" }() // Again, for cs this time. // Select has syntax like a switch statement but each case involves // a channel operation. It selects a case at random out of the cases // that are ready to communicate. select { case i := <-c: // The value received can be assigned to a variable, fmt.Printf("it's a %T", i) case <-cs: // or the value received can be discarded. fmt.Println("it's a string") case <-ccs: // Empty channel, not ready for communication. fmt.Println("didn't happen.") } // At this point a value was taken from either c or cs. One of the two // goroutines started above has completed, the other will remain blocked. learnWebProgramming() // Go does it. You want to do it too. }
Je to stručné a výstižné. Vyzkoušejte to, pokud chcete rychlý přehled konkrétních témat pro Go.
Gotime
Pokud dáváte přednost audio výuce, Gotime je dobrý podcast. Mnoho skvělých vývojářů sdílí své praktické znalosti a zkušenosti s používáním Go ve svých firmách. Měli byste se také podívat na GopherCon (konferenci o Go), kde významní odborníci sdílejí své poznatky s komunitou.
Tyto komunity diskutují o nejnovějších trendech a vylepšeních v oblasti Go.
Zde je několik oblíbených podcastů:
Knihy
Existuje spousta kvalitních knih. Zde je několik populárních:
Blogy
V oblasti Go existuje několik velmi dobrých blogů. Také na platformě Medium je mnoho článků, které můžete prozkoumat. Zde je pár užitečných tipů:
Youtube
Preferujete video výuku?
Podívejte se na tento tutoriál pro začátečníky v Go od freeCodeCamp:
Závěr
Pokud jste začátečník, doporučuji vám absolvovat některý z výše uvedených kurzů a zapojit se do komunity Go. Sdílejte své zkušenosti s ostatními a přispívejte k tomu, aby se Go stalo ještě lepším. Doufám, že vám tento článek byl užitečný a přeji vám hodně štěstí na vaší cestě s Go.