I denna artikel kommer jag att presentera några av de mest värdefulla resurserna online för att studera och behärska programmeringsspråket Go, även kallat Golang.
Eftersom individer föredrar olika inlärningsmetoder, kommer jag att täcka ett brett spektrum av alternativ. Detta inkluderar textbaserade artiklar, instruktionsguider, videolektioner och populära utbildningar relaterade till Golang.
Golang ökar snabbt i popularitet, och du kommer troligen att uppskatta språket mer ju mer du utforskar det.
Utbildning för Utvecklare
Med en deltagarbas på cirka 50 000 studerande, är denna kurs ett av de bästa och mest kompletta utbildningspaketen för att lära sig Go från grunden. Kursmaterialet är väl genomarbetat och har visat sig vara framgångsrikt för många studerande. När du har köpt kursen, får du tillgång till den på livstid. Om du föredrar omfattande videokurser, är detta ett utmärkt alternativ för dig!
Denna kurs är lämplig för både nybörjare och de som vill återbesöka grundläggande koncept. Kursen innehåller nio timmar video on-demand, tillsammans med ytterligare kodexempel och övningsuppgifter.
Några av de ämnen som behandlas i kursen är:
- Installation, konfigurering och grunderna i språket.
- Paket och filstrukturer
- Variabler, funktioner, matriser och skivor
- Detaljerad genomgång av kartor, strukturer och gränssnitt
- Kanaler och gorutiner (samtidig programmering)
Bootcamp-kurs
Med över 300 föreläsningar är denna kompletta bootcamp-kurs på Udemy ett utmärkt val för att lära sig Golang. Du lär dig genom att konstruera applikationer som:
- Loggparser
- Filskanner
- Spamfilter
Utöver detta, innehåller kursen över 1000 praktiska övningar.
Förutom att täcka de grundläggande koncepten för Go, såsom strukturer, gränssnitt och kanaler, innehåller denna kurs även ett intressant projekt där du får lära dig att animera en studsande boll.
Du får också ett certifikat vid slutförandet av kursen.
En Rundtur i Go
Jag är ett stort fan av officiell Golang-dokumentation, bloggar och handledningar. Denna interaktiva kurs är gratis och kräver ingen lokal installation. Öppna helt enkelt webbplatsen och börja lära dig grunderna med praktisk kod för varje ämne.
Detta är en bra kurs att starta med om du bara vill utforska och lära dig grunderna utan att behöva göra några inställningar.
Go med Exempel
Detta är inte en fullständig kurs, utan snarare en resurs att använda när du glömmer grunderna. Webbplatsen täcker alla begrepp med en introduktionstext och ett detaljerat exempel. Webbplatsen är så enkel som möjligt och fokuserar helt på inlärning. Några av de grundläggande introduktionsinläggen täcker:
- Variabler och konstanter
- For-loopar
- If/Else och Switch-satser
- Arrayer och skivor
- Kartor
- Räckvidd
- Funktioner
och nästan alla andra ämnen du kan behöva! Kolla in det och bokmärk det som en referens.
Lär Dig X på Y Minuter
Om du vill ha en snabb genomgång av grunderna, är Lär dig X på Y minuter en fantastisk resurs, inte bara för Go, utan för nästan alla programmeringsspråk. Det är community-drivet och täcker många ämnen på en enda sida. Bidra gärna när du har blivit duktig på Go.
Här är ett kodexempel från handledningen, som förklarar samtidig programmering i en funktion.
// Vi använder inc för att öka några tal samtidigt. func learnConcurrency() { // Samma make-funktion som användes tidigare för att skapa en slice. Make allokerar och // initierar slices, maps och channels. c := make(chan int) // Starta tre samtidiga gorutiner. Talen kommer att ökas // samtidigt, kanske parallellt om maskinen klarar det och är // rätt konfigurerad. Alla tre skickar till samma kanal. go inc(0, c) // go är ett kommando som startar en ny gorutin. go inc(10, c) go inc(-805, c) // Läs tre resultat från kanalen och skriv ut dem. // Det finns inget sätt att veta i vilken ordning resultaten kommer! fmt.Println(<-c, <-c, <-c) // kanal till höger, <- är "mottag"-operator. cs := make(chan string) // En annan kanal, denna hanterar strängar. ccs := make(chan chan string) // En kanal av strängkanaler. go func() { c <- 84 }() // Starta en ny gorutin bara för att skicka ett värde. go func() { cs <- "wordy" }() // Igen, för cs den här gången. // Select har syntax som en switch-sats, men varje case involverar // en kanaloperation. Den väljer ett case slumpmässigt bland de cases // som är redo att kommunicera. select { case i := <-c: // Värdet som tas emot kan tilldelas en variabel, fmt.Printf("det är en %T", i) case <-cs: // eller så kan värdet som tas emot ignoreras. fmt.Println("det är en sträng") case <-ccs: // Tom kanal, inte redo för kommunikation. fmt.Println("hände inte.") } // Vid det här laget togs ett värde från antingen c eller cs. En av de två // gorutiner som startades ovan har slutförts, den andra kommer att förbli blockerad. learnWebProgramming() // Go gör det. Du vill också göra det. }
Detta är ett kort och koncist sätt att lära sig. Prova det om du vill ha en snabb överblick över specifika ämnen i Golang.
Gotime Podcast
Om du föredrar att lära dig genom att lyssna, är Gotime en utmärkt podcast. Många framstående utvecklare delar med sig av sin kunskap och hur de använder Go i sina verksamheter. Du bör också kolla in GopherCon (Golang-konferensen) där experter delar med sig av sina erfarenheter.
Dessa grupper diskuterar de senaste trenderna och förbättringarna inom Go.
Jag har listat några populära poddar här:
Böcker
Det finns många bra böcker om Go. Här är några favoriter:
Bloggar
Det finns ett antal bra bloggar om Golang. Det finns även många artiklar på Medium som du kan utforska. Här är några som jag rekommenderar:
Youtube
Föredrar du videoinriktat lärande?
Kolla in denna Golang-handledning för nybörjare av freeCodeCamp.
Sammanfattning
Jag rekommenderar att du genomför en av kurserna ovan om du är nybörjare, och att du går med i Golang-communityt. Dela med dig av dina erfarenheter och bidra till att göra Go ännu bättre. Jag hoppas att du har lärt dig något användbart och önskar dig all lycka på din resa med Go.