AlgoMaster Logo

Course Roadmap

Last Updated: May 17, 2026

1 min read
28 sections239 chapters
Access:
Difficulty:
Priority:
Section / Chapter
Welcome
Course Roadmap
Course Setup
Join the Community
Introduction to Go
What is Go?
History of Go
Why Go?
Installing Go
First Go Program
Go Toolchain
Go Playground
Basic Syntax
Variables & Declarations
Short Variable Declaration
Basic Types
Zero Values
Constants
iota
Type Conversions
Operators
Input & Output
Comments & Naming
Control Flow
If-Else
If with Init
For Loop
Range
Switch Statement
Type Switch
Break & Continue
Labeled Statements
Functions
Function Basics
Multiple Return Values
Named Return Values
Variadic Functions
First-Class Functions
Anonymous Functions
Closures
defer
init Function
Blank Identifier
Arrays & Slices
Arrays
Slices Basics
Slice Internals
Creating Slices
append & copy
Nil vs Empty Slices
Slice Tricks
Multidimensional Slices
slices Package
Slice Gotchas
Maps
Map Basics
Map Operations
Comma-ok Idiom
Iterating Maps
Map Internals
Sets with Maps
maps Package
Strings
String Basics
UTF-8 & Runes
String Iteration
strings Package
strconv Package
String Builder
String Formatting
Byte Slices & Strings
Regular Expressions
Structs
Struct Basics
Struct Literals
Exported & Unexported Fields
Anonymous Structs
Struct Embedding
Struct Tags
Constructor Functions
Struct Comparison
JSON with Structs
Methods & Interfaces
Methods Basics
Value vs Pointer Receivers
Method Sets
Interfaces Basics
Implicit Interface Satisfaction
Empty Interface
Type Assertions
Type Switches
Interface Composition
Common Interfaces
Interface Best Practices
Interface vs Concrete Types
Pointers
Pointer Basics
Pointers & Functions
Pointer Receivers
new vs make
Nil Pointers
Pointer to Pointer
When to Use Pointers
Error Handling
error Interface
Creating Errors
Error Handling Patterns
Wrapping Errors
errors.Is & errors.As
Custom Error Types
Sentinel Errors
panic
recover
Error Handling Best Practices
Packages & Modules
Packages Basics
Go Modules
Importing Packages
Module Versioning
Vendoring
Go Workspaces
Internal Packages
Publishing Modules
Goroutines
Goroutine Basics
Goroutine Lifecycle
WaitGroup
GMP Scheduler
GOMAXPROCS
Goroutines vs Threads
Goroutine Leaks
Goroutine Patterns
Goroutine Debugging
Channels
Channel Basics
Buffered Channels
Unbuffered Channels
Channel Directions
Range over Channels
Select Statement
Nil Channels
Fan-In
Fan-Out
Done Channel
Concurrency Patterns
Concurrency Overview
Worker Pools
Pipelines
Mutex
Atomic Operations
sync.Once
sync.Pool
errgroup
Race Detector
Concurrency Best Practices
Context Package
Context Basics
context.WithCancel
context.WithTimeout
context.WithDeadline
context.WithValue
Context Propagation
Generics
Generics Basics
Type Parameters
Type Constraints
Type Sets
Generic Functions
Generic Types
Type Inference
constraints Package
Generics Best Practices
File I/O
os Package
bufio Package
io.Reader & io.Writer
ioutil Alternatives
filepath Package
fs Package
embed Directive
Temporary Files & Dirs
JSON & Encoding
JSON Basics
Struct Tags for JSON
JSON Streaming
Custom Marshalers
json.RawMessage
XML Encoding
CSV Encoding
gob Encoding
Testing
Testing Basics
Table-Driven Tests
Subtests
Test Helpers
Benchmarks
Fuzzing
httptest
Test Fixtures
Code Coverage
Testing Best Practices
Networking & HTTP
net/http Basics
HTTP Handlers
HTTP Middleware
ServeMux Routing
HTTP Client
JSON APIs
Request Context
TCP Server
UDP Server
Graceful Shutdown
Database Access
database/sql Basics
Connecting to Database
Querying Data
Prepared Statements
Transactions
Connection Pooling
NULL Handling
sqlx Package
Reflection
Reflection Basics
reflect.Type & reflect.Value
Inspecting Structs
Reading Struct Tags
Dynamic Invocation
Reflection Performance
Reflection Use Cases
Unsafe & cgo
unsafe Package
unsafe.Pointer
Sizeof, Alignof, Offsetof
cgo Basics
Calling C from Go
cgo Pitfalls
Standard Library
sync Package
sort Package
time Package
log/slog
crypto Package
embed Package
text/template
html/template
flag Package
math/rand
Modern Go
range over func
Iterators
slices Package (Modern)
maps Package (Modern)
cmp Package
Enhanced ServeMux
Loop Variable Change
Go Version History
Best Practices
Effective Go
Project Layout
Dependency Injection
Profiling with pprof
Linting & staticcheck
Build Tags
go generate
Cross-Compilation
Documentation
Common Mistakes