Go
70 highly-curated topics available for revision.
1. Fundamentals
Zero Values
HighHow Go automatically initializes variables without explicit assignment.
Arrays vs Slices
HighThe difference between fixed-size arrays and dynamic slices.
Maps
HighKey-value hash tables in Go.
Structs
HighCreating custom data types and simulating object-oriented behavior.
Packages & Modules
MediumOrganizing and managing dependencies in Go.
2. Types
Pointers (Passing by Reference)
HighHow to share and mutate data without making expensive copies.
Interfaces
HighImplicitly fulfilled contracts for polymorphism.
Type Assertions
MediumExtracting the concrete underlying value from an interface.
Type Switches
MediumRouting logic based on the underlying type of an interface.
Generics
HighWriting reusable functions and data structures without losing type safety.
3. Concurrency
Goroutines
HighLightweight, user-space threads managed by the Go runtime.
Channels
HighThe primary mechanism for communicating safely between Goroutines.
Select Statement
HighWaiting on multiple channel operations simultaneously.
WaitGroups
HighWaiting for a collection of Goroutines to finish executing.
Mutexes
HighPreventing race conditions by locking shared memory.
Atomic Operations
MediumLock-free synchronization for simple counters and flags.
Worker Pools
HighControlling concurrency limits to prevent out-of-memory crashes.
Fan-In / Fan-Out
HighMultiplexing and demultiplexing data streams across channels.
Pipelines
MediumStreaming data through a series of concurrent processing stages.
Race Conditions
HighWhen concurrent operations ruin data integrity, and how to find them.
Deadlocks
HighWhen goroutines wait on each other forever.
4. Context
The Context Package
HighPropagating request-scoped data, cancellations, and timeouts.
Context Cancellation
HighManually aborting goroutines using WithCancel.
Context Deadlines
MediumSetting an absolute timestamp for a context to expire.
Context Timeouts
HighSetting relative time limits on operations.
5. Errors
Error Handling
HighErrors are just values in Go.
Error Wrapping
HighAdding context to errors while preserving the original cause.
errors.Is and errors.As
HighInspecting the root cause of wrapped errors.
Panic and Recover
MediumHandling catastrophic failures and preventing server crashes.
6. Memory
Pointers & Memory Allocation
HighHow pointers interact with the Stack and the Heap.
Escape Analysis
HighHow the compiler decides between Stack and Heap allocation.
Garbage Collection
HighHow Go automatically frees unused memory.
Memory Allocation Strategies
MediumHow Go manages internal memory via Arenas and Spans.
7. Runtime
The Go Runtime
HighThe invisible engine embedded in every Go application.
The Scheduler
HighHow Go multiplexes thousands of Goroutines onto a few OS threads.
The GMP Model
HighThe internal architecture of the Go Scheduler.
Goroutine Lifecycle
MediumThe states of a Goroutine from creation to death.
8. Networking
The net/http Package
HighThe gold standard for web servers and clients.
Custom HTTP Servers
HighWhy you shouldn't use http.ListenAndServe in production.
The HTTP Client
HighMaking external API calls correctly.
HTTP Connection Pooling
MediumTuning the http.Transport for high-throughput.
Graceful Shutdown
HighStopping the server without dropping active user requests.
9. Database
10. Performance
Profiling in Go
HighIdentifying bottlenecks in your Go applications.
net/http/pprof
HighLive profiling for running web servers.
Benchmarking
HighMeasuring the exact speed and memory allocations of your code.
Escape Analysis & Performance
HighWhy heap allocations kill your server's throughput.
Runtime Trace
MediumVisualizing the Go Scheduler and Goroutine blocks.
11. Testing
Unit Testing
HighThe built-in testing framework in Go.
Table-Driven Tests
HighThe definitive Go pattern for writing clean, repetitive tests.
Mocking Interfaces
HighIsolating code by simulating dependencies.
Writing Benchmarks
MediumImplementing performance tests in the testing framework.
Fuzz Testing (Fuzzing)
MediumFinding edge-case bugs by throwing random garbage at your code.
12. Production
Graceful Shutdown (Kubernetes)
HighHow your Go app interacts with Kubernetes Pod Lifecycle events.
Structured Logging
HighWhy you shouldn't use log.Println in production.
Metrics (Prometheus)
HighMonitoring the health of your Go application.
Distributed Tracing
MediumFollowing a request across multiple microservices.
13. Tooling
14. Advanced
Reflection (reflect)
MediumInspecting and modifying types at runtime.
The unsafe Package
Bypassing Go's type safety and memory protections.
sync.Pool
MediumRecycling objects to save the Garbage Collector.
Atomic Operations
HighLock-free synchronization at the hardware level.