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.