Discover useful tools, tutorials, and helpful resources organized by category
Go in Action is a practical, example-driven guide that takes an intermediate developer from the basics of the Go programming language through its idiomatic use in real applications, covering key concepts like the language’s syntax, type system, concurrency primitives, channels, and testing while showing how to build real-world software such as web services and network servers; it focuses on understanding how Go works under the hood and how to use its features effectively to write reliable, high-performance code.
“The Complete Guide to Go Programming” is a comprehensive introduction to the Go language that starts with its history and installation, then walks through core syntax (variables, types, control flow, functions, structs, interfaces, collections), practical error handling, and Go’s powerful concurrency model with goroutines and channels. It goes on to cover advanced topics such as reflection, generics, testing, performance profiling, and build tools, and includes practical examples and best practices to help readers move from beginner to proficient Go developers.
GoPerf.dev is a Go Optimization Guide — a hands-on, technical resource for Go developers focused on writing high-performance, efficient applications by applying practical patterns and measurable techniques rather than guesswork. It organizes content into sections on common performance patterns (like memory management, concurrency, I/O optimization, and compiler tuning) and practical networking patterns (including benchmarking, high-throughput services, and protocol-level tuning). The guide emphasizes real-world examples, profiling, and performance-centric design for services that handle substantial load, making it especially useful for engineers building backend systems, latency-sensitive services, or high-throughput networked applications with Go.
Hey mate! I'm Phuong, and here I turn complex low-level and also Go concepts into things you can actually see and feel.
research!rsc is the personal technical blog of Russ Cox, a veteran programmer and contributor to the Go programming language, where he writes thoughtful essays and deep dives on programming, software tools, debugging, language design, testing, open-source issues, and related topics. The posts range from practical techniques like differential coverage debugging and Go testing tips to broader reflections on software dependencies, compiler behavior, telemetry, and historical insights, all aimed at helping developers think more clearly about software problems and systems design.
The Go Programming Language (by Alan Donovan and Brian Kernighan, published by Addison-Wesley/O’Reilly online library) is regarded as the authoritative introduction to Go. Written by two highly respected computer scientists, it provides a clear and thorough exploration of Go’s syntax, concurrency model, standard library, and idiomatic practices. The book blends theory with practical examples, giving readers not just the mechanics of the language but also how to write clean, efficient, and maintainable Go code. It’s widely considered a must-read for anyone serious about mastering Go.
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.
Destel is Viktor Nikolaiev’s personal tech blog focusing largely on Go (Golang), backend engineering, concurrency, and system design. The posts go deep into topics like preserving ordering in concurrent Go apps, real-time batching, timeout middleware, and performance optimizations, often with code examples, benchmarks, and real trade-off discussions. It’s a mix of thoughtful essays, practical tips, and explorations of side projects—ideal for engineers who like to peel back layers and see how things work under the hood.
The Go Time podcast (hosted on Changelog) is a long-running show (340 episodes over 8 years) focused on discussing the Go programming language, tooling, practices, community, and ecosystem. Its episodes span from deep technical topics (e.g. execution traces, debugging, generics) to community discussion and broader software philosophy. In December 2024, the team announced that Go Time would retire its weekly production as part of a refocus on the main Changelog show, with plans for a spin-off podcast “Fallthrough” to carry forward Go-centric conversations.
Go 101 is an unofficial but comprehensive knowledge base for learning Go (Golang), aimed at both beginners and experienced developers. It organizes content into well-structured “books” like Go (Fundamentals) 101, Go Generics 101, Go Optimizations 101, and Go Details & Tips 101, covering syntax, runtime internals, generics, performance, idiomatic tips, and more. The site even supports offline access via a local tool — you can install it (go install go101.org/go101@latest) and run the site on your machine. It’s a go-to resource for those who want to dive deep into Go beyond the basics, combining reference material, explanations, quizzes, and nuanced insights.
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.
Alex Edwards’ blog is a well-crafted resource for Go developers, with posts that mix practical tutorials, opinion pieces, and deep dives into idiomatic Go code. Recent topics cover everything from test assertions minimalist style, configuration management, project and middleware structure, to handling panics properly in web applications. Each post tends to be clear, example-driven, and focused on helping go-developers write robust, maintainable, and well-architected software with minimal dependencies.
The Ardan Labs Blog is a high-quality technical resource focused on Go, Rust, Kubernetes, and production software engineering practices. Posts are authored by experienced practitioners (notably Bill Kennedy and others at Ardan Labs) and dive into topics like garbage collection pacing in Go, error handling using interfaces, performance optimization, code design, language internals, and more. Readers will often find both conceptual discussions and practical examples, making it useful for developers who want to deepen their understanding of building reliable and efficient systems in Go (and related ecosystems).
mcyoung.xyz is the personal blog of Miguel Young de la Sota, who works in Google and writes in depth about compilers, performance, programming languages (especially Go and Rust), and quirky or “fun” topics in software.
The Go Blog keeps Go programmers updated on the language’s evolution, tools, and ecosystem through official posts by the Go team.
Melatoni is a technical blog by nghiant3223, focused on software engineering topics, especially around Go and MySQL. Recent posts include deep dives like “Go Scheduler”, exploring how Go handles concurrent tasks; “Deadlock in MySQL”, which discusses causes and fixes; and “Prepared Statement in MySQL and Go”, showing how those two techs interact. The writing is practical and insightful, geared toward developers who want to understand internals and avoid pitfalls in real-world systems.