Why learn Go?
-
Tiny language surface — learn the whole thing in a weekend.
-
Compiles to a single static binary, perfect for cloud and CLI tools.
-
Built-in concurrency with goroutines and channels.
-
Dominant in DevOps infra (Docker, Kubernetes, Terraform).
What you can build with Go
High-throughput backends CLI tools and DevOps utilities Microservices and gRPC Network and systems programming
Go tutorials
54 articles · page 1 of 3Hand-written tutorials, ordered as a recommended learning path.
- 01 What Is Go? A practical introduction to Go — where it came from, what it was designed to fix, the kinds of systems it excels at, and the kinds it doesn't. With your first Go program.
- 02 Install & First Program A complete setup guide for Go on macOS, Linux, and Windows — install the toolchain, verify with go version, create a module, and run a real program with go run and go build.
- 03 Variables & Types A practical tour of Go's variable declarations and basic types — var vs :=, int and float64, strings, bool, byte and rune, zero values, type conversion, and constants.
- 04 Functions A complete guide to Go functions — declarations, parameters, multiple and named returns, the error idiom that defines Go, variadic parameters, and functions as values.
- 05 Control Flow Go's control flow in full — if with an init statement, the only loop (for) in all four forms, switch without break, type switches, and how defer fits in.
- 06 Slices & Maps A practical guide to Go's two everyday collections — slices and maps. Covers arrays vs slices, make and append, len and cap, the shared-backing-array gotcha, and the comma-ok idiom.
- 07 Advanced Concurrency Master advanced Go concurrency patterns including fan-out/fan-in, pipelines, and worker pools with practical examples and production-ready code.
- 08 Database Patterns Master Go database patterns using sqlx and pgx for PostgreSQL including connection pooling, transactions, batch operations, and repository design.
- 09 Generics Patterns Learn practical Go generics patterns including type constraints, generic data structures, utility functions, and when to use generics vs interfaces.
- 10 gRPC Services Build production-ready gRPC services in Go with protobuf definitions, server and client implementation, streaming, interceptors, and error handling.
- 11 Profiling with pprof Learn how to profile Go applications using pprof to find CPU bottlenecks, memory leaks, and goroutine issues with practical examples.
- 12 Custom JSON Implement the json.Marshaler and json.Unmarshaler interfaces to control how Go types serialize to and from JSON.
- 13 Dependency Injection Learn practical dependency injection in Go using interfaces, constructor injection, and functional options without heavy frameworks.
- 14 Fuzz Testing Write fuzz tests in Go to discover edge cases and bugs automatically. Learn the fuzzing API, corpus management, and fixing found crashes.
- 15 Iterator Patterns Explore Go's range-over-func iterators introduced in Go 1.23, including push and pull patterns for custom sequences and lazy evaluation.
- 16 Workspace Mode Use go.work files to develop multiple Go modules together without replace directives, simplifying local multi-module workflows.
- 17 Channels & Select Master Go channels and select statements with patterns for fan-out, fan-in, timeouts, cancellation, and pipeline composition.
- 18 Context Patterns Learn production-grade context patterns in Go including timeouts, cancellation propagation, value passing, and middleware integration.
- 19 Embedding & Composition Learn Go composition over inheritance with struct embedding, interface embedding, and practical patterns for clean architecture.
- 20 Error Wrapping Master Go error wrapping with fmt.Errorf %w, errors.Is, errors.As, and custom error types for clear, debuggable error chains.