← All Courses
Learn Go logo

Learn Go

Coming Soon

Cloud-native services, CLIs, and concurrent systems

Go Cloud-Native Concurrency CLI Kubernetes

Coming Soon

The language behind Docker, Kubernetes, and most of the cloud-native ecosystem. Go’s simplicity, fast compilation, and first-class concurrency make it ideal for building services, CLIs, and infrastructure tooling.

This course covers Go from fundamentals through goroutines and channels to building production cloud services.

Start Here — Learning Roadmap

A suggested path from zero to mastery. Follow these steps in order:

  1. Take the Tour of Go — Complete the official interactive Tour of Go to learn syntax, types, and basic concurrency in the browser
  2. Read Effective Go — Study idiomatic patterns, naming conventions, and Go philosophy from the official guide
  3. Learn Go with Tests — Work through the TDD-based tutorial to learn Go by writing tests first, building muscle memory for the language
  4. Build CLI Tools — Create command-line applications using cobra or the standard library flag package
  5. Master Concurrency — Understand goroutines, channels, select statements, sync primitives, and common concurrency patterns
  6. Build Web Services — Create HTTP servers and REST APIs using the standard library net/http or frameworks like Chi/Gin
  7. Work with Databases — Learn database/sql, use sqlx or GORM, understand connection pooling and transactions
  8. Study the Standard Library — Go’s standard library is unusually powerful — learn encoding/json, net/http, io, os, and context deeply
  9. Write Production Code — Implement structured logging, middleware, graceful shutdown, configuration management, and testing
  10. Go Cloud-Native — Containerize with Docker, deploy to Kubernetes, build gRPC services, and use cloud SDKs

Official & Core Documentation

  • A Tour of Go — Official interactive tutorial teaching Go fundamentals in the browser (Beginner)
  • Effective Go — Idiomatic Go patterns, style, and conventions from the Go team (Beginner)
  • Go by Example — Annotated example programs covering the entire language (Beginner)
  • Go Standard Library Documentation — Complete API reference for Go’s rich standard library (All levels)
  • Go Specification — The formal language specification (Advanced)
  • Go Blog — Official blog with deep dives on language features, design decisions, and best practices (Intermediate)
  • Go Wiki — Community-maintained wiki with FAQs, best practices, and project recommendations (All levels)
  • Go Roadmap — Community-created visual roadmap for Go developers (Beginner)

GitHub Awesome Lists & Curated Collections

  • awesome-go — The definitive curated list of Go frameworks, libraries, and software, one of the most starred repos on GitHub
  • awesome-golang-security — Curated list of Go security resources, tools, and libraries
  • awesome-go-education — Curated list of Go educational resources, articles, and tutorials
  • go-patterns — Curated list of Go design patterns, recipes, and idioms
  • awesome-grpc — Curated list of gRPC resources, tools, and libraries across languages including Go
  • awesome-go-style — Collection of Go style guides and best practices from various organizations

Interactive Courses & Hands-On Platforms

Free Courses

  • Learn Go with Tests — Free TDD-based approach to learning Go, widely recommended by the community (Beginner)
  • Practical Go Lessons — Free, comprehensive Go introduction covering 41 chapters (Beginner)
  • Gophercises — Free coding exercises designed specifically for Go developers (Intermediate)
  • Go Playground — Write and run Go code directly in the browser (All levels)

University & MOOC Courses

Practice & Challenges

  • Exercism Go Track — Mentored coding exercises with community feedback (Beginner)
  • Codewars Go — Progressive coding challenges in Go (All levels)
  • LeetCode Go — Algorithm challenges with Go support (Intermediate)
  • Advent of Code — Annual coding puzzles, popular for practicing Go (Intermediate)
  • CodeCrafters — Go Track — Build your own Redis, Docker, Git from scratch in Go (Intermediate)
  • HackerRank Go — Go-specific practice problems and coding challenges (Beginner)

Video Courses & YouTube Channels

Structured Course Playlists

Individual Creators & Channels

  • Anthony GG — Practical Go projects and real-world application development (Intermediate)
  • Dreams of Code — Modern Go development, tooling, and project walkthroughs (Intermediate)
  • JustForFunc — Francesc Campoy’s excellent Go programming series (Intermediate)
  • TechWorld with Nana — Go and DevOps tutorials for beginners (Beginner)
  • Ardan Labs (Bill Kennedy) — Advanced Go training from the author of Go in Action (Advanced)
  • Golang Dojo — Go tutorials, tips, and project-based learning (Beginner)
  • Melkey — Go web development, project builds, and tooling reviews (Intermediate)
  • Fireship — Go in 100 Seconds — Quick, engaging overview of Go (Beginner)
  • Golang Cafe — Go interview questions, exercises, and practical development (Intermediate)

Books & Long-Form Reading

Free Online Books

  • Go by Example — Free annotated example programs covering the entire language (Beginner)
  • Practical Go Lessons — Free comprehensive book covering Go fundamentals through advanced topics (Beginner)
  • An Introduction to Programming in Go — Free introductory Go book by Caleb Doxsey (Beginner)
  • Go 101 — Free online book with deep dives into Go internals and details (Intermediate)
  • Effective Go — Free official guide to writing idiomatic Go code (Beginner)
  • Go Web Examples — Free collection of practical Go web development examples (Beginner)

Essential Paid Books

  • The Go Programming Language — Donovan and Kernighan’s comprehensive guide, the definitive Go book (Intermediate, Paid)
  • Let’s Go — Alex Edwards’ practical guide to building professional web applications in Go (Intermediate, Paid)
  • Let’s Go Further — Sequel covering advanced API patterns, JSON handling, and deployment (Advanced, Paid)
  • Learning Go — Jon Bodner’s modern Go guide, updated for Go 1.21+ features (Intermediate, Paid)
  • Concurrency in Go — Master goroutines, channels, and concurrent patterns (Advanced, Paid)
  • 100 Go Mistakes and How to Avoid Them — Teiva Harsanyi’s guide to writing better Go code (Intermediate, Paid)

Community, Practice & News

Forums & Discussion

Newsletters & Blogs

  • Golang Weekly — Weekly newsletter with Go news, articles, and community updates
  • Awesome Go Weekly — Weekly digest of new and trending Go projects
  • Go Blog — Official Go team blog with authoritative articles on language design
  • Applied Go — Practical Go articles with real-world examples and visualizations
  • Dave Cheney’s Blog — Influential Go blog covering best practices and performance

Package Registries & Ecosystems

  • pkg.go.dev — Go’s official package discovery and documentation site
  • Awesome Go — Searchable web version of the awesome-go curated list
  • Go Modules — Official guide to Go’s dependency management system

Tools & Environments

  • Go Playground — Browser-based Go compiler with instant feedback and sharing
  • VS Code + Go Extension — Lightweight editor with excellent Go support via the official extension
  • GoLand — Full-featured Go IDE from JetBrains with advanced refactoring (Paid)
  • golangci-lint — Fast, configurable Go linter aggregator running 100+ linters in parallel
  • delve — Feature-rich debugger for Go programs
  • Air — Live-reload utility for Go applications during development
  • go test / go bench — Built-in testing and benchmarking framework in Go’s standard library
  • pprof — Built-in CPU and memory profiling tool for Go programs
  • ko — Build and deploy Go applications to Kubernetes without Dockerfiles
  • GoReleaser — Automate Go binary releases with cross-compilation and changelog generation
  • Task — Task runner and build tool written in Go, simpler alternative to Make