1. make vs new in Gohistorical

    Allocation and initialization differences between new and make.

  2. Go Reflectionhistorical

    Runtime type/value inspection, settable values, interfaces, tags, and reflection trade-offs.

  3. Errors in Gohistorical

    Explicit error returns, wrapping, classification, inspection, and preserving operational context.

  4. Go Interfaceshistorical

    Implicit interface satisfaction, dynamic type/value pairs, nil subtleties, and API design.

  5. Go Functionshistorical

    First-class functions, multiple returns, closures, methods, variadics, and value semantics.

  6. Go Stringshistorical

    Immutable byte sequences, UTF-8 conventions, runes, indexing, conversion, and allocation.

  7. Go Mapshistorical

    Hash maps, zero-value reads, mutation, iteration, concurrency rules, and implementation-sensitive internals.

  8. Go unsafehistorical

    Low-level pointer/layout operations, guarantees, portability risks, and containment strategies.

  9. panic and recoverhistorical

    Panic unwinding, deferred cleanup, recovery boundaries, and when not to use panic.

  10. Go Type Systemhistorical

    Defined and alias types, interfaces, method sets, assignability, conversion, generics, and zero values.

  11. Go Arrayshistorical

    Fixed-length value types, copying semantics, indexing, iteration, and their relationship to slices.

  12. Go Sliceshistorical

    Slice descriptors, backing arrays, append/capacity, sharing, copying, and retention pitfalls.

  13. Go deferhistorical

    Deferred calls, LIFO execution, argument evaluation, return interaction, and practical cleanup patterns.

  14. 2.1 Contexthistorical

    Go context trees for cancellation, deadlines, timeouts, and request-scoped values, with lifecycle rules for passing and canceling contexts.

  15. 2.2 sync.WaitGrouphistorical

    Waiting for a group of goroutines to finish with Add, Done, and Wait, including the counter lifecycle and common Add/Wait misuse.

  16. 2.3 The sync Packagehistorical

    A map of Go's shared-memory synchronization primitives: Mutex, RWMutex, Once, Cond, Map, Pool, WaitGroup, and atomic operations.

  17. 2.4 sync.Maphistorical

    Go's specialized concurrent map, its intended workloads, read-optimized internal design, atomic map operations, and when a normal map plus mutex is clearer.

  18. sync.Poolhistorical

    Temporary object reuse, GC interaction, per-P optimization, and when pooling helps.

  19. 2.6 Selecthistorical

    How Go `select` waits on multiple channel operations, chooses among ready cases, uses `default`, handles nil channels, timeouts, and cancellation.

  20. sync.Oncehistorical

    Exactly-once process-local initialization and its concurrency semantics.

  21. 2.8 sync.Mutexhistorical

    Exclusive access to shared state with Go's Mutex, including zero-value usage, memory-ordering guarantees, critical-section design, and common mistakes.

  22. 2.9 sync.RWMutexhistorical

    Go's reader/writer mutex: concurrent readers, exclusive writers, writer preference, non-upgradable locking, and when RWMutex is actually useful.

  23. sync.Condhistorical

    Condition variables for waiting on state predicates under a lock.

  24. 2.11 Atomic Operationshistorical

    Go atomic operations, compare-and-swap, typed atomic values, atomic.Value, memory ordering, and when atomics are appropriate instead of locks.

  25. 2.12 Channelshistorical

    Go channels as typed communication and synchronization primitives: buffered vs. unbuffered behavior, closing, ownership, blocking semantics, and runtime implementation.

  26. 2.13 Go Concurrencyhistorical

    A map of Go concurrency: goroutines, channels, synchronization primitives, the memory model, happens-before relationships, and common concurrency patterns.

  27. 2.14 Goroutineshistorical

    What goroutines are, how `go f(...)` starts concurrent execution, how their stacks differ from OS-thread stacks, and how the runtime schedules them.

  28. Goroutine Poolshistorical

    Bounded concurrency, worker pools, queues, backpressure, and when a goroutine pool is unnecessary.

  29. 3.1 Go's G-M-P Schedulerhistorical

    The Go scheduler's G, M, and P abstractions, local run queues, work stealing, blocking syscalls, GOMAXPROCS, and asynchronous preemption.

  30. 3.2 Escape Analysishistorical

    How the Go compiler decides whether values can live in stack frames or must escape to longer-lived storage, how to inspect decisions, and why `new` does not imply heap allocation.

  31. Go Build Processhistorical

    From parsing and type checking through SSA/optimization, code generation, linking, modules, and build cache.

  32. Go Memory Managementhistorical

    Stacks, heap, allocation, escape analysis, garbage collection, and observable memory metrics.

  33. Go/Plan 9 Assemblyhistorical

    Reading Go assembler syntax, ABI-sensitive registers, stack frames, and generated machine code.

  34. Memory Alignment in Gohistorical

    Alignment, padding, struct layout, cache effects, and portable reasoning about field order.

  35. 3.7 Go Garbage Collectionhistorical

    Go's concurrent tracing garbage collector, mark/sweep phases, write barriers, GC pacing, GOGC, memory limits, observability, and tuning priorities.

  36. Go Stack Managementhistorical

    Small growable goroutine stacks, stack growth, copying, and escape-driven heap allocation.

  37. Go Heap Managementhistorical

    Go runtime heap allocation, size classes, spans, per-P caches, sweeping, and GC interaction.

  38. Unit Testing in Gohistorical

    Testing package conventions, table-driven tests, subtests, race checks, fuzzing, and maintainable boundaries.

  39. 4.2 pprofhistorical

    Profiling Go programs with CPU, heap, allocation, goroutine, mutex, and block profiles, plus a measurement-first workflow for finding performance bottlenecks.

  40. Go Benchmarkshistorical

    Writing repeatable Go benchmarks and interpreting time, allocations, variance, and compiler effects.

  41. 4.4 Memory Leaks in Gohistorical

    How Go programs retain memory through reachable objects, goroutine leaks, timers/channels, and non-Go memory, with a pprof-based diagnostic workflow.

  42. Go Runtime Tracehistorical

    Tracing goroutine scheduling, blocking, GC, network/syscall events, and runtime execution over time.