Discover useful tools, tutorials, and helpful resources organized by category
The Uber Go Style Guide documents the patterns and conventions used in Go code at Uber. It was originally created by Prashant Varanasi and Simon Newton to bring colleagues up to speed with Go and has been amended over the years based on feedback. The guide is organized into Guidelines, Performance, Style, Patterns and Linting, with concrete rules such as verifying interface compliance, using defer to clean up, handling errors once, avoiding mutable globals and not firing off goroutines without managing their lifetime. Most rules come with paired bad and good code examples. The repository is Apache-2.0 licensed and links to community translations. Handy for teams that want a ready-made baseline for Go code review.
Learn Go with Tests teaches the Go language through test-driven development: each chapter introduces a language feature or concept by writing a failing test first and then the code to make it pass. It gives readers a grounding in TDD alongside Go fundamentals, in small, structured lessons that build toward writing robust, well-tested programs. The book is free, MIT-licensed and translated into more than ten languages. Ideal for developers learning Go who also want good testing habits from the start.
Go by Example is an interactive online resource that teaches Go (Golang) through concise, runnable code examples. Each page walks you through a specific Go concept—like loops, slices, maps, channels, or interfaces—showing real code you can edit and run immediately in the browser. It’s especially great for learners who prefer “learning by doing” and want to see how Go’s features behave in practice rather than just reading theory.
The Go Tour shows the organized set of lessons and modules available (such as basics, methods, concurrency, generics, etc.). It helps guide learners through Go’s core features step by step, from fundamentals like variables and loops, through slices, maps, interfaces, and concurrency, up to newer features like generics. It’s a well-structured roadmap for both newcomers and intermediate Go users to follow a coherent learning path.
Effective Go is a guide published by the Go team that shares practical advice for writing Go code that is clean, idiomatic, and efficient. It complements the Tour and the Go language specification by showing best practices around naming, formatting (via gofmt), error handling, use of interfaces, package structure, comments, and other stylistic conventions that help Go code be more readable and maintainable. It’s especially useful for those who already know Go basics and want to adopt the standard conventions used throughout Go’s ecosystem.