Search and navigate

Pages

Start HereRoadmapTutorialsCheatsheetInterview QuestionsResources

Published tutorials

Building a REST API with Go: The Complete TutorialGeneric Functions in Go: Writing Reusable CodeGo Benchmarking: Measuring Performance with testing.BGo Channels: Communication Between GoroutinesGo Constraints: comparable, Ordered and Custom SetsGo Context: Cancellation, Deadlines, and Request ValuesGo 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 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 Type System Deep Dive: Static Typing Done RightGolang Compilation and Execution ExplainedGolang 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 →

Go tutorial library

Search and filter the published library here by branch, format, or your saved learning progress.

36 tutorials available

Your learning progress

0 of 36 published lessons complete

Tutorial · Go fundamentals

Golang Hello World and Your First Go Program

Build a Golang Hello World program, understand package main and func main, accept an argument, then run and compile it with Go 1.24.7.

Read tutorial →
Tutorial · Go fundamentals

Golang Interfaces: What They Are and How to Use Them

Learn Go interfaces with real examples: implicit satisfaction, the nil interface trap, type switches, io.Reader, and refactoring for testable code.

Read tutorial →
Tutorial · Go fundamentals

Why Learn Golang and What Is Go Used For?

Why learn Golang? See where Go fits, what teams build with it, its tradeoffs, and a tested concurrency example before choosing it.

Read tutorial →
Tutorial · Go fundamentals

What Is Go and How Does a Go Program Work?

What is Go? Understand packages, compilation, garbage collection, concurrency, HTTP tooling, tradeoffs, and a tested service handler.

Read tutorial →
Tutorial · Go fundamentals

How to Download and Install Golang Safely

Download and install Golang on Windows, macOS, or Linux, verify the active toolchain, and avoid PATH and multiple-installation problems.

Read tutorial →
Tutorial · Go fundamentals

Golang IDEs: Choose an Editor for Your Workflow

Compare Golang IDE workflows and choose an editor by navigation, testing, debugging, remote work, and team needs instead of feature counts.

Read tutorial →
Tutorial · Go fundamentals

Golang File Structure for Modules and Applications

Learn a practical Golang file structure that starts small, separates commands from domain packages, and uses internal boundaries only when useful.

Read tutorial →
Tutorial · Go fundamentals

Golang Compilation and Execution Explained

Understand Golang compilation and execution with go run, go build, and go install, then produce and verify a reusable application binary.

Read tutorial →
Tutorial · Go fundamentals

Go Tools You Need for a Reliable Development Loop

Use essential Go tools to format, test, inspect, and build code with a repeatable local workflow that catches problems before review.

Read tutorial →
Tutorial · Go fundamentals

How to Learn Golang with a Focused Study Plan

Learn Golang with a focused eight-week study plan built around tested programs, deliberate practice, projects, and production skills.

Read tutorial →
Tutorial · Go fundamentals

Learn Golang with a Practical Beginner Course

Learn Golang through a practical course that moves from syntax to tested programs, modules, errors, concurrency, HTTP, and a final service.

Read tutorial →
Tutorial · Go fundamentals

Go's Type System Deep Dive: Static Typing Done Right

A tested tour of the Golang type system: named types vs aliases, assignability, comparability, untyped constants, and making illegal states unrepresentable.

Read tutorial →
Tutorial · Go fundamentals

Go Interview Questions: 25 Answers That Show Understanding

Prepare for Go interviews with concise answers about slices, interfaces, errors, concurrency, context, HTTP, testing, and performance.

Read tutorial →
Main topic · Go fundamentals

Go Tutorial: From First Program to Backend Foundations

Learn Go fundamentals through a practical path covering setup, types, functions, structs, errors, concurrency, testing, and HTTP.

Read tutorial →
Tutorial · Go concurrency

Go Context: Cancellation, Deadlines, and Request Values

Learn Go context with practical cancellation, timeout, HTTP request, and goroutine examples.

Read tutorial →
Tutorial · Go concurrency

Go Mutex: Protecting Shared State from Race Conditions

A golang mutex tutorial that proves the race first, then teaches Lock/Unlock, RWMutex, the copy bug, atomics, and the frank mutex-vs-channel call.

Read tutorial →
Tutorial · Go concurrency

sync.WaitGroup in Go: Coordinating Multiple Goroutines

A tested golang waitgroup guide: the Add/Done/Wait counter model, the copy-by-value deadlock, the Add-inside-goroutine race, and Go 1.25's WaitGroup.Go.

Read tutorial →
Tutorial · Go concurrency

Go select Statement: Multiplexing Channels Explained

Learn Go's select statement with tested code: the random-choice rule, non-blocking default, timeouts, the nil-channel trick, and context cancellation.

Read tutorial →
Tutorial · Go concurrency

Go Worker Pool Pattern: Bounded Concurrency at Scale

Build a Go worker pool with tested code: bounded concurrency, error propagation, context cancellation, correct channel closing, and how to size the pool.

Read tutorial →
Tutorial · Go concurrency

Goroutines in Go: Concurrency Without Leaks

Learn how goroutines run, how to wait for them, propagate errors, cancel work, and prevent leaks.

Read tutorial →
Tutorial · Go concurrency

Go Channels: Communication Between Goroutines

Learn Go channels, buffering, closing, range, ownership, pipelines, and cancellation with practical examples.

Read tutorial →
Tutorial · Go concurrency

Goroutine Leaks in Go: How to Detect and Prevent Them

Detect and fix golang goroutine leaks with tested code: runtime.NumGoroutine, the pprof goroutine profile, go test leak checks, and per-cause fixes.

Read tutorial →
Tutorial · Web and APIs

JSON in Go: Encoding, Decoding, and Validation

Encode and decode JSON safely in Go with struct tags, validation, unknown-field checks, and HTTP examples.

Read tutorial →
Tutorial · Web and APIs

Go net/http: Build an HTTP Server from Scratch

Build a production golang http server with net/http: Go 1.22 routing, PathValue, timeouts, graceful shutdown and static files, every example tested.

Read tutorial →
Tutorial · Web and APIs

Go HTTP Client: Timeouts, JSON, and Reliable Requests

Build reliable outbound HTTP requests in Go with client timeouts, context, JSON, status checks, body limits, and transport reuse.

Read tutorial →
Tutorial · Web and APIs

Go HTTP Middleware: Build a Production Chain

Build composable Go HTTP middleware for logging, recovery, request IDs, authentication, and timeouts.

Read tutorial →
Main topic · Web and APIs

Building a REST API with Go: The Complete Tutorial

Build a production-ready REST API in Go with only the standard library: net/http routing, JSON, middleware, context, graceful shutdown, and tests.

Read tutorial →
Tutorial · Testing and quality

Testing in Go: Table Tests, HTTP, Fakes, and Coverage

Write effective Go tests with table-driven cases, subtests, httptest, fakes, race detection, benchmarks, and useful coverage.

Read tutorial →
Tutorial · Testing and quality

Writing Unit Tests in Go: A Practical Guide

Write golang unit tests that catch bugs: test structure, error checks, table cases, fakes, injected clocks, and coverage, with real go test output.

Read tutorial →
Tutorial · Testing and quality

Table-Driven Tests in Go: The Idiomatic Way

Golang table driven tests done right: subtests with t.Run, parallel cases, error tables with errors.Is, and golden files, with real tested output.

Read tutorial →
Tutorial · Testing and quality

Go Benchmarking: Measuring Performance with testing.B

Learn Go benchmarking with testing.B: read ns/op, B/op and allocs/op, avoid the dead-code trap, use b.Loop, and compare implementations you can trust.

Read tutorial →
Tutorial · Testing and quality

Mocking in Go: Test Doubles Without Magic

Learn golang mocking the idiomatic way: small interfaces plus hand-written fakes, spies, and httptest, with generated mocks only when they earn it.

Read tutorial →
Tutorial · Testing and quality

Integration Testing in Go: Testing Real Boundaries

Write Go integration tests that hit real boundaries: HTTP with httptest, a real Postgres, plus build tags and -short to keep go test ./... fast.

Read tutorial →
Tutorial · Generics and internals

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 →
Tutorial · Generics and internals

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 →
Tutorial · Generics and internals

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 →