Programming · 5 modules

Go Fundamentals

Learn Go from the ground up — the language behind Kubernetes, Docker and modern cloud tooling. Syntax, types, functions, pointers, errors and concurrency, remembered with spaced repetition.

practice cards
65
practice cards
per day
~10 min
per day
level
Beginner
level
modules
5
modules
About this topic

What is Go?

Go (Golang) is a statically-typed, compiled language built at Google for simple, reliable software at scale. It is deliberately small — a handful of clear concepts instead of a sprawling feature set — which is exactly why it powers so much cloud-native infrastructure, from Kubernetes to Docker to the CLIs you use every day.

This track walks the fundamentals: package structure and syntax, types and collections, functions, methods and interfaces, pointers and structs, and Go's distinctive take on errors and concurrency with goroutines.

It uses spaced repetition so the syntax and idioms move from "I looked that up" to fluent recall — the foundation for writing real Go.

What you'll learn

5 modules, seed to bloom

Each module is a set of practice cards — 65 in total. Answer, review, and watch your knowledge grow from seed to full bloom.

Basic Syntax and Fundamentals

Packages, imports, variables, constants, and Go's core syntax rules

13 cards

Types and Collections

Numeric types, booleans, operators, random numbers, slices, and maps

13 cards

Functions, Methods, and Interfaces

Declaring functions, first-class functions, methods, interfaces, and composition

13 cards

Data Structures and Pointers

Variable scope, structs, pointers, nil, and memory

13 cards

Errors, Concurrency, and Advanced Topics

Error handling, goroutines, channels, select, and control flow operators

13 cards
Try before you plant

Sample questions

A taste of the real cards. Pick an answer, then reveal the explanation.

Sample · Go Fundamentals

What is the primary purpose of the package main declaration?

  • AIt identifies the code as belonging to the main package — the required starting point for an executable program
  • BIt imports all standard library packages so they can be used throughout the program
  • CIt marks the file as the project's configuration file that controls build settings
  • DIt tells the compiler to apply production-level optimizations when building the binary
Sample · Go Fundamentals

What is the difference between an integer and a real number in Go?

  • AIntegers are whole numbers, real numbers (floating-point) have fractional parts — Go won't mix them without explicit conversion
  • BIntegers are stored on the heap while real numbers are placed on the stack for faster access
  • CReal numbers can only be declared with const, because their precision must be fixed at compile time
  • DThere is no difference — Go converts between integers and floats automatically whenever needed
Sample · Go Fundamentals

What is the syntax for declaring a basic function in Go?

  • AThe func keyword, followed by the name, parentheses for parameters, and curly braces for the body
  • BThe function keyword, followed by the name, a colon, and the parameter list in angle brackets
  • CThe def keyword, followed by the name and an indented body block without any braces
  • DThe fn keyword, followed by the name and an arrow pointing to the return type and body
Sample · Go Fundamentals

How does Go handle errors without the use of exceptions?

  • AFunctions return an error value as a result, which the caller must explicitly check
  • BErrors are caught with try/catch blocks that wrap the code that might fail
  • CThe runtime silently logs errors to standard error and continues execution normally
  • DAll errors immediately terminate the program with a non-zero exit code and stack trace
How Gnoseed works

Learn it once, keep it for good

1

Answer a question

Each card is one practical concept with multiple options. Pick what you think is right.

2

Get the full answer

See the correct option plus a clear explanation, and a link to deeper docs when one is available.

3

Review at the right time

A spaced-repetition engine (SM-2 or FSRS) resurfaces each card just before you would forget it.

Why learn this

Why Go is worth learning

It runs the cloud-native world

Kubernetes, Docker, Terraform and countless CLIs are written in Go. Reading and writing it is a real advantage.

Small language, fast payoff

Go is intentionally minimal, so you can become productive quickly instead of learning for months.

Concurrency that makes sense

Goroutines and channels make concurrent code approachable — a standout strength of the language.

Strong job market

Go skills are in demand for backend, infrastructure and platform engineering roles.

FAQ

Common questions

Do I need prior programming experience? +

A little helps, but Go is one of the friendliest languages to learn. The track starts from package structure and basic syntax.

How long does it take? +

About 10 minutes a day. Spaced repetition means short, frequent sessions beat long cramming, so the syntax and idioms stick.

Is it free? +

Yes, completely free. No registration or credit card is required, and all your progress is stored locally in your browser.

Ready to learn Go?

Plant your first seed today. Ten minutes a day is all it takes to grow real, lasting Go fluency.

Start learning free