- Home
- Learn Go
Learn the Go programming language
A complete path to learn Go, from your first program to a tested REST API: basics, structs, interfaces, concurrency, exercises and projects.
Go (also called Golang) is a compiled, statically typed language designed for simplicity and concurrency. This path guides you step by step, each stage building on the previous one.
What is Go?
Go is an open-source language created at Google. It compiles to a single binary, manages memory automatically and builds concurrency in through goroutines and channels. It is widely used for network services, command-line tools and cloud infrastructure.
Why learn Go?
Go is fast to learn, fast to compile and fast to run. Its standard library covers HTTP, JSON and testing without external dependencies. See why you should learn Go.
Who is this path for?
Complete beginners as well as developers coming from another language. Beginners follow the lessons in order; experienced developers can jump straight to interfaces and concurrency.
How do you install Go?
Installation takes a few minutes on Windows, macOS or Linux. Follow the Go installation guide. Then write your first Go program.
Learn the basics
Start with variables and types, then functions. Browse every lesson.
Understand structs and interfaces
Go models data with structs and methods, and behaviour with interfaces, which decouple behaviour from implementation.
Learn concurrency
Concurrency is at the heart of Go. Goroutines and channels let you run and coordinate many tasks simply. See the glossary for the key definitions.
Practise with exercises
Practice cements the concepts. Practise with solved exercises.
Build projects
Put everything together in real projects. Explore the Go projects.
Recommended roadmap
A clear learning order keeps you focused. Follow the Go developer roadmap.
Frequently asked questions
How long does it take to learn Go?
Following this path a few hours per week, you write your first programs within days and reach concurrency within weeks. Go has a deliberately small syntax, which speeds up learning.
Do I need prior programming experience?
No. The path starts from zero: installation, variables, conditionals and loops. If you already know a language, you can move faster and focus on Go's idioms.
Is Go a good first language?
Yes. Its simple syntax, clear error messages and built-in tooling (formatting, testing) make it an excellent language to start with while remaining production-grade.
Do I need an account to follow the courses?
No. All content is free and readable without an account. Your progress is stored locally in your browser.