Go.
Cloud-native Go for distributed systems, Kubernetes tooling, DevOps automation, and high-concurrency backend services.
Beginner
Start here — no prior experience needed
Setting Up Go
Install Go, understand modules and GOPATH, configure VS Code with gopls, and write your first working program.
Variables in Go
Declare variables with var and :=, understand zero values, type inference, multiple assignment, and the blank identifier.
Data Types in Go
A complete guide to Go's built-in types: integers, floats, strings, booleans, runes, bytes, and explicit type conversions.
Operators in Go
Arithmetic, comparison, logical, bitwise, and assignment operators in Go — plus why Go has no ternary operator.
Control Flow in Go
Master if/else, switch statements, Go's single for loop, range iteration, and loop control with break, continue, and labels.
Functions in Go
Go functions with multiple return values, named returns, variadic parameters, defer, closures, and the special init() function.
Strings in Go
Work with Go strings using the strings package, fmt.Sprintf, strings.Builder, understand runes vs bytes, and use regular expressions.
Arrays and Slices in Go
Understand Go arrays and slices, use make, append, and copy correctly, work with 2D slices, and learn slice internals.
Maps in Go
Create and use Go maps with literals and make, delete keys, check for key existence, and understand iteration order.
Structs in Go
Define structs, use struct literals and embedding, add methods, work with struct tags, and understand anonymous fields.
Packages and Modules in Go
Understand Go modules, go.mod, writing and importing packages, internal packages, and package naming conventions.
Introduction to Go
What Go is, its history, design philosophy, and why it's the language of choice for cloud-native software, CLIs, and microservices.
Intermediate
For developers with core concepts down
Interfaces in Go
Understand Go's implicit interface implementation, the empty interface, type assertions, type switches, and common interface patterns.
Error Handling in Go
Master Go's error interface, create custom errors, use fmt.Errorf for wrapping, and apply errors.Is and errors.As for inspection.
Goroutines in Go
Launch goroutines with the go keyword, understand goroutine lifecycle, coordinate with sync.WaitGroup, and tune concurrency with GOMAXPROCS.
Channels in Go
Use buffered and unbuffered channels, the select statement, done channels for cancellation, and fan-out/fan-in patterns.
File I/O in Go
Read and write files with the os package and bufio, use os.ReadFile vs ioutil, and encode/decode JSON in Go.
Testing in Go
Write tests with the testing package, use table-driven tests and subtests, run benchmarks, and use testify for assertions.
HTTP Server in Go
Build HTTP servers with net/http, add routing and middleware, serve JSON APIs, and propagate context through request handlers.
CLI Tools in Go
Build command-line tools with the flag package, cobra CLI framework, and work with os.Args, stdin, stdout, and stderr.
Advanced
Production-grade patterns for experienced engineers
Concurrency Patterns in Go
Build worker pools, pipelines, use context for cancellation, protect shared state with sync.Mutex, and use atomic operations.
Generics in Go
Use type parameters and constraints in Go 1.18+, write generic functions and types, and apply the comparable and any constraints.
Memory Management in Go
Understand Go's garbage collector, stack vs heap allocation, escape analysis, profiling with pprof, and sync.Pool for object reuse.
Design Patterns in Go
Implement functional options, middleware chains, repository pattern, and wire-based dependency injection in idiomatic Go.
Go Interview Preparation
Top 35 Go interview questions and answers covering goroutines, channels, interfaces, memory, the scheduler, and common coding problems.