Resources

Curated collection of essential Go resources for learners and professional developers. From official documentation to community tools.

Official Documentation

Language Reference

Go Language Specification

Complete formal specification of the Go programming language.

  • Precise language semantics
  • Type system details
  • Grammar and syntax rules
  • Memory model and concurrency

Go Standard Library

Comprehensive API reference for Go standard library.

  • All standard packages
  • Detailed API documentation
  • Usage examples
  • Source code links

Effective Go

Essential guide to writing clear, idiomatic Go code.

  • Best practices
  • Common patterns
  • Naming conventions
  • Code organization

Go FAQ

Official frequently asked questions.

  • Design decisions explained
  • Common misconceptions clarified
  • Platform-specific questions
  • Historical context

Getting Started

A Tour of Go

Interactive introduction to Go fundamentals.

  • Browser-based learning
  • Hands-on exercises
  • Progressive lessons
  • No installation required

Go by Example

Learn Go through annotated example programs.

  • Practical examples
  • Organized by topic
  • Copy-paste ready code
  • Clear explanations

Go Playground

Browser-based Go compiler for experimenting with code.

  • No setup required
  • Instant execution
  • Share code snippets
  • Pre-Go 1.18+ support

Development Tools

IDEs and Editors

Visual Studio Code

Most popular editor for Go development.

  • Go Extension - Official extension
  • IntelliSense and autocomplete
  • Integrated debugging
  • Testing integration
  • Free and open source

GoLand

Professional IDE from JetBrains.

  • Advanced refactoring
  • Smart code completion
  • Integrated debugger
  • Database tools
  • 30-day free trial

Vim/Neovim

Lightweight editor with Go support.

  • vim-go plugin
  • Fast and efficient
  • Customizable workflow
  • Terminal-based

Sublime Text

Lightweight cross-platform editor.

  • GoSublime plugin
  • Fast performance
  • Minimal UI
  • Extensive plugin ecosystem

Go Toolchain

go build

Compile Go packages and dependencies.

  • Cross-compilation support
  • Build tags
  • Conditional compilation
  • CGO support

go test

Test Go packages automatically.

  • Unit testing
  • Benchmarking
  • Example tests
  • Coverage reports

go fmt

Format Go source code automatically.

  • Consistent formatting
  • Zero configuration
  • Community standard
  • Editor integration

go vet

Examine Go source code for suspicious constructs.

  • Static analysis
  • Bug detection
  • Best practice checks
  • Pre-commit integration

go mod

Module maintenance and dependency management.

  • Semantic versioning
  • Dependency resolution
  • Vendor support
  • Reproducible builds

Code Quality Tools

golangci-lint

Fast Go linters aggregator.

  • 50+ linters in one tool
  • Parallel execution
  • Editor integration
  • CI/CD friendly

staticcheck

Advanced static analysis tool.

  • Deep code analysis
  • Performance checks
  • Style consistency
  • Unused code detection

gosec

Security-focused static analyzer.

  • Security vulnerability detection
  • Common mistake identification
  • OWASP compliance
  • CI integration

goimports

Automatically organize imports.

  • Add missing imports
  • Remove unused imports
  • Canonical formatting
  • Editor integration

Frameworks and Libraries

Web Development

net/http (Standard Library)

Built-in HTTP client and server.

  • Production-ready
  • Zero dependencies
  • HTTP/2 support
  • TLS included

Gin

High-performance HTTP web framework.

  • Fast router
  • Middleware support
  • JSON validation
  • Error management

Echo

High performance, extensible web framework.

  • Optimized router
  • Automatic TLS
  • HTTP/2 support
  • WebSocket support

Fiber

Express-inspired web framework.

  • Express.js-like API
  • Zero memory allocation
  • Extensive middleware
  • Fast routing

Chi

Lightweight, idiomatic router.

  • Standard library compatible
  • Composable middleware
  • Context-aware
  • RESTful routing

Database

database/sql (Standard Library)

Generic SQL database interface.

  • Driver-agnostic
  • Connection pooling
  • Prepared statements
  • Transaction support

GORM

Full-featured ORM library.

  • Auto migrations
  • Associations
  • Hooks and callbacks
  • Plugin system

sqlx

Extensions for database/sql.

  • Named parameters
  • Struct scanning
  • IN clause expansion
  • Minimal abstraction

pgx

PostgreSQL driver and toolkit.

  • Native protocol
  • Connection pooling
  • Prepared statements
  • Copy protocol

go-redis

Type-safe Redis client.

  • Redis 6 support
  • Pipelining
  • Pub/Sub
  • Cluster support

Testing

testing (Standard Library)

Built-in testing framework.

  • Unit testing
  • Benchmarking
  • Example tests
  • Table-driven tests

testify

Toolkit with assertion helpers.

  • Rich assertions
  • Mocking support
  • Suite interface
  • HTTP testing helpers

gomock

Official mocking framework.

  • Interface mocking
  • Code generation
  • Matcher library
  • Call verification

httptest (Standard Library)

HTTP testing utilities.

  • Mock servers
  • Request recording
  • Response validation
  • Integration testing

ginkgo

BDD-style testing framework.

  • Expressive syntax
  • Nested test organization
  • Parallel execution
  • Rich matchers

Serialization

encoding/json (Standard Library)

Built-in JSON encoder/decoder.

  • Standard implementation
  • Struct tags
  • Streaming API
  • Custom marshaling

Protocol Buffers

Language-neutral serialization.

  • protobuf-go - Official library
  • Efficient binary format
  • Schema evolution
  • Cross-language support

msgpack

Efficient binary serialization.

  • go-msgpack - Popular implementation
  • Faster than JSON
  • Compact format
  • Cross-language

Concurrency

sync (Standard Library)

Basic synchronization primitives.

  • Mutex and RWMutex
  • WaitGroup
  • Once
  • Pool

context (Standard Library)

Context for goroutine coordination.

  • Cancellation signals
  • Deadline propagation
  • Request-scoped values
  • Timeouts

errgroup

Goroutine group with error handling.

  • Error propagation
  • Context cancellation
  • Wait for completion
  • Bounded concurrency

Community Resources

Learning Platforms

Exercism - Go Track

Learn Go through exercises and mentorship.

  • 100+ exercises
  • Community mentorship
  • Progressive difficulty
  • Free and open source

Go Dev (Official Learning Path)

Official curated learning resources.

  • Beginner to advanced
  • Video tutorials
  • Documentation guides
  • Best practices

Learn Go with Tests

Learn Go through test-driven development.

  • TDD approach
  • Practical examples
  • Free online book
  • Clear explanations

Gophercises

Coding exercises for Go developers.

  • 20+ exercises
  • Video walkthroughs
  • Real-world problems
  • Free courses

Blogs and Articles

The Go Blog (Official)

Official blog from Go team.

  • Release announcements
  • Language design
  • Best practices
  • Community highlights

Dave Cheney’s Blog

Influential Go developer and speaker.

  • Performance tips
  • Best practices
  • Design patterns
  • Conference talks

Ardan Labs Blog

Go training and consulting company.

  • Deep technical articles
  • Performance analysis
  • Language mechanics
  • Architecture patterns

Go Time Podcast

Weekly podcast about Go.

  • Interviews with experts
  • Language discussions
  • Library reviews
  • Community news

Community Forums

Go Forum

Official community forum.

  • Help and support
  • Best practices
  • Project announcements
  • Job postings

Gophers Slack

Active Slack workspace.

  • Invite link
  • Real-time help
  • Topic-specific channels
  • Direct interaction with experts

r/golang (Reddit)

Reddit community for Go developers.

  • News and discussions
  • Q&A
  • Project showcases
  • Weekly threads

Stack Overflow - Go

Q&A for Go developers.

  • Searchable knowledge base
  • Expert answers
  • Code examples
  • Active community

Video Content

JustForFunc

Video series by Francesc Campoy (former Go team member).

  • Language features
  • Best practices
  • Live coding
  • Interviews

GopherCon Talks

Official GopherCon conference videos.

  • Expert presentations
  • Advanced topics
  • Case studies
  • Community speakers

Ardan Labs YouTube

Go training videos.

  • Language mechanics
  • Performance optimization
  • Design patterns
  • Workshop recordings

Books

The Go Programming Language by Alan A. A. Donovan and Brian W. Kernighan

Comprehensive guide to Go.

  • Fundamentals to advanced
  • Canonical reference
  • Practical examples
  • By Go team members

Concurrency in Go by Katherine Cox-Buday

Master Go concurrency patterns.

  • Goroutines and channels
  • Concurrency patterns
  • Best practices
  • Real-world examples

Go in Action by William Kennedy, Brian Ketelsen, and Erik St. Martin

Practical Go guide.

  • Hands-on approach
  • Testing and debugging
  • Web development
  • Production deployment

Learning Go by Jon Bodner

Modern Go programming.

  • Go 1.18+ features
  • Idiomatic patterns
  • Best practices
  • Real-world applications

Black Hat Go by Tom Steele, Chris Patten, and Dan Kottmann

Go for hackers and pentesters.

  • Network programming
  • Security tools
  • Cryptography
  • Offensive security

Tools and Utilities

Package Management

pkg.go.dev

Official Go package discovery.

  • All public packages
  • API documentation
  • Import counts
  • Module versions

Go Modules

Built-in dependency management.

  • Semantic versioning
  • Reproducible builds
  • Private repositories
  • Replace directives

Online Compilers

Go Playground

Official online compiler.

  • No setup required
  • Share snippets
  • Format code
  • Built-in examples

Replit - Go

Online IDE with collaboration.

  • Full development environment
  • Real-time collaboration
  • Deployment support
  • Package management

Development Utilities

air

Live reload for Go applications.

  • Hot reload
  • Custom commands
  • Build optimization
  • Development workflow

goreleaser

Release automation for Go projects.

  • Cross-platform builds
  • GitHub releases
  • Docker images
  • Homebrew formulas

delve

Go debugger.

  • Interactive debugging
  • Breakpoints and stepping
  • Variable inspection
  • Editor integration

Code Snippets and Examples

Go Code Examples

Official example repository.

  • Various project types
  • Best practices
  • Common patterns
  • Real-world code

Awesome Go

Curated list of Go libraries.

  • Libraries by category
  • Frameworks and tools
  • Resources and tutorials
  • Community projects

GoDoc

Documentation generator.

  • Auto-generate docs
  • Local doc server
  • Source code navigation
  • Example extraction

Official Social Media

X (formerly Twitter): @golang

Official X account.

  • News and updates
  • Community highlights
  • Release announcements
  • Event information

LinkedIn: Go

Go developers LinkedIn group.

  • Professional network
  • Job opportunities
  • Discussions
  • Industry news

YouTube: Golang

Official YouTube channel.

  • Conference talks
  • Tutorials
  • Announcements
  • Live streams

Contributing to Go

Go GitHub Repository

Go compiler and standard library source.

  • Report issues
  • Contribute code
  • Review proposals
  • Read documentation

Go Contribution Guide

How to contribute to Go.

  • Getting started
  • Code review process
  • Contribution guidelines
  • Signing CLA

Go Proposals

Language and library proposals.

  • Feature proposals
  • Design discussions
  • Community feedback
  • Implementation status

Go Code Review Comments

Common code review feedback.

  • Naming conventions
  • Error handling
  • Package comments
  • Idiomatic Go

Advanced Topics

Performance Optimization

Go Performance Wiki

Official performance guide.

  • Profiling tools
  • Benchmarking
  • Memory optimization
  • CPU profiling

pprof

Built-in profiling support.

  • CPU profiling
  • Memory profiling
  • Goroutine profiling
  • Block profiling

trace

Runtime execution tracer.

  • Goroutine activity
  • System calls
  • GC events
  • Detailed timeline

Deployment

Docker and Go

Containerize Go applications.

  • Multi-stage builds
  • Minimal images
  • Alpine Linux
  • Distroless images

Kubernetes Client

Official Kubernetes Go client.

  • API access
  • Custom controllers
  • Operators
  • Cloud-native apps

Security

Go Security Policy

Security issue reporting.

  • Vulnerability disclosure
  • Security advisories
  • CVE tracking
  • Response process

crypto (Standard Library)

Cryptographic primitives.

  • Hashing algorithms
  • Encryption
  • Digital signatures
  • TLS support

Learn More

Comprehensive Learning Path:

Reference Materials:

Last updated