The Way to Go
Gain insights into Go's core constructs, advanced concepts like error-handling and networking, and learn efficient programming techniques and common pitfalls in this popular language.
Ivo Balbaert managed software projects for many years, then went on a teaching and writing track. He wrote several books and courses on emerging programming languages (Go, Dart, Julia, Rust, Crystal).
Join 3.1 million developers at
What You'll Learn
- Explain Go's design goals, characteristics, and reasons for its development
- Write Go programs using packages, imports, identifiers, functions, and basic types
- Apply control flow with if, switch, for, for-range, labels, break, and continue
- Implement arrays, slices, maps, and sorting/searching operations using standard tools
- Design structs and methods using embedding, tags, pointer/value receivers, and String()
- Use interfaces, type assertions, type switches, and reflection for dynamic behavior
- Build concurrent and networked apps with goroutines, channels, sync locks, and net/http
Learning Roadmap
1.
Origin, Context and Popularity of GO
Origin, Context and Popularity of GO
2.
Basic Constructs and Elementary Data Types
Basic Constructs and Elementary Data Types
3.
Control Structures
Control Structures
10 Lessons
10 Lessons
4.
Functions
Functions
19 Lessons
19 Lessons
5.
Arrays and Slices
Arrays and Slices
27 Lessons
27 Lessons
6.
Maps
Maps
8 Lessons
8 Lessons
7.
Packages
Packages
13 Lessons
13 Lessons
8.
Structs and Methods
Structs and Methods
24 Lessons
24 Lessons
9.
Interfaces and Reflection
Interfaces and Reflection
25 Lessons
25 Lessons
10.
Reading and Writing
Reading and Writing
23 Lessons
23 Lessons
11.
Error-Handling and Testing
Error-Handling and Testing
13 Lessons
13 Lessons
12.
Goroutines and Channels
Goroutines and Channels
29 Lessons
29 Lessons
13.
Networking, Templating and Web-Applications
Networking, Templating and Web-Applications
15 Lessons
15 Lessons
14.
Common Go Pitfalls and Patterns
Common Go Pitfalls and Patterns
5 Lessons
5 Lessons
15.
Performance Advices
Performance Advices
5 Lessons
5 Lessons
16.
Building a Complete Application
Building a Complete Application
7 Lessons
7 Lessons
17.
Appendix
Appendix
13 Lessons
13 Lessons
Ivo Balbaert
Physicist, software engineer, teacher and writer. Ever on the search for the ideal programming language.
Trusted by 3.1 million developers working at companies
Anthony Walker
@_webarchitect_
Evan Dunbar
ML Engineer
Software Developer
Carlos Matias La Borde
Souvik Kundu
Front-end Developer
Vinay Krishnaiah
Software Developer
Built for 10x Developers











