U ovom tekstu predstaviću vam neke od najkvalitetnijih izvora koji se mogu naći na internetu, a koji su namenjeni učenju i usavršavanju programskog jezika Go (Golang).
Budući da svaki pojedinac preferira različite metode učenja, obuhvatiću tekstualne članke, tutorijale, video sadržaje i popularne kurseve posvećene Go-u.
Go beleži izuzetno brz rast popularnosti, a kada počnete da ga istražujete, verovatno ćete se zaljubiti u njega.
Vodič za programere
Ovaj kurs, sa preko 50.000 polaznika, smatra se jednim od najboljih i najkompletnijih za učenje Go-a od samog početka. Kurs je temeljno testiran i pokazao se efikasnim za većinu polaznika. Jednom kada ga kupite, dobijate doživotni pristup. Ako preferirate učenje kroz sveobuhvatne video kurseve, ovo je pravi izbor za vas!
Ovaj kurs je idealan kako za početnike, tako i za one koji žele da ponove osnovne koncepte. Sadrži 9 sati video materijala na zahtev, uz dodatne resurse sa kodovima i zadacima.
Neke od tema koje su obrađene u okviru ovog kursa uključuju:
- Podešavanje, instalacija i osnove jezika.
- Paketi i strukture datoteka
- Promenljive, funkcije, nizovi i isečci
- Detaljno obrađivanje mapa, struktura i interfejsa
- Kanali i rutine (konkurentno programiranje)
Centar za obuku
Sa više od 300 predavanja, kompletan Bootcamp kurs na platformi Udemy je odlična investicija i pravo mesto za učenje Go-a. Učite kroz izradu aplikacija kao što su:
- Parser dnevnika
- Skener datoteka
- Spam maskera
Pored toga, kurs nudi preko 1000 praktičnih vežbi.
Osim obuhvatanja osnovnih koncepata Go-a, kao što su strukture, interfejsi i kanali, ovaj kurs sadrži i zanimljiv projekat gde ćete naučiti kako da animirate loptu koja se odbija.
Na kraju kursa ćete dobiti sertifikat o završenom kursu.
Obilazak Go-a
Moram priznati da sam veliki ljubitelj zvanične dokumentacije, blogova i tutorijala za Go. Ovaj interaktivni kurs je besplatan i ne zahteva nikakvo lokalno podešavanje. Jednostavno otvorite web stranicu i počnite da učite od osnova, uz praktične primere koda za svaku temu.
Ovo je idealan kurs za početak, ukoliko želite da istražujete i naučite osnove bez komplikovanih podešavanja.
Go na primeru
Ovo nije tipičan, sveobuhvatan kurs, već resurs gde možete utvrditi osnove. Web stranica pokriva sve koncepte sa uvodnim tekstom i potpunim primerima. Sajt je dizajniran tako da bude što jednostavniji, s akcentom na sam proces učenja. Neki od osnovnih uvodnih tekstova bave se sledećim temama:
- Promenljive i konstante
- Petlje
- If/Else i Switch
- Nizovi i isečci
- Mape
- Opseg
- Funkcije
i skoro svim drugim neophodnim temama! Obavezno pogledajte ovaj resurs i sačuvajte ga kao referencu.
Naučite X za Y minuta
Ukoliko želite brz pregled osnova, Naučite X za Y minuta je izvrstan resurs, ne samo za Go, već i za skoro svaki programski jezik. Pokreće ga zajednica i pokriva veliki broj tema na jednoj stranici. Slobodno doprinesite i vi kada steknete veštine u Go-u.
Evo odlomka koda iz tutorijala, koji objašnjava konkurentno programiranje u jednoj funkciji:
// 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. }
Toliko sažeto i precizno, svakako isprobajte ovaj resurs ako vam treba brz pregled bilo koje specifične teme u vezi sa Go-om.
GoTime
Ukoliko ste ljubitelj učenja putem audio materijala, GoTime je odličan podcast za vas. Mnogi iskusni programeri dele svoje praktično znanje i načine na koji koriste Go u svojim kompanijama. Takođe, trebalo bi da pogledate i GopherCon (konferenciju posvećenu Go-u), gde istaknuti članovi zajednice dele svoje uvide.
Ove zajednice diskutuju o najnovijim trendovima i unapređenjima u vezi sa Go-om.
U nastavku ću dodati i neke od popularnih podcasta:
Knjige
Postoji veliki broj kvalitetnih knjiga posvećenih Go-u. U nastavku ću navesti neke od mojih omiljenih:
Blogovi
Postoji nekoliko zaista dobrih blogova o Go-u. Na platformi Medium možete pronaći mnoge članke. U nastavku ću podeliti neke koji bi vam mogli biti od koristi:
YouTube
Više volite učenje putem video snimaka?
Naravno, pogledajte ovaj Go vodič za početnike sa kanala freeCodeCamp.
Zaključak
Preporučujem da za početak odaberete jedan od gore navedenih kurseva, a zatim se pridružite Go zajednici. Takođe, podelite svoje znanje sa svetom i doprinesite daljem unapređenju ovog programskog jezika. Nadam se da ste pronašli nešto korisno u ovom tekstu i želim vam mnogo uspeha na vašem putu učenja Go-a.