Go

Join the Go Track
Go is a compiled, open source programming language with a small, consistent syntax, a powerful standard library, and fantastic tooling. It's a great fit for web backends and command-line tools.
Join the Go Track
Track mentors

49 Mentors

Our mentors are friendly, experienced Go developers who will help teach you new techniques and tricks.
Track students

21,481 Students

Join thousands of students who have enjoyed learning and improving their skills by taking this track.
Track exercises

109 Exercises

Hundreds of hours have gone into making these exercises fun, useful, and challenging to help you enjoy learning.

About Go

package greeting

// HelloWorld greets the world.
func HelloWorld() string {
	return "Hello, World!"
}

Fans of Go (called gophers) describe Go as having the expressiveness of dynamic languages like Python or Ruby, with the performance of compiled languages like C or C++.

The language is open source, and was started by engineers at Google. It's written using a C-style syntax, has statically typed variables, manages memory using garbage collection, and is compiled into stand-alone executables.

Go is noted for the concurrent programming features built into the language core, the networking packages in the standard library (such as a web server), fast compilation and execution speed. Its simple, minimalistic and consistent language design make for a delightful experience, while the abundant and thoughtful tooling addresses traditional problems such as consistent formatting and documentation.

The home page for Go is golang.org, and there is an excellent interactive tutorial at tour.golang.org.

Join the Go track

Self-contained finite problems with which to learn the language

I have spent time with the Clojure, Elixir & Go tracks and all have been incredibly beneficial, providing self-contained finite problems with which to learn the language. The Go language track has been wonderful in introducing me to the language, what idiomatic code is, and the many different ways in which one can solve a problem.

Relaxed. Encouraging. Supportive.

Meet the Go Track mentors

Once you join the Go language track, you will receive support and feedback from our team of mentors. Here are the bios of a few of the mentors of this track.

Avatar of Fabio Falzoi

Fabio Falzoi GitHub Profile

SwEng since 2012, I have experience in various software engineering fields: from Linux kernel and embedded programming, to big data and web applications. I started using Go and immediately felt in love with it: now I use it and teach it professionally.
Avatar of De Ville Weppenaar

De Ville Weppenaar https://github.com/devillexio

I developed a curiosity towards Go through wanting to better understand the tools we used at work. I was pleasantly surprised to see how straightforward the language specification is. I’m keen to learn and to help others on their Go journey.
Avatar of Katrina Owen

Katrina Owen https://github.com/kytrinyx

I love Go for its simplicity and consistency. I've written Go professionally, and also use it for open source projects.
Avatar of Sergey Kovalev

Sergey Kovalev https://github.com/serg-kovalev

I have more than 10 years of production experience. I love Go/Ruby because of its friendly and active community. Nothing is impossible when you do what you love! Happy coding!
Avatar of Jordan Peterson

Jordan Peterson https://github.com/dysolution

Go is my first and favorite compiled language. I love its extensive standard library and its documentation conventions, tooling, and idioms that make the code useful and accessible to programmers with a wide range of experience.
Avatar of Will Murphy

Will Murphy https://github.com/willmurphyscode

I'm a former teacher, now an engineer at Pivotal. I'm passionate about learning new programming languages, and helping others learn.
Fun. Challenging. Interesting

Community-sourced Go exercises

These are a few of the 109 exercises on the Go track. You can see all the exercises here.

Matching Brackets
medium
parsing
strings
Matrix
medium
arrays
exception handling
matrices
strings
type conversion
Say
medium
numbers
strings
text formatting
transforming
Leap
easy
booleans
conditionals
integers
logic
Bowling
medium
algorithms
arrays
conditionals
Binary Search Tree
medium
algorithms
recursion
searching
sorting
structs
trees
Passionate. Knowledgeable. Creative.

Meet the Go Track maintainers

The Go Maintainers are the brains behind the Go Track. They spend their spare time creating interesting and challenging exercises that we can all learn from. We are incredibly grateful for their hard work. Here are the bios of a few of the maintainers of this track.

Avatar of Lee Nipper

Lee Nipper

Firmware Engineer by day. I like Go a lot, and I'm optimistic about its adoption. Helping on Exercism track allows me to learn more. My focus is adding exercise solutions and test case generators.
Avatar of Tom Leen

Tom Leen thomasleen.com

I do what I always do...when the problem seems vast and unsolvable...I build another machine. :rocket:
Avatar of ferhat elmas

ferhat elmas ferhatelmas.com

Passionate Developer

Get started with the Go track. As with everything on Exercism, it's 100% free!

Join the Go Track