We're sorry but this app doesn't work properly without JavaScript enabled. Please enable it to continue.

Learn Go

Learn Go by writing real code with structs, interfaces, error handling, concurrency, and backend design patterns.

What you'll learn in this Go course

Master the fundamentals of the Go programming language in this comprehensive interactive course. You'll practice writing performant, idiomatic Go while working through hands-on lessons, challenges, and quizzes covering everything from structs and interfaces to concurrency.

Chapter List

1
Variables
Learn the basic syntax for declaring and using variables and why you should use Go in the first place
2
Constants and Formatting
Learn how constants work in Go and how to format output using the fmt and unicode packages.
3
Conditionals
Use if/else statements to control the flow of your program
4
Functions
Learn about how functions behave
5
Structs
Idiomatically model data in Go using structs
6
Interfaces
Master one of Go's most powerful tools: the interface
7
Errors
Learn how Go uniquely handles errors
8
Loops
Practice various algorithms in Go
9
Slices
Learn about Go's take on ordered lists
10
Maps
Go has an answer to Python's sets and dictionaries, we call it a map
11
Pointers
Learn about pointers and their pitfalls
12
Packages and Modules
Learn how go projects are organized on your local machine
13
Channels
Master the #1 reason to use Go: its elegance of concurrent programming
14
Mutexes
Continue learning about concurrency with mutexes
15
Generics
Learn how Go approaches polymorphism with generics: a new feature added in 1.18
16
Enums
Go famously doesn't support proper enums, but we'll go over how Go developers solve the same kinds of problems with the tools they have.
17
Quiz
Learn about go-specific design patterns and fun language facts

Join 124,628 students in the Learn Go course

Read reviews of their learning experiences

Fantastic course for learning Go. It really made me appreciate the simplicity and ease of use of Go as well as some of the cool things that the language features. Definitely a mainstay in my toolkit.

(5/5)
Kevin De La Rosa profile image

Kevin De La Rosa

United States

I had a week to learn Go for a Programming Languages course project, and I just wanted to get familiar with the syntax. Instead, I ended up understanding Go better than any language I've learned.

(5/5)
Mazen Alghamdi profile image

Mazen Alghamdi

Saudi Arabia

Sometimes, I find the Learn Go lessons confusing because the assignments don't always explain the concepts or requirements clearly enough. I often have to figure out what the instructions mean on my own.

(3/5)
Riwandi  profile image

Riwandi

Tangerang

This one was... though, it pushed me to my limit for understanding.

(4/5)
A L profile image

A L

Sweden

I have gained not only the knowledge about go but also the memes surrounding the language. Thank you for this experience

(5/5)
Ansh Mani Tripathi profile image

Ansh Mani Tripathi

India

fun and interactive way to learn GO. Small and detailed exercises help me dive deep.

(5/5)
Kinjal Munot profile image

Kinjal Munot

United States

"I came here to learn python" Ooh, a Go course! Doesn't hurt to tip my toes in a little. Aaaand i'm in love

(5/5)
Akram Naser profile image

Akram Naser

Switzerland

Learn Go is a fantastic course! I actually went through it a second time on purpose, just to refresh my knowledge and challenge myself to complete the assignments faster. My approach is to write all the solutions from scratch in my local development environment, copy the provided tests into `main_test.go`, and run and debug everything locally. I find that this hands-on approach helps me better and gives me more confidence in my skills. Thank u Boot.dev team!

(5/5)
Rust Sharp profile image

Rust Sharp

WA, USA

Very good course. I think some of the examples felt a bit contrived. but nevertheless very structured format.

(4/5)
Shailendra Nath profile image

Shailendra Nath

India

Showing 1-9 of 685

or view more reviews

Mediocrity doesn't cut it anymore

The only way to become a great developer is to write a lot of code

Avoid tutorial hell

by writing a ton of code

Stay motivated with

a game-like curriculum

Build portfolio projects

to prove your skills

Delve deeper

into foundational concepts

Learn flexibly online

without interrupting your life

For 1% the price of college

to minimize your financial risk

Frequently asked Questions

Got questions? We've got answers

Yes, but we assume you're already familiar with programming basics like variables, conditionals, and functions. You don't need any prior Go experience.