Basic Syntax
Variable declarations, constants, control flow, zero values, functions, multiple returns, and defer
Variable declarations, constants, control flow, zero values, functions, multiple returns, and defer
Single binaries, cross-compilation, Docker multi-stage builds, and CI/CD
Official SDK tiers, the minimal server, state handles, and implementations in Go, C#, and TypeScript
net/http, ServeMux, middleware, choosing chi/gin/echo, and mapping to ASP.NET Core
sync.WaitGroup, Mutex, errgroup, worker pools, and the race detector
database/sql, sqlc, GORM, ent, and mapping to EF Core/Dapper
Constructor injection, Wire/fx, and environment-variable-based configuration
The error type, wrapping, errors.Is/As, and when to use panic/recover
Type parameters, constraints, comparable, and differences from C# generics
Installing Go, the go command, editor setup, and writing your first program
Comparing Go and C#/.NET across design philosophy, runtime, performance, and ecosystem
Goroutines, channels, select, and conceptual differences from async/await
log/slog, structured logging, OpenTelemetry, and metrics
Method receivers, implicit interface satisfaction, and designing small interfaces
Understanding go.mod, packages, visibility rules, and internal packages
pprof, trace, benchmarks, and reducing allocations
Pointers, pass-by-value, escape analysis, and GC basics
Standard directory layout, applying Clean/Hexagonal Architecture, and idiomatic Go design
Arrays, slices, maps, range loops, and differences from List/Dictionary
Overview of key standard packages such as fmt, io, encoding/json, time, and os
The testing package, table-driven tests, testify, mocking, and benchmarks
Cancellation, timeouts, and propagating request-scoped values
Developer tools such as gofmt, go vet, golangci-lint, and go generate
struct, type definitions, embedding, value semantics, and differences from class/record