TodayTools

Go flashcards

Simple, fast servers and cloud tools that are easy to ship.

Donate
Beginner friendly, starts from zero
Section
How to study
0
GoStart from zero · 1 of 11

What is Go, in one plain sentence?

Go is a programming language for building fast, dependable server programs and tools, designed to be small enough to learn quickly.

Simple on purpose.
Show again
11 left
Got it

Tap to turn over. Swipe right if you know it, left to see it again.

All topics

What you will learn

  1. Start from zero

    • What Go is and why it exists4 cards
    • Key words4 cards
    • Getting ready3 cards
  2. Core basics

    • Modules and the go tool2 cards
    • Variables and types3 cards
    • Functions and errors3 cards
    • Control flow2 cards
    • Slices and maps2 cards
    • Structs and methods2 cards
    • Pointers, strings and tests3 cards
  3. Next steps

    • Interfaces3 cards
    • Errors in depth2 cards
    • Goroutines, channels and context4 cards
    • HTTP and JSON3 cards
    • Generics and the standard library3 cards
    • Project layout and tools2 cards
  4. Go deeper

    • Runtime and scheduler4 cards
    • Concurrency patterns4 cards
    • Iterators and generics in depth2 cards
    • Performance3 cards
    • Production and security4 cards

Final test and certificate

10 questions drawn fresh from the whole topic, about 15 minutes. Sign in, score 80% or more and get a free certificate with your name and a public check link anyone can open, such as an employer or a teacher. Not signed in? Try a practice test from the cards.

Take the final test

About these cards

  • Reviewed 26 October 2026
  • CoversGo 1.27Go 1.26
How these cards are made

Go at a glance

Go is a simple programming language from Google for fast, reliable servers and tools that build into one file you can run anywhere.

Like a well-run restaurant kitchen: a short menu, clear rules, and many cooks (goroutines) working at once without getting in each other's way.

Words you will meet

Compiler
The tool that turns your Go code into a program file
Package
A folder of Go files that belong together, like a chapter of a book
Module
Your whole project with its name and the outside packages it uses
Variable
A named box that holds a value
Type
The kind of value a box holds, like a whole number or text
Function
A named set of steps that takes inputs and gives back results
Struct
A bundle of named values, like a form with fields
Goroutine
A very light worker that runs a function at the same time as others

The steps

  1. 1. Start from zero (11 cards): What Go is, where it runs and the words you need.
  2. 2. Core basics (17 cards): Modules, variables, functions, errors, loops, slices, maps, structs, pointers and tests.
  3. 3. Next steps (17 cards): Interfaces, errors in depth, goroutines, channels, context, HTTP, JSON, generics and tools.
  4. 4. Go deeper (17 cards): Scheduler, memory, GC, concurrency patterns, iterators, profiling and production.
All 11 cards in Start from zero
What is Go, in one plain sentence?
Go is a programming language for building fast, dependable server programs and tools, designed to be small enough to learn quickly.
Why did Google create Go?
In 2007 Google's huge C++ programs took ages to build and were hard to read. Robert Griesemer, Rob Pike and Ken Thompson designed Go for fast builds, simple code and easy multitasking.
Where do you meet Go in daily life?
Docker, Kubernetes and Terraform are written in Go, and so are backends at many payment, food delivery and streaming companies. If an app scales in the cloud, Go is often near.
What is a goroutine, using a kitchen picture?
A goroutine is like one more cook in the kitchen who works on a dish at the same time. Go can run thousands of these light cooks without slowing down.
What are a package and a module?
A package is a folder of Go files that work together, like one chapter. A module is the whole book: your project, its name and the outside packages it uses.
What is a struct, in plain words?
A bundle of named values, like a form with fields for name, phone and city. You fill one in for each customer.
How does Go show that something went wrong?
Functions hand back an extra result called an error. If it is empty, things went fine; if not, you decide what to do. No hidden jumps.
What does it mean that Go builds one file?
Go turns your whole program into a single runnable file that needs nothing else installed. You copy it to a server and it just runs.
What do you need to start with Go?
Download Go free from go.dev, open a terminal, and use any editor (many add a Go extension). Typing a few commands is the only skill you need.
What does a first Go program look like?
Every program starts in package main with a func main. You import fmt to print, then go run builds and runs it.
What will you be able to do after this topic?
Build real command-line tools and web services in Go, use goroutines safely, read cloud tools' source code, and handle Go interview questions.
Go cheatsheet

go command

  • go mod init example.com/app Start a module
  • go run . Build and run
  • go build -o app . Build a binary
  • go test ./... -race -cover Test all, race check, coverage
  • go mod tidy Sync go.mod with imports
  • go vet ./... Find suspicious code
  • GOOS=linux GOARCH=arm64 go build Cross-compile

Syntax

  • x := 5 / var x int Declare and set / zero value
  • for i := range n {} Loop 0 to n-1
  • for k, v := range m {} Loop over map or slice
  • v, ok := m[key] Map lookup with presence
  • s = append(s, x) Grow a slice
  • func (a *Acct) Pay() {} Method with pointer receiver
  • defer f.Close() Run at function return

Errors

  • if err != nil { return err } Pass the error up
  • fmt.Errorf("load: %w", err) Wrap with context
  • errors.Is(err, os.ErrNotExist) Match a known error
  • errors.As(err, &target) Find an error type
  • errors.Join(e1, e2) Combine errors

Concurrency

  • go f() Start a goroutine
  • wg.Go(f); wg.Wait() Start and wait (1.25+)
  • ch := make(chan T, n) Buffered channel
  • select { case v := <-ch: ... } Wait on several channels
  • context.WithTimeout(ctx, d) Deadline for work
  • var mu sync.Mutex Guard shared state

Standard library picks

  • slices.Sort / slices.Contains Slice helpers
  • maps.Keys(m) Iterator over keys
  • strings.Builder Build text efficiently
  • http.NewServeMux() Router with methods and path values
  • json.Marshal / json.Unmarshal Encode and decode JSON
  • slog.Info(msg, k, v) Structured logging
Donate