Go Programming Language
0Loading crowd target
0Loading crowd target
6correct to beat the crowd
40 free Go Programming Language trivia questions with answers — science & nature quiz, new questions added Oct 2026.
Go, often called Golang, is one of the youngest languages to become a fixture of everyday software engineering. It was designed by three veteran engineers who wanted fast builds, simple syntax and first-class support for concurrent programs, and it now sits underneath much of modern cloud infrastructure. This quiz covers the ground a Go test usually covers: where the language came from and who designed it, the basics of syntax and types, how errors and memory are handled, the concurrency features Go is known for, and the command-line tools that ship with it. A few questions look at the famous open-source projects written in Go. The questions are multiple choice and run from first-week material to details that catch out working developers. Each answer comes with a short explanation, so the quiz works as revision before an interview, a check on what you remember from a tutorial, or a quick challenge between builds.
30 of 40 questions with answers and explanations. Play the quiz
Q 01Which technology company created the Go language, unveiling it as an open-source project in November 2009?
Google began designing the language in 2007 to make programmers more productive on multicore machines and very large codebases. Version 1.0 followed in March 2012.
Q 02Which animal, first drawn by Renée French for a radio station T-shirt, became the mascot of the Go language?
Gopher
The Go Gopher first promoted the New Jersey radio station WFMU, long before the language existed. The same drawing later served as a Bell Labs mail avatar.
Q 03Which DevOps tool, started in France by Solomon Hykes and released in 2013, is written in Go?
Docker
Docker began as an internal project at the hosting firm dotCloud, which later renamed itself after the tool. A year after launch it swapped the Linux tool LXC for a Go component of its own.
Q 04Which container orchestration system, written in Go, takes its name from the Ancient Greek word for a helmsman?
Kubernetes
Kubernetes shares its Greek root with the words cybernetics and governor. Its logo is a ship's wheel with seven spokes, a nod to the codename Project 7.
Q 05Go's designers were motivated by a shared dislike of which language, then used for huge programs at their workplace?
C++
C++ builds of one huge program were taking Rob Pike about 45 minutes each. The decision to create something new was made before one of those builds had finished.
Q 06Which co-designer of Go shared the 1983 Turing Award with Dennis Ritchie for creating the Unix operating system?
Ken Thompson
Ken Thompson had already created the B language, the ancestor of C, and built the chess machine Belle. He was in his sixties when work on Go began.
Q 07Go's formal grammar ends every statement with which punctuation mark, though programmers rarely type it themselves?
Semicolon
Semicolons are added by Go's lexer at the ends of lines as it scans the source. That rule is why the opening brace of an if or for statement cannot go on the next line.
Q 08Go's standard code formatter settles a long-running programmer argument by indenting each level with what?
One tab
One tab per level is what the formatter emits by default, and the official style guide says to use spaces only if you must. It also sets no limit on line length.
Q 09The Go compiler refuses to build any program that contains what, a rule meant to keep compilation fast?
An unused import
An unused import stops the build outright, and so does an unused local variable. The designers chose to trade short-term convenience for build speed and clearer programs.
Q 10The nickname Golang was never the official name of Go; it arose from which part of the early project?
Its website address
Its website address was originally golang.org, because no .dev domain existed at the time. The team still says the name of the language is just plain Go.
Q 11A runnable Go program must begin in a package with which name, shared with the function where execution starts?
main
main names both the package and the function, which takes no arguments and returns no value. The moment that function returns, the whole program exits.
Q 12Go has a single looping construct that also does the job of a while loop; which keyword starts it?
for
for is the only loop keyword in Go, and there is no do-while either. Written with just a condition it acts like while, and written with nothing at all it runs forever.
Q 13Unlike C, Go reclaims memory that a program no longer uses through which automatic runtime mechanism?
Garbage collection
Q 21Which Go type lets concurrently running functions pass values to one another, using the <- arrow operator?
Channel
Channel sends wait until the other side has taken the value, unless a buffer has been set up. That built-in pause keeps the two sides in step without any explicit locking.
Q 22Which Go keyword schedules a function call to run just before the surrounding function returns, often to close a file?
defer
defer calls run in last-in, first-out order, so the most recently scheduled one fires first. Because the cleanup sits right beside the code that opened the resource, it is hard to forget.
Q 23Which Go operator declares a new variable and assigns its first value in one step, but only inside functions?
:=
Garbage collection in Go has been tuned until its pauses often last under a millisecond, even for large heaps. On multicore machines the collector works alongside the running program.
Q 14Go deliberately leaves out which pillar of object-oriented design, offering type embedding in its place?
Inheritance
Inheritance was dropped because the designers felt object-oriented languages spend too much effort on the relationships between types. Go has no type hierarchy at all.
Q 15Go's designers wanted the readability of Python but kept which approach to types, borrowed from C?
Static typing
Static typing fixes every variable's type before the program runs, so the compiler catches many mistakes. Go lightens the paperwork by inferring types from assigned values.
Q 16Which Go identifier is the zero value of pointers and function values, doing the job other languages give to null?
nil
nil is a predeclared identifier rather than a reserved keyword. Booleans start as false, numbers as 0 and strings as empty text, so no Go variable is ever left uninitialised.
Q 17By long-standing convention, how does a Go function such as os.Open tell its caller that something went wrong?
Returning an error
Returning an error as an extra result is the Go way, made easy because functions can hand back several values. The designers felt try-catch blocks lead to convoluted code.
Q 18Which kind of Go type is satisfied automatically by any type that happens to have the right set of methods?
Interface
Interface satisfaction is implicit in Go: a type qualifies simply by having the listed methods, nothing more. New ones can therefore be defined later without touching existing code.
Q 19In Go, what does a program create by writing the keyword go in front of a function call?
A goroutine
A goroutine starts with a stack of just a few kilobytes that grows only when needed. That makes it practical to run hundreds of thousands of them in a single program.
Q 20Geth, one of three original client programs written for which blockchain, is built in the Go language?
Ethereum
Ethereum's backers funded three separate implementations of its protocol at the outset. Geth was the Go one, written alongside a version in Python.
The := form is called a short variable declaration, and the compiler works out the type from the value on the right. Outside a function, declarations need a keyword such as var.
Q 24A Go function can be called from other packages only if its name begins with what?
A capital letter
A capital letter is all it takes, because Go has no public or private keywords. Any name that starts in lower case stays hidden inside the package that declares it.
Q 25Which Go keyword, shared with C, defines a composite type made up of a sequence of named fields?
struct
struct types can have methods attached in Go, and one can be embedded inside another to borrow its fields and methods. Each field has a name and a type of its own.
Q 26Which Go type is a flexible view onto an underlying array, growing through the built-in append function?
Slice
Slice capacity is limited by the array underneath, so when appended data no longer fits, the contents move to a new, larger array. Most Go code uses them in place of raw arrays.
Q 27Which built-in Go type stores key-value pairs and hands them back in no guaranteed order when looped over?
Map
Map iteration order is left unspecified and can differ from one loop to the next. A program that needs a stable order has to keep its own sorted list of keys.
Q 28Which tool shipped with Go rewrites source files into one standard layout, so that all Go code looks alike?
gofmt
gofmt has formatted all of the code in the standard packages. It even lines up the comments on neighbouring lines into tidy columns, a chore few programmers would do by hand.
Q 29Which long-requested feature finally arrived in Go with version 1.18, released in March 2022?
Generics
Generics let one function work with many types by declaring type parameters. Their absence had drawn considerable criticism since the earliest versions of Go.
Q 30Go source code is defined to be text in which encoding, co-invented in 1992 by two of Go's designers?
UTF-8
UTF-8 was first sketched on a placemat in a New Jersey diner, then built into an operating system within days. It has since become the dominant text encoding of the web.