Lær Go-appikon

Lær Go

Uddannelse · Gratis · iOS & Android · CoddyKit

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.

App Store — Download gratisGoogle Play — Download gratis
Pris
Gratis, Pro-opgradering
Platforme
iOS og Android
Sprog
22
Aldersklassifikation
4+
Kræver
iOS 15.1 eller nyere
Startskærm for læringsstien i Go med en knap til at starte den første lektion, en ring for dagens mål og et kort til funktionsønskerOversigt over kurset Go Kickoff Concepts and Setup med en statuslinje, den første gratis lektionsgruppe og en knap til at ændre kursus
51Kurser, A1 til C1
-raceConcurrency Lab med race detector
DagligEn ny kata hver dag
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

Startskærm for læringsstien i Go med en knap til at starte den første lektion, en ring for dagens mål og et kort til funktionsønsker
LæringsstiStartskærmen åbner på læringsstien med en startknap, et dagligt mål og et link til Skill Hub.
Oversigt over kurset Go Kickoff Concepts and Setup med en statuslinje, den første gratis lektionsgruppe og en knap til at ændre kursus
KursusoversigtDet første kursus, Go Kickoff: Concepts & Setup, er markeret som gratis og består af tre korte lektioner.
Kodeeditor, der viser et Go-program med package main, import fmt og fmt.Println-kald ved siden af en lektion om det første program
KodeeditorEn lektion med navnet Dit første program, hvor kodeeditoren er åben på en fil med package main og en kør-knap.
AI-chat med foreslåede prompts til at forklare nøglebegreber, give tips, quizze mig og oprette en læringsplan
AI MentorFire foreslåede prompts starter chatten: forklar nøglebegreberne, giv tips, quiz mig eller lav en plan.
Startskærm i lyst tema med læringsstien, et dagligt mål og Skill Hub
StartskærmDen samme startskærm i lyst tema med det daglige mål og Skill Hub under det aktive kursus.

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.

  1. 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.

  2. Funktioner, Slices og Maps

    Funktioner med flere returværdier, defer og variadiske parametre, arrays, slices og maps samt strings, fmt-formatering og time-pakken.

  3. Structs, Pointers og Interfaces

    Structs og metoder, value- kontra pointer receivers, pointers, implicitte interfaces og duck typing samt embedding til komposition.

  4. 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.

  5. 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.

  6. 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.

  7. Testing, Tooling og Deployment

    Table-driven tests og subtests, kommandolinjeapps med Cobra, konfiguration med Viper, struktureret logging med slog og multi-stage Docker-builds.

  8. 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.

  1. 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.

  2. 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.

  3. Ø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.

Kom i gang

Skriv din første goroutine i dag

Gratis at komme i gang på iOS og Android på 22 sprog.

App Store — Download gratisGoogle Play — Download gratis
Senest gennemgået · Udgivet af CoddyKit · Privatlivspolitik
Tilgængelig på iOS og Android.