Go - Installation & Toolchain

Beginner 10/10 Teacher 10/10 Architect 10/10

Install Go

Download from go.dev/dl and follow the installer for your OS. Then verify in a new terminal:

go version
# Expected: go version go1.xx.x darwin/amd64 (your OS/arch)

Quick OS-specific installs

  • macOS (Homebrew):
    brew install go
    which go && go version
    
  • Windows:
    winget install -e --id GoLang.Go
    # or: choco install golang
    # open a new PowerShell, then:
    go version
    
  • Ubuntu/Debian:
    sudo snap install go --classic
    # or from tarball per go.dev/dl instructions
    go version
    

Add Go to PATH (if needed)

Most installers handle PATH. If not, add the Go bin and GOPATH bin to PATH:

# bash/zsh
export PATH=$PATH:/usr/local/go/bin:$(go env GOPATH)/bin

GOPATH vs Modules

  • Go modules (Go 1.13+): the standard for dependency management. Use go mod init in your project root.
  • GOPATH: legacy workspace mode. Prefer modules for new projects.

Environment

  • GOROOT: where Go is installed (managed by installer).
  • GOPATH: your workspace (default ~/go); binaries land in $GOPATH/bin.
  • Add $GOPATH/bin to PATH to use installed tools.

Core Commands

  • go run: compile and run a program
  • go build: build a binary
  • go test: run tests
  • go fmt: format code
  • go vet: static checks
  • go get: add/update dependencies (modules)
  • go mod tidy: clean up module file

Editor setup

  • Install VS Code + Go extension, or GoLand, or your preferred editor.
  • Enable "Format on save" to auto-run gofmt.

Quick Start

  1. Create a folder: mkdir hello, cd hello
  2. Init module: go mod init example.com/hello
  3. Create main.go:
package main
import "fmt"
func main(){ fmt.Println("hello") }

Run with go run . or build with go build.

Exercises

  1. Install Go and verify go version.
  2. Initialize a module and run a simple program.