Training Module
Go-Grundlagen
In diesem ca. 8-stündigen Modul lernt ihr Go von der ersten Zeile bis zu nebenläufigem, getestetem Code: Sprachgrundlagen und Kontrollstrukturen, Slices und Maps, Funktionen und Structs, Interfaces, Paketverwaltung, Error Handling, Concurrency mit Goroutinen und Channels sowie Testing mit Table-Driven Tests, Benchmarks, Coverage und Fuzzing. Keine Go-Vorkenntnisse nötig – ein Grundverständnis von Terminal/Kommandozeile hilft.
Format
ca. 8 Stunden, live (remote oder vor Ort) – als Tagesworkshop oder in 2 Halbtagen, Input & Hands-on
Teilnehmende
Entwickler:innen mit Grunderfahrung in einer beliebigen Programmiersprache, die Go von Grund auf lernen wollen
Voraussetzungen
Keine Go-Vorkenntnisse nötig; Grundverständnis von Terminal/Kommandozeile hilfreich
Warum dieses Training für deine Organisation wirkt
Von der ersten Zeile zum nebenläufigen Programm
Kein Sprung ins kalte Wasser: Der Bogen läuft von package main und einfacher I/O bis zu Goroutinen, Channels und synchronisiertem Warten mit sync.WaitGroup.
Go-Denken statt Syntax pauken
Value- vs. Pointer-Receiver, exportierte vs. unexportierte Bezeichner, implizite Interface-Erfüllung: Teilnehmende verstehen, warum Go-Code so aussieht, wie er aussieht – nicht nur, wie man ihn abtippt.
Testbar von Anfang an
Table-Driven Tests, Mocking, Benchmarks, Coverage und Fuzzing sind ein eigenes Modul, kein Anhängsel – Code aus dem Kurs entsteht von Anfang an in testbarer Form.
Was Teilnehmende mitnehmen
- Go-Programme mit
package main, Variablendeklaration (var,:=) und Typinferenz schreiben, inklusive Ein-/Ausgabe überPrintln/Printf-Verbs undScan. - If/Else ohne Klammernpflicht, Switch ohne
breakund die vier for-Varianten von Go sicher einsetzen. - Slices (
append, Lösch-Pattern) und Maps (make) als dynamische Datenstrukturen nutzen. - Funktionen mit mehreren Rückgabewerten schreiben und Value- von Pointer-Receivern bei Methoden unterscheiden.
- Structs kapseln (Exported/Unexported), Getter/Setter und Konstruktor-Funktionen (
New…) einsetzen. - Interfaces und implizite Erfüllung („Enten-Typisierung”) für polymorphen Code nutzen.
- Go-Projekte mit
go.mod/go.sumstrukturieren, Abhängigkeiten mitgo get/go mod tidyverwalten und eigene Packages schreiben. - Fehler mit dem
error-Interface,errors.New/fmt.Errorf, Wrapping sowieerrors.Is/errors.Asund Custom Errors behandeln. - Nebenläufigen Code mit Goroutinen, Channels und
sync.WaitGroupschreiben. - Table-Driven Tests (mit Testify), Mocking, Benchmarks, Coverage und Fuzz-Tests einsetzen.
Für wen dieses Modul ideal ist
- • Entwickler:innen mit Grunderfahrung in einer beliebigen Programmiersprache
- • Einsteiger:innen in Go, die von der ersten Zeile bis zu nebenläufigem, getestetem Code kommen wollen
- • Alle, die keine Go-Vorkenntnisse mitbringen, aber mit Terminal/Kommandozeile grundsätzlich vertraut sind
Rahmendaten
- • Dauer: ca. 8 Stunden live (remote oder vor Ort) – Schätzung, als Tagesworkshop oder in 2 Halbtagen
- • Format: Input, Live-Coding, Hands-on-Übung
- • Voraussetzungen: Keine Go-Vorkenntnisse nötig, Grundverständnis von Terminal/Kommandozeile hilfreich
Modulaufbau & Agenda
Sprachgrundlagen & I/O (ca. 45 min):
package main,var/:=/Typinferenz,Println/Printf-Verbs,Scanmit&.Kontrollstrukturen (ca. 45 min): If/Else ohne Klammernpflicht, Switch ohne
break, die vier for-Varianten.Dynamische Datenstrukturen (ca. 30 min): Slices (
append, Lösch-Pattern), Maps (make).Funktionen & Methoden (ca. 45 min): mehrere Rückgabewerte, Value- vs. Pointer-Receiver.
Structs, Kapselung, OOP-Muster (ca. 40 min): Exported/Unexported, Getter/Setter, Konstruktor-Funktionen
New….Interfaces & Polymorphismus (ca. 30 min): implizite Erfüllung („Enten-Typisierung”).
Paketverwaltung & Projektstruktur (ca. 40 min):
go.mod/go.sum,go get,go mod tidy, eigene Packages.Struct-Vergleich & Error Handling (ca. 50 min):
error-Interface,errors.New/fmt.Errorf, Wrapping,errors.Is/errors.As, Custom Errors.Concurrency (ca. 40 min): Goroutinen, Channels,
sync.WaitGroup.Testing, Benchmarks, Coverage, Fuzzing (ca. 65 min): Table-Driven Tests, Testify, Mocking, Benchmarks, Coverage, Fuzz-Tests.
Hands-on-Übung (ca. 45 min): eine
SumConcurrently-Funktion mit Goroutinen, Channel undsync.WaitGroupschreiben, dazu einen Table-Driven-Test mit Error-Fall.
Gesamtdauer ca. 8 Stunden (Schätzung) – als Tagesworkshop oder in 2 Halbtagen: Teil 1 (Block 1–3) ca. 2 Stunden, Teil 2 (Block 4–10 + Übung) ca. 6 Stunden.
Hands-on Inhalte (Auszug)
Sprachgrundlagen, Kontrollfluss & Datenstrukturen
package main, Variablen & Typinferenz, Ein-/Ausgabe- If/Else, Switch ohne
break, die vier for-Varianten - Slices und Maps im praktischen Zugriff
Funktionen, Methoden & Structs
- Mehrere Rückgabewerte pro Funktion
- Value- vs. Pointer-Receiver bei Methoden
- Structs kapseln, Getter/Setter, Konstruktor-Funktionen
New…
Interfaces, Pakete & Error Handling
- Implizite Interface-Erfüllung („Enten-Typisierung”)
go.mod/go.sum,go get,go mod tidy, eigene Packageserror-Interface, Wrapping,errors.Is/errors.As, Custom Errors
Concurrency & Testing
- Goroutinen, Channels,
sync.WaitGroup - Table-Driven Tests mit Testify, Mocking
- Benchmarks, Coverage, Fuzz-Tests
Dieses Modul ist Teil unserer Pilotphase. Gemeinsam mit euch definieren wir passende Metriken (z. B. Zeit bis zum ersten lauffähigen Programm, Ergebnis der Hands-on-Übung) und werten sie im Anschluss transparent aus. Ergebnisse veröffentlichen wir, sobald sie belastbar sind.
Bereit, das Modul zu buchen?
Wir passen die Hands-on-Übung auf euren Erfahrungsstand und eure Zielumgebung an.
Academy Briefing anfragen