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.
- flashcards
- 75
- flashcards
- per day
- ~10 min
- per day
- level
- Beginner
- level
- modules
- 5
- modules
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.
5 modules, seed to bloom
Each module is a set of flashcards — 75 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
15 cardsTypes and Collections
Numeric types, booleans, operators, random numbers, slices, and maps
15 cardsFunctions, Methods, and Interfaces
Declaring functions, first-class functions, methods, interfaces, and composition
15 cardsData Structures and Pointers
Variable scope, structs, pointers, nil, and memory
15 cardsErrors, Concurrency, and Advanced Topics
Error handling, goroutines, channels, select, and control flow operators
15 cardsSample questions
A taste of the real flashcards. Pick an answer, then reveal the explanation.
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
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
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
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
Learn it once, keep it for good
Answer a question
Each card is one practical concept with multiple options. Pick what you think is right.
Get the full answer
See the correct option plus a clear explanation, and a link to deeper docs when one is available.
Review at the right time
A spaced-repetition engine (SM-2 or FSRS) resurfaces each card just before you would forget it.
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.
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.
