Grokking Go
Learn Go from your first program to goroutines and channels, with runnable examples for slices, maps, structs, interfaces, errors, and files.

Course Overview
Grokking Go teaches the Go programming language from your first program to concurrent code. You will learn variables, types, operators, control flow, and functions. Then you will work with the data structures Go programs use every day: arrays, slices, maps, strings, and structs. Later chapters cover methods, interfaces, pointers, error handling, packages, and file handling. The course ends with goroutines and channels. Every lesson includes code that you can edit and run in the browser, and each chapter ends with a quiz. The course is for beginners who want to learn a modern, compiled language and for developers who want to add Go to their skills. No programming experience is required. Developers who know Python, Java, or C++ will move quickly through the basics. They can then focus on what makes Go different: slices, interfaces, explicit error values, and goroutines. By the end, you will be able to write clear, well-structured Go programs.
What you'll learn in Grokking Go
- Write and run Go programs from the first line, with every example editable and runnable in the browser.
- Control program flow with operators, if and switch statements, and the for loop in all its forms.
- Work with arrays and slices, including make, append, sorting, and how a slice shares its underlying array.
- Split, join, compare, and iterate over strings, and see why iterating by rune differs from iterating by byte.
- Attach methods to types and use interfaces for polymorphism, composition, and type assertions.
- Handle errors the Go way with the errors package, custom error types, wrapping, panic, and recover.
- Run work concurrently with goroutines and pass data between them with buffered and unbuffered channels.
- Declare variables, constants, and types, and use the short declaration operator and type conversions correctly.
- Write functions with multiple return values, variadic parameters, anonymous functions, and clear variable scope.
- Store and look up data with maps, and learn why changes to a map are visible to every function that holds it.
- Model data with structs, including nested and anonymous structs, and sort a slice of structs.
- Use pointers to share and modify data, including pointers to structs and pointers to pointers.
- Read and write files and CSV data, manage directories, and organize your code into packages.
Course Content
Go - Conditional Statements
Go - Loops and Other Control Flow Statements
Go - Methods and Interfaces
Go - Input/Output
Go - Error Handling
What people say about our courses






About the Author

Arslan Ahmad
Industry Expertise & Leadership
Arslan Ahmad is the lead author of Grokking Go. As the founder of Design Gurus and a former FAANG hiring manager, he has worked at industry giants like Facebook (now Meta) and Microsoft.
He has conducted hundreds of system design interviews, giving him unique insight into what top tech companies look for in candidates.
The course also incorporates expertise from senior engineers at Google, Meta, Amazon, Microsoft, and Uber, ensuring you learn system design best practices from professionals who have built and scaled real-world systems.
500+
Interviews Conducted
10k+
Students Taught
Related Courses
$197
$72
$48
FAQs
What is Grokking Go?
It is a hands-on introduction to the Go programming language. It starts with your first program and moves through variables, control flow, functions, arrays, slices, maps, strings, structs, interfaces, pointers, error handling, packages, and file handling, and it ends with goroutines and channels.
Who is this course for?
It is for beginners who want to learn a modern, compiled language, for developers who already know Python, Java, C++, or JavaScript and want to add Go, and for back-end developers who work on cloud services where Go is common.
Do I need any programming experience?
No. The course starts from what a variable is. If you already program in another language, you will move through the early chapters quickly, but the chapters on slices, interfaces, pointers, and errors are still worth reading carefully, because Go handles each of them differently from most languages.
Do I need to install Go?
No. The code examples run in the browser, so you can start immediately and set up a local Go installation later.
Does the course cover concurrency?
Yes. The last chapter introduces goroutines and channels, including the difference between buffered and unbuffered channels. It does not cover the select statement, the sync package, or the context package, which are natural next topics once you are comfortable with goroutines and channels.
What does the course not cover?
It focuses on the core language and the standard library. It does not cover generics, the testing package, module management with go.mod, or web frameworks.
Is this an interview preparation course?
No. It teaches the language. Once you are comfortable with Go, the Design Gurus coding interview courses offer their solutions in Go, so this course is the step that makes those usable in Go rather than a substitute for them.
Is there any practice, or is it only reading?
Every lesson includes code examples that you can edit and run in the browser, and every chapter after the course overview ends with a quiz on its topics.
Is the course text-based or video-based?
It is text-based, with runnable code in the lessons. You read an explanation, change the example, run it, and see the result without pausing or rewinding anything.
Do I get a certificate of completion?
Yes. Design Gurus issues a certificate once you have completed the course, and you can share the link directly or add it to your LinkedIn profile.
