Kodewick
Start learning →
Go course · Beginner

Learn Go

From your first fmt.Println to slices, interfaces and errors, then goroutines and channels. Every example runs on the page, and stepping gives each goroutine its own lane, so you see who is waiting for whom.

Start with lesson 1 →24 lessons · about 6 hours · free · runs in your browser
  1. Part 1Getting startedfmt.Println, variables and zero values, if, for, functions.5 lessons · 1.5 h
    1. Lesson 1Hello, World!15 minStart
    2. Lesson 2Variables, types and zero values15 minStart
    3. Lesson 3if and switch15 minStart
    4. Lesson 4for loops15 minStart
    5. Lesson 5Functions and multiple results15 minStart
  2. Part 2DataArrays and slices, how a slice grows, maps, strings and runes.4 lessons · 1 h
    1. Lesson 6Arrays and slices15 minStart
    2. Lesson 7How a slice grows15 minStart
    3. Lesson 8Maps15 minStart
    4. Lesson 9Strings and runes15 minStart
  3. Part 3TypesStructs, pointers, methods, interfaces.4 lessons · 1 h
    1. Lesson 10Structs15 minStart
    2. Lesson 11Pointers15 minStart
    3. Lesson 12Methods15 minStart
    4. Lesson 13Interfaces20 minStart
  4. Part 4Errors and functionserror, defer / panic / recover, closures, generics.4 lessons · 1 h
    1. Lesson 14Errors20 minStart
    2. Lesson 15defer, panic and recover15 minStart
    3. Lesson 16Closures15 minStart
    4. Lesson 17Generic functions15 minStart
  5. Part 5ConcurrencyGoroutines, channels, select, WaitGroup and Mutex, and deadlocks.6 lessons · 1.5 h
    1. Lesson 18Goroutines15 minStart
    2. Lesson 19Channels15 minStart
    3. Lesson 20Buffered channels and close15 minStart
    4. Lesson 21select15 minStart
    5. Lesson 22WaitGroup and Mutex15 minStart
    6. Lesson 23Deadlocks and common mistakes15 minStart
  6. Part 6ProjectA pipeline built from goroutines and channels.1 lessons · 0.5 h
    1. Lesson 24Project: a pipeline and a pool of workers20 minStart

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.