Go
Go von Grund auf lernen. Beginne mit Paketen, Variablen und Kontrollfluss, dann tiefer einsteigen in Structs, Interfaces, Nebenläufigkeit, Tests, HTTP-Server, Datenbanken, Generics, Profiling und das Ausliefern echter Binaries in die Produktion.
20 Lektionen, der Reihe nach
- 125 Min.
Hallo, Go
Willkommen. Wenn du noch nie Code geschrieben hast, bist du hier genau richtig. Go ist eine Programmiersprache, also eine Möglichkeit, einem Computer...
Package mainImportFunc mainFmt.PrintlnGo run - 225 Min.
Variablen und Typen
In der letzten Lektion hast du einen festen Text ausgegeben. Echte Programme müssen sich Dinge merken, die sich ändern: den Namen eines Kunden, einen...
Var declarationShort declaration :=IntFloat64StringBool+2 - 330 Min.
Kontrollfluss: if und for
Bisher läuft jedes Programm, das du geschrieben hast, von oben nach unten ab, eine Zeile nach der anderen, ohne unterwegs eine Entscheidung zu...
IfElse ifElseFor loopFor as whileInfinite for+2 - 430 Min.
Funktionen
Jedes Programm, das du bisher geschrieben hast, lebte innerhalb von func main(). Für ein Dutzend Zeilen reicht das, aber echte Programme müssen...
Func keywordParametersReturn valuesMultiple return valuesNamed return valuesBlank identifier - 535 Min.
Slices und Maps
Jede Variable, die du bisher benutzt hast, hält genau einen Wert: einen Namen, ein Alter, einen Preis. Die meisten echten Aufgaben drehen sich um...
Slice literalAppendLenIndexingRangeMap literal+2 - 635 Min.
Structs und Pointers
Jede Variable, die du bisher in diesem Kurs geschrieben hast, hält genau einen losen Wert: eine einzelne Zahl, einen einzelnen String, einen...
Struct definitionField accessZero values for structsPointer types& and * operatorsPointer receivers vs value receivers+1 - 735 Min.
Methods und Interfaces
Die letzte Lektion hat dir gezeigt, wie du zusammengehörende Felder in einem Struct bündelst, aber ein Struct für sich hält nur Daten, es hat kein...
Method declarationReceiver typesPointer vs value receiversInterface definitionImplicit interface satisfactionSmall interfaces+1 - 835 Min.
Fehlerbehandlung
Du hast in diesem Kurs schon mehr als einmal if err != nil getippt, ohne innezuhalten und zu fragen, was err eigentlich ist oder woher es kommt....
Error interfaceFmt.Errorf with %wErrors.IsErrors.AsCustom error typesPanic vs error+1 - 935 Min.
Modules und Projektstruktur
Jedes Programm, das du in diesem Kurs bisher geschrieben hast, lag in einer einzigen Datei, die du mit einem Kommando ausführen konntest. Echte...
Go mod initGo.mod and go.sumImport pathsPackage vs moduleInternal/ folderCmd/ layout+1 - 1040 Min.
Kleines CLI-Abschlussprojekt
Bis hierher hatte jedes Programm, das du geschrieben hast, seine Eingaben fest im Quellcode verdrahtet. Wolltest du andere Zahlen addieren, hast du...
Os.ArgsStrconv.AtoiError handling with if err != nilOs.ExitGo buildPutting it together - 1140 Min.
Eine Tour durch die Standardbibliothek
Beim Lernen jeder Sprache kommt der Moment, in dem du dich nicht mehr fragst, wie eine Schleife geschrieben wird, sondern wie du eine Datei liest,...
FmtStringsStrconvTimeOsBufio+1 - 1240 Min.
Tests und Benchmarks
Du hast eine Funktion geschrieben, das Programm ausgeführt, das richtige Ergebnis gesehen und weitergemacht. Eine Woche später änderst du etwas in...
Go testTesting.TTable-driven testsT.Run subtestsTesting.B benchmarks_test.go file naming+1 - 1340 Min.
Goroutines und Channels
Dein Programm soll zwanzig Dateien herunterladen. Ganz gewöhnlich geschrieben, lädt es die erste, wartet, lädt die zweite, wartet, und so weiter....
The go keywordGoroutine lifetimeUnbuffered channelsBuffered channelsSend and receiveRange over channel+1 - 1445 Min.
Nebenläufigkeitsmuster
Goroutines und Channels sind Rohmaterial, so wie Holz und Schrauben. Zu wissen, was sie sind, sagt dir noch nicht, wie man einen Stuhl baut. In der...
Select statementContext.Context for cancellationSync.WaitGroupSync.MutexWorker pool patternFan-out fan-in idea - 1535 Min.
Generics
Du schreibst eine Funktion, die in einem Slice von int die größte Zahl findet. Dann brauchst du eine für float64, also kopierst du sie und änderst...
Type parameters with [T any]ConstraintsComparableTilde approximation ~intGeneric Map and FilterWhen generics help, when they do not - 1645 Min.
HTTP-Server
In den meisten Sprachen beginnt "einen Webservice schreiben" mit der Wahl eines Frameworks, und diese Wahl hat Gewicht, denn das Framework...
Net/httpHttp.HandleFuncHttp.ServerJSON responsesRequest routingMiddleware via http.Handler wrapping+1 - 1745 Min.
Datenbanken mit database/sql
Jedes Programm, das du bisher geschrieben hast, vergisst alles in dem Moment, in dem es endet. Für ein Werkzeug, das seine Eingabe umformt und dann...
Database/sql packageDriver importsSql.Open and sql.DB poolExec vs Query vs QueryRowPrepared statementsScanning rows+1 - 1840 Min.
Leistung und Profiling
Irgendwann sagt jemand, der Service sei langsam, du öffnest den Code und siehst sofort die Schleife, die schuld sein muss. Du schreibst sie um, sie...
Go test -benchPprof CPU and heap profilesEscape analysis with -gcflags=-mAvoiding unnecessary allocationsPreallocating slicesSync.Pool intuition - 1940 Min.
Entwurfsmuster in Go
Programme werden groß. Eine Datei, die bei zweihundert Zeilen noch vollkommen einleuchtete, wird zu einer Stelle, an der eine kleine Änderung etwas...
Functional options patternRepository patternDependency injection via interfacesContext propagation through call stacksConstructor functions - 2045 Min.
Deployment und Produktion
Zwischen einem Programm, das auf deinem Laptop läuft, und einem Programm, das du beruhigt weiterlaufen lässt, während du schläfst, liegt eine Lücke....
CGO_ENABLED=0 static binariesCross-compile with GOOS and GOARCHGraceful shutdown with http.Server and signal.NotifyContextMinimal Dockerfile with scratch or distrolessReading config from environment variables
Lerne Go in deiner Sprache
Jede Lektion, jedes Quiz und jede Tutor-Antwort erscheint in deiner Sprache. Der KI-Tutor antwortet in der Sprache, in der du fragst.
Roles that use Go
See how hiring teams interview engineers on Go, in production-like environments.
Backend Engineer (Go, Rust, Java)
Hire backend engineers in real services with real databases, real concurrency and real latency budgets. Live or take-home, fully recorded.
See the interviewDistributed Systems Engineer
Hire distributed systems engineers in workspaces with real Kafka, real consensus and real partition tooling. Live or take-home, fully recorded.
See the interviewPlatform Engineer
Hire platform engineers who reduce friction for every team. Real golden-path templates, real internal CLIs, real service onboarding flows. We record every step.
See the interview