Skip to content
Codeloom

Topics / Go

Go

Simple, fast, concurrent. Go basics and the standard library.

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 3

Hand-written tutorials, ordered as a recommended learning path.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 07 Advanced Concurrency Master advanced Go concurrency patterns including fan-out/fan-in, pipelines, and worker pools with practical examples and production-ready code.
  8. 08 Database Patterns Master Go database patterns using sqlx and pgx for PostgreSQL including connection pooling, transactions, batch operations, and repository design.
  9. 09 Generics Patterns Learn practical Go generics patterns including type constraints, generic data structures, utility functions, and when to use generics vs interfaces.
  10. 10 gRPC Services Build production-ready gRPC services in Go with protobuf definitions, server and client implementation, streaming, interceptors, and error handling.
  11. 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. 12 Custom JSON Implement the json.Marshaler and json.Unmarshaler interfaces to control how Go types serialize to and from JSON.
  13. 13 Dependency Injection Learn practical dependency injection in Go using interfaces, constructor injection, and functional options without heavy frameworks.
  14. 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. 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. 16 Workspace Mode Use go.work files to develop multiple Go modules together without replace directives, simplifying local multi-module workflows.
  17. 17 Channels & Select Master Go channels and select statements with patterns for fan-out, fan-in, timeouts, cancellation, and pipeline composition.
  18. 18 Context Patterns Learn production-grade context patterns in Go including timeouts, cancellation propagation, value passing, and middleware integration.
  19. 19 Embedding & Composition Learn Go composition over inheritance with struct embedding, interface embedding, and practical patterns for clean architecture.
  20. 20 Error Wrapping Master Go error wrapping with fmt.Errorf %w, errors.Is, errors.As, and custom error types for clear, debuggable error chains.