Lær Go
Lær Go — En Golang-tutorial med en compiler, en race detector og daglige katas på din telefon
Lær Go er en gratis iOS- og Android-app med en Golang-tutorial for begyndere og erhvervsudviklere. Den indeholder en Go-compiler og editor, der kører din kode på en ægte Go-toolchain (der kræves internetforbindelse). Tjek den med gofmt, go vet og race detector, og arbejd dig gennem 51 kurser – fra din første fmt.Println til goroutines, REST APIs og gRPC – med en AI Mentor til de dele, der ikke helt giver mening.
- Pris
- Gratis, Pro-opgradering
- Platforme
- iOS og Android
- Sprog
- 22
- Aldersklassifikation
- 4+
- Kræver
- iOS 15.1 eller nyere


Slet go-nøgleordet, og se det samme arbejde tage tre gange så lang tid.
Det er det første, appen lader dig gøre med Go: Kør tre jobs på hver 120 ms, se den samlede tid ende et godt stykke under 360 ms, og fjern derefter det ene nøgleord, der gjorde dem samtidige. Hele sprogets idé samler sig i det ene ord, og appen lader dig mærke effekten, før den forklarer den.
Hvad det er
Lær Go er en gratis iOS- og Android-app til at lære Go, det kompilerede sprog bag en stor del af nutidens cloud- og serversoftware. Den indeholder 51 kurser og 203 lektioner fra begynder- til avanceret niveau, en code editor, der kører programmer på en ægte Go-toolchain, en daglig kata, et Concurrency Lab med en ægte race detector og et guidet forløb, hvor du bygger din egen HTTP-kerne. En AI Mentor besvarer spørgsmål om alle lektioner.
Inde i appen
Sådan ser det ud





Kurset
Dette dækker Go-kurset
51 kurser og 203 lektioner fra appens egen kursusliste, på niveauer fra A1 til C1 og med indhold fra det første program til profiling og garbage collector.
Velkommen til Go og det grundlæggende
Hvad Go er, og hvorfor Google skabte det, efterfulgt af variabler, typer og zero values, konstanter samt control flow med if, for og switch.
Funktioner, Slices og Maps
Funktioner med flere returværdier, defer og variadiske parametre, arrays, slices og maps samt strings, fmt-formatering og time-pakken.
Structs, Pointers og Interfaces
Structs og metoder, value- kontra pointer receivers, pointers, implicitte interfaces og duck typing samt embedding til komposition.
Fejl, Packages og Standardbiblioteket
Eksplicit fejlhåndtering med errors.Is og errors.As, packages og modules, file I/O og JSON, regular expressions, sorting og buffered I/O.
Goroutines, Channels og Sync
Grundlæggende viden om goroutines og channels, select- og channel-mønstre, mutexes og sync-pakken, context til annullering samt worker pools og pipelines.
HTTP, REST og Databaser
HTTP-servere og -klienter med net/http, REST APIs med Gin, middleware-mønstre, database/sql med sqlx og pgx, GORM og WebSockets.
Testing, Tooling og Deployment
Table-driven tests og subtests, kommandolinjeapps med Cobra, konfiguration med Viper, struktureret logging med slog og multi-stage Docker-builds.
Avanceret Go
Generics med type parameters og constraints, benchmarking og pprof profiling, gRPC med Protocol Buffers, reflection samt memory model.
Sådan fungerer det
Sådan fungerer en session
Hver lektion er en kort tekst efterfulgt af kode, du kører, så idé og øvelse foregår i samme session.
Læs én kort lektion
Åbn et kursus, og tag en enkelt lektion på få minutter med teori i et enkelt sprog og et lille eksempel, såsom programmet med package main og fmt.Println i den allerførste lektion.
Kør det på en ægte Go-toolchain
Editoren sender dit program til en Go-runner og viser outputtet. gofmt, go vet og race detector kører på samme måde, så appen har brug for forbindelse, når du trykker på kør, og et program, der crasher, viser en forklaring på fejlen i et enkelt sprog.
Øv det fra en anden vinkel
Når du har gennemgået et emne, kan du tage quizzen, løse den daglige kata, arbejde dig gennem et concurrency-puslespil eller bede AI Mentor om at quizze dig. Hver aktivitet ser på den samme idé på en ny måde, og det er det, der får den til at hænge fast.
Hvad det indeholder
Dette følger med appen
51
Kurser, A1 til C1
203 lektioner fordelt på 51 kurser – fra Go-grundlæggende, slices og maps til interfaces, error handling, goroutines, net/http, Gin, database access, Docker deployment, gRPC og garbage collector.
-race
Concurrency Lab med race detector
Seks kørbare puslespil dækker to goroutines på én channel, et ubufferet handshake, en WaitGroup-fan-out, en counter, der mister opdateringer, et map med to writers og et deadlock. Du kan også køre din egen kode under race detector – gratis og uden en daglig grænse.
Daglig
En ny kata hver dag
En Go-øvelse, der kontrolleres mod en tabel med cases, inklusive skjulte cases, efterfulgt af en forklaring. Den daglige kata er gratis for alle; Pro åbner hele biblioteket, reference-løsningerne og forklaringerne.
Doctor
Go Doctor
Tjek, om gofmt ville omskrive din fil, og anvend det, kør go vet for at finde problemer, og spørg med Pro compilerens escape analysis, hvorfor en værdi allokeres. Formatering er ubegrænset, og go vet er begrænset til tre kørsler om dagen på gratisplanen.
7 trin
Byg din egen HTTP-kerne
Et guidet forløb, hvor du selv skriver request, response, handlers som funktioner, routing, path parameters, middleware og JSON med wrapped errors – ét kontrolleret trin ad gangen.
AI
AI Mentor og prøveinterview
Bed AI Mentor om at forklare et koncept, give dig en roadmap eller quizze dig. Et prøveinterview stiller fem Go-spørgsmål på junior-, mid- eller seniorniveau og bedømmer dine svar. Ét bedømt interview om ugen er gratis.
Genkaldelse
Go Recall og Go by Example
Korte kort med spørgsmålet »hvad udskriver dette?« om klassiske faldgruber som defer-rækkefølge, nil maps og append, der deler hukommelse, samt kørbare standardbiblioteks-snippets, du kan køre og redigere.
Baggrund
Hvorfor lære Go til backend-arbejde, og hvad gør sproget anderledes?
Go er et statisk typet, kompileret sprog, der blev skabt hos Google, og det bruges i stor stil til webtjenester, kommandolinjeværktøjer og cloud-infrastruktur. Det attraktive ved sproget til backend-arbejde er, at meget allerede er indbygget: concurrency er en del af sproget, standardbiblioteket dækker det meste, en lille service har brug for, og et program kompileres til en enkelt binary, som ikke kræver andet installeret. Sproget er bevidst holdt lille, hvilket gør det hurtigt at læse, men betyder også, at begyndere tidligt skal lære en håndfuld uvante arbejdsvaner.
Goroutines og channelsconcurrency uden threads, der skal håndteres
En goroutine er en funktion, der startes med go-nøgleordet, og en channel er det rør, goroutines bruger til at sende værdier. Tilsammen erstatter de det meste manuelt thread-arbejde, og derfor undervises der tidligt i concurrency i stedet for at gemme det til et avanceret emne.
Errors er værdieringen exceptions
En Go-funktion, der kan fejle, returnerer en error som en almindelig anden værdi, og den kaldende kode tjekker den med det samme. Det kræver mere skrivning end en try-blok, men betyder også, at alle fejlforløb er synlige i den kode, du læser.
Implicitte interfacesduck typing, kontrolleret ved compile time
En type opfylder et interface blot ved at have de rigtige metoder; intet skal deklareres. Det holder pakker løst koblet, og det er også her, en klassisk Go-overraskelse gemmer sig: Et interface, der indeholder en nil-pointer, er ikke selv nil.
Én binary og et stort standardbibliotekderfor er deployment enkelt
Kompileret Go producerer en enkelt executable, og pakker som net/http, encoding/json og database/sql følger med sproget. En lille service har ofte ikke brug for et third-party framework, hvilket er en af grundene til, at Docker-images til Go-programmer kan være små.
Egnethed
Hvem det er til — og hvem det ikke er til
Det passer godt til dig, hvis du
- Vil du have et Golang-kursus, du kan gennemføre i korte sessioner på en telefon
- Skriver du allerede et andet sprog og vil se goroutines og channels køre i praksis
- Sigter du efter backend- eller cloud-roller og vil have Go-interviewspørgsmål med bedømmelse og feedback
- Lærer du bedre gennem små øvelser og gotcha-kort end gennem lange videoer
- Vil du kontrollere formatering, vet-resultater og data races i kode, du selv har skrevet
Det er ikke det rette værktøj, hvis du
- Har du brug for at køre programmer, der importerer net/http eller bruger generics i appens runner, som er en Go 1.13-sandbox
- Vil du køre kode uden forbindelse, fordi runneren er online
- Forventer du, at alt er gratis: det første kursus, den daglige kata og en daglig AI Mentor-kvote er gratis, mens Pro låser resten op
- Har du brug for at bygge og udgive en stor service med flere packages, hvilket stadig kræver en laptop og hele toolchainen
Spørgsmål
Ofte stillede spørgsmål
Hvad er den bedste måde at lære Golang på en telefon?
Korte lektioner kombineret med kode, du faktisk kører, slår ren læsning, og Go belønner dig for at køre ting, fordi de bedste funktioner, goroutines og race detector, er adfærdsbaserede. Lær Go kombinerer lektioner på få minutter med en editor, en daglig kata og et Concurrency Lab. Det er gratis at komme i gang på iOS og Android med 51 kurser i rækkefølge fra begynder- til avanceret niveau.
Kan man kompilere og køre Go-kode på sin telefon?
Ja, hvis du har forbindelse. Lær Go sender dit program til en Go-runner og viser outputtet, og den samme runner leverer gofmt, go vet og race detector. Koden udføres ikke på selve telefonen, så du skal være online, når du trykker på kør, og runneren har begrænsninger som en lille mængde tilgængelig hukommelse og en maksimal binærstørrelse.
Understøtter runneren i appen generics?
Ikke endnu. Runneren i Lær Go bruger Go 1.13, og generics kom i Go 1.18, så et program, der bruger type parameters eller nøgleordet any, kan ikke kompileres der. Appen forklarer det i et klart sprog, når det sker, og foreslår den ældre form. Selve kurset om generics kan stadig læses som en lektion.
Hvad er Gos race detector, og hvordan bruger appen den?
Race detector rapporterer, når to goroutines tilgår den samme hukommelse uden en lock imellem sig – en fejl, der kun viser sig nogle gange. I Lær Go kører Concurrency Lab opgaver som en tæller, der opdateres af 200 goroutines, under detectoren, og lader dig tilføje en mutex og køre igen. Du kan også indsætte din egen goroutine-kode og køre den under detectoren.
Hvad er en Go-kata?
En kata er en lille, fokuseret øvelse, du løser i kode, for eksempel at vende en string korrekt for non-ASCII-tekst eller pakke en fejl ind, så errors.Is stadig finder den. Lær Go giver dig en ny daglig kata, kontrollerer din funktion mod en tabel med cases, herunder skjulte cases, og forklarer idiomet bagefter. Den daglige kata er gratis for alle.
Har jeg brug for programmeringserfaring for at komme i gang?
Nej. Lær Go begynder med, hvad Go er, og hvorfor det findes, og gennemgår derefter variabler, typer og control flow. Alle begreber forklares i et klart sprog, før de øves i praksis. Erfaring med et andet sprog hjælper dig med at komme hurtigere gennem de første kurser, men det første kursus er skrevet til personer, der starter helt fra bunden.
Er Learn Go gratis?
Appen er gratis at downloade. Det første kursus er gratis sammen med den daglige kata, en daglig AI Mentor-kvote, ubegrænsede gofmt-kontroller, ubegrænsede kørsler under race detector og nogle få go vet-kørsler om dagen. Pro låser alle kurser op, fjerner reklamer, giver ubegrænset AI Mentor og åbner kata-biblioteket og escape analysis.
Får man et certifikat til sidst?
Ja. Når du består den afsluttende eksamen, får du et kursusbevis. Det viser det arbejde, du har udført, og fungerer godt sammen med et mindre projekt, du kan gennemgå til en jobsamtale, men det er ikke en akkrediteret akademisk kvalifikation.
Hjælper Learn Go med forberedelse til Golang-interviews?
Ja. Mock-interviewet stiller fem spørgsmål på junior-, mid- eller seniorniveau, fra forskellen på slices og arrays til, hvad en interface-værdi indeholder under kørsel, og bedømmer dine svar med feedback. Go Recall-kort træner de typiske gotchas, og svage emner fra et interview føjes til dit recall-dæk. Ét bedømt interview om ugen er gratis.
Hvilke platforme og sprog understøtter den?
Lær Go kører på iOS via App Store og på Android via Google Play, og brugerfladen er tilgængelig på 22 sprog. Den er klassificeret som 4+, så intet af materialet er aldersbegrænset.
Mere fra CoddyKit
Tilgængelig på iOS og Android.