Search and navigate

Pages

Start HereRoadmapTutorialsCheatsheetInterview QuestionsResources

Published tutorials

Building a REST API with Go: The Complete TutorialError Handling in Go: Wrapping, Classification, and APIsFan-Out Fan-In in Go: Parallel Work with ChannelsFuzz Testing in Go: Finding Bugs AutomaticallyGeneric Data Structures in Go: Stack, Queue and SetGeneric Functions in Go: Writing Reusable CodeGin in Go: Build and Test a Small JSON APIGo Benchmarking: Measuring Performance with testing.BGo Channel Patterns: Advanced Recipes That WorkGo Channels: Communication Between GoroutinesGo Concurrency Patterns: A Practical CatalogueGo Constraints: comparable, Ordered and Custom SetsGo Context: Cancellation, Deadlines, and Request ValuesGo defer: Cleanup, Ordering, and Common TrapsGo HTTP Client: Timeouts, JSON, and Reliable RequestsGo HTTP Middleware: Build a Production ChainGo Interview Questions: 25 Answers That Show UnderstandingGo Mutex: Protecting Shared State from Race ConditionsGo net/http: Build an HTTP Server from ScratchGo Reflection: When and How to Use reflectGo select Statement: Multiplexing Channels ExplainedGo Tools You Need for a Reliable Development LoopGo Tutorial: From First Program to Backend FoundationsGo Type Parameters: Syntax and Constraints ExplainedGo Worker Pool Pattern: Bounded Concurrency at ScaleGo's Garbage Collector Explained: How Memory Is ManagedGo's Type System Deep Dive: Static Typing Done RightGolang Compilation and Execution ExplainedGolang Developer Salary 2026: US, UK and RemoteGolang File Structure for Modules and ApplicationsGolang Hello World and Your First Go ProgramGolang IDEs: Choose an Editor for Your WorkflowGolang Interfaces: What They Are and How to Use ThemGoroutine Leaks in Go: How to Detect and Prevent ThemGoroutines in Go: Concurrency Without LeaksHow to Download and Install Golang SafelyHow to Learn Golang with a Focused Study PlanIntegration Testing in Go: Testing Real BoundariesJSON in Go: Encoding, Decoding, and ValidationLearn Golang with a Practical Beginner CourseMocking in Go: Test Doubles Without Magicsync.WaitGroup in Go: Coordinating Multiple GoroutinesTable-Driven Tests in Go: The Idiomatic WayTesting in Go: Table Tests, HTTP, Fakes, and CoverageWhat Is Go and How Does a Go Program Work?Why Learn Golang and What Is Go Used For?Writing Unit Tests in Go: A Practical Guide
Open full search and filters →
deepen branch

Generics and internals

Type parameters, constraints, reusable data structures, reflection, memory, and runtime internals.

View all branches

Lesson 2 · Tutorial · Go 1.21+

Go Type Parameters: Syntax and Constraints Explained

Learn golang type parameters by example: the [T Constraint] syntax, what each constraint unlocks, type inference, the ~ token, and the method limitation.

Read tutorial
Lesson 3 · Tutorial · Go 1.21+

Generic Functions in Go: Writing Reusable Code

Write golang generic functions the right way: Map, Filter, Reduce, and a drop-in utilities package. Every example tested on Go 1.24 with real output.

Read tutorial
Lesson 4 · Tutorial · Go 1.21+ (cmp.Ordered); all examples tested on Go 1.24.7

Go Constraints: comparable, Ordered and Custom Sets

Master Go generic constraints: type sets vs method sets, comparable, the ~ token, cmp.Ordered, and writing your own Number constraint. Tested on Go 1.24.

Read tutorial
Lesson 5 · Tutorial · Go 1.24+ (GOMEMLIMIT needs Go 1.19+)

Go's Garbage Collector Explained: How Memory Is Managed

How the Go garbage collector works: concurrent mark-and-sweep, escape analysis, GOGC and GOMEMLIMIT, plus cutting allocations with measured benchmarks.

Read tutorial
Lesson 6 · Tutorial · Go 1.23+

Generic Data Structures in Go: Stack, Queue and Set

Build Go generic data structures: a tested Stack, Queue, Set, and priority queue with iterators and concurrency guidance.

Read tutorial
Lesson 7 · Tutorial · Go 1.18+ (all examples tested on Go 1.24.7)

Go Reflection: When and How to Use reflect

Learn Go reflection the right way: the three laws, reflect.TypeOf and ValueOf, struct tags, settability, a tested validator, and when to avoid reflect.

Read tutorial