Learn Go, step by step.
Learn Go from scratch
A clear, progressive path through the Go language: syntax, concepts, and good practices, explained simply.
Your progress
0/9You haven't started yet. Jump into the first lesson!
Course modules
Getting started
Understand what Go is, install it, and write your first program.
Basic syntax
Variables, types, constants, and text formatting.
Control flow
if, the for loop, and switch: everything you need to direct execution.
Functions
Multiple returns, named results, variadic parameters, and closures.
Arrays, slices, and maps
The data structures at the heart of most Go programs.
Structs and methods
Defining your own data types and attaching behavior to them.
Interfaces
Polymorphism the Go way: implicit, minimal, and very powerful.
Error handling
Why Go has no exceptions, and how to handle errors cleanly.
Pointers
Understanding pass-by-value and pass-by-reference without black magic.
Packages and modules
Organizing a Go project and managing its dependencies.
Goroutines and channels
Go's signature feature: concurrency as a native capability.
Testing
The built-in testing package, no external framework required.
Idiomatic Go
The conventions and instincts that set apart Go code that "looks right".