Course

Go

Topics in Go.

78 Topics 6 Quizzes 7h 48min Est. Time

Curriculum

1
Goroutine Scheduling (M:N)
Goroutine Scheduling (M:N)
2
Channel Types & Directions
Channel Types & Directions
3
Select Statement & Multiplexing
Select Statement & Multiplexing
4
Fan-Out / Fan-In Patterns
Fan-Out / Fan-In Patterns
5
Context Package & Cancellation
Context Package & Cancellation
6
sync.Pool & Object Reuse
sync.Pool & Object Reuse
7
Worker Pool (Pipeline)
Worker Pool (Pipeline)
8
errgroup for Error Handling
errgroup for Error Handling
9
Interface Satisfaction (Duck Typing)
Interface Satisfaction (Duck Typing)
10
Empty Interface (any) & Type Assertions
Empty Interface (any) & Type Assertions
11
Type Switches
Type Switches
12
Interface Embedding
Interface Embedding
13
Generics in Go 1.18+
Generics in Go 1.18+
14
Type Constraints & ~ Operator
Type Constraints & ~ Operator
15
Constraints Package (comparable, ordered)
Constraints Package (comparable, ordered)
16
Go Memory Model (happens-before)
Go Memory Model (happens-before)
17
Stack vs Heap Allocation (Escape Analysis)
Stack vs Heap Allocation (Escape Analysis)
18
GC: Non-Generational Concurrent Mark-Sweep
GC: Non-Generational Concurrent Mark-Sweep
19
GC Tuning (GOGC, GOMEMLIMIT)
GC Tuning (GOGC, GOMEMLIMIT)
20
Memory Profiling (pprof)
Memory Profiling (pprof)
21
Compiler Alloc Optimizations
Compiler Alloc Optimizations
22
Goroutine Stack Growth
Goroutine Stack Growth
23
reflect.Type & reflect.Value
reflect.Type & reflect.Value
24
Modifying Values via Reflection
Modifying Values via Reflection
25
Reflective Struct Tag Parsing
Reflective Struct Tag Parsing
26
Creating Functions at Runtime
Creating Functions at Runtime
27
Deep Equal Implementation
Deep Equal Implementation
28
Performance Cost of Reflection
Performance Cost of Reflection
29
Flect Library for Reflection
Flect Library for Reflection
30
Table-Driven Tests
Table-Driven Tests
31
Subtests & Parallel Execution
Subtests & Parallel Execution
32
Test Fixtures (TestMain)
Test Fixtures (TestMain)
33
Fuzzing (Go 1.18+)
Fuzzing (Go 1.18+)
34
Benchmarking & Profiling
Benchmarking & Profiling
35
Mocking Interfaces with Testify
Mocking Interfaces with Testify
36
Integration Testing with httptest
Integration Testing with httptest
37
Mutex vs RWMutex
Mutex vs RWMutex
38
Atomic Operations (sync/atomic)
Atomic Operations (sync/atomic)
39
Once for Lazy Initialization
Once for Lazy Initialization
40
Cond for Event Signaling
Cond for Event Signaling
41
Semaphore Pattern (Weighted)
Semaphore Pattern (Weighted)
42
Pipeline & Chain Patterns
Pipeline & Chain Patterns
43
Parallel MapReduce in Go
Parallel MapReduce in Go
44
CPU & Memory Profiling (pprof)
CPU & Memory Profiling (pprof)
45
Tracing with go tool trace
Tracing with go tool trace
46
Escape Analysis & Allocation Reduction
Escape Analysis & Allocation Reduction
47
Compiler Optimizations (inlining, bounds check elimination)
Compiler Optimizations (inlining, bounds check elimination)
48
Benchmark Best Practices (benchmem)
Benchmark Best Practices (benchmem)
49
Weapon of Mass Destruction: sync.Pool Explained
Weapon of Mass Destruction: sync.Pool Explained
50
Profiling gRPC & HTTP Services
Profiling gRPC & HTTP Services
51
Module Path & Versioning
Module Path & Versioning
52
Go Sum & Checksum Database
Go Sum & Checksum Database
53
Workspace Mode (Go 1.18+)
Workspace Mode (Go 1.18+)
54
Replacing Dependencies (replace directive)
Replacing Dependencies (replace directive)
55
Vendor Mode
Vendor Mode
56
Minimal Version Selection (MVS)
Minimal Version Selection (MVS)
57
Retract & Deprecation Directives
Retract & Deprecation Directives
58
unsafe.Pointer & ArbitraryType
unsafe.Pointer & ArbitraryType
59
Sizeof, Alignof, Offsetof
Sizeof, Alignof, Offsetof
60
Pointer Arithmetic
Pointer Arithmetic
61
String to Byte Slice Conversion (no copy)
String to Byte Slice Conversion (no copy)
62
Slice Header Manipulation
Slice Header Manipulation
63
unsafe.Slice & unsafe.String (Go 1.20+)
unsafe.Slice & unsafe.String (Go 1.20+)
64
Safety Rules for unsafe.Pointer
Safety Rules for unsafe.Pointer
65
net/http Handler Internals
net/http Handler Internals
66
HTTP Client Connection Pooling
HTTP Client Connection Pooling
67
gRPC Streams vs Unary
gRPC Streams vs Unary
68
WebSocket (gorilla/websocket)
WebSocket (gorilla/websocket)
69
TCP Server with net.Dialer
TCP Server with net.Dialer
70
UDP & Multicast in Go
UDP & Multicast in Go
71
TLS Certificate Pinning
TLS Certificate Pinning
72
JSON Encoding Tags & MarshalJSON
JSON Encoding Tags & MarshalJSON
73
Custom Marshaler/Unmarshaler
Custom Marshaler/Unmarshaler
74
Protocol Buffers (protobuf)
Protocol Buffers (protobuf)
75
MessagePack (msgpack)
MessagePack (msgpack)
76
Gob Encoding
Gob Encoding
77
Binary Encoding (binary package)
Binary Encoding (binary package)
78
Schema Evolution & Compatibility
Schema Evolution & Compatibility

Quizzes

Go Basics
5 questions
Go Core Concepts
5 questions
Go Intermediate
5 questions
Go Advanced
5 questions
Go Expert
5 questions
Go Mastery
5 questions