Part 1Getting startedfmt.Println, variables and zero values, if, for, functions.5 lessons · 1.5 h
Part 2DataArrays and slices, how a slice grows, maps, strings and runes.4 lessons · 1 h
Part 3TypesStructs, pointers, methods, interfaces.4 lessons · 1 h
Part 4Errors and functionserror, defer / panic / recover, closures, generics.4 lessons · 1 h
Part 5ConcurrencyGoroutines, channels, select, WaitGroup and Mutex, and deadlocks.6 lessons · 1.5 h
Part 6ProjectA pipeline built from goroutines and channels.1 lessons · 0.5 h
Questions
Is it really free?
Yes. Every lesson, example and exercise is free, and there is no account to make.
Do I need to install Go?
No. The code runs in your browser with the same results as Go 1.24, and you can watch variables and every goroutine one step at a time.
Is it real Go?
It is Go 1.24. Every example in the course is checked against real Go, output and error messages included. Files, the network and the real clock are not available in the browser, and the course does not use them.
Do goroutines run in the same order every time?
Here, yes: our scheduler always takes the same order, so exercises can check themselves. Real Go may differ from run to run, and the lessons say which orders you can rely on and which you cannot.
Can Go be my first language?
Yes. Lesson 1 starts with fmt.Println, and each lesson uses only what came before. If you have never coded, Python first makes it easier.
How long does it take?
Each lesson takes 15 to 20 minutes. One or two a day and you are done in three or four weeks. Go slowly through concurrency, and press Step a lot.
Can I learn on my phone?
Yes. Reading, running, stepping and the exercises all work on a phone; longer exercises are easier with a keyboard.
Where is my progress saved?
In this browser, with no account. On another device, or after clearing your browser data, it is gone.