Některé z nejlepších zdrojů pro zvládnutí Golangu

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.