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

67 Mentors

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

36,724 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 Gabriel Guzman

Gabriel Guzman https://github.com/gabeguz

I find Go to be a pleasure to work with. I've used it professionally as well as for many personal projects. It's my go to language for command line tools, and simple APIs.
Avatar of Jaime Martinez

Jaime Martinez LinkedIn

I first started working with Go over 4 years ago writing REST APIs, I fell in love! I have been working with it ever since. I love spreading the Go-love, I hope can do that here too!
Avatar of Shreyansh Pandey

Shreyansh Pandey GitHub

Golang has been a saviour in my line of work; the extensibility, the ease of use... everything is absolutely fantastic. Go's specific choices on strict, inherent linting rules let you focus on your business logic and not on which format is the best. Go is my weapon of choice in all things SRE and financial tech.
Avatar of Fredrik Rubensson

Fredrik Rubensson https://github.com/froderik

Go is one of the languages I have worked with during my 20+ years as a developer. I like it for some use cases. It is a noisy thing and that can be really good at times!
Avatar of Zoid

Zoid https://github.com/zoidbergwill

I love writing Go, because of how I feel I can be very productive in it, and it's easy to read other People's code.
Avatar of Anuchit Prasertsang

Anuchit Prasertsang GitHub

Go is a fantastic language for me. We have the Go community in Thailand is growing.
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.

Diffie Hellman
medium
algorithms
cryptography
integers
transforming
math
Linked List
medium
data structure
pointer
Binary Search Tree
medium
algorithms
recursion
searching
sorting
structs
trees
Pig Latin
medium
conditionals
strings
transforming
Grep
medium
algorithms
arrays
conditionals
searching
strings
Series
easy
arrays
refactoring
strings
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 Gabriel Nelle

Gabriel Nelle

Since early 2016 I'm a professional Go developer. I love it because it's so simple and yet so powerful. Before Go if have worked with a lot of other languages. At least one year of experience I have in Python, PHP, JavaScript and several Basic languages from QBasic to VB.Net.
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 ferhat elmas

ferhat elmas ferhatelmas.com

Passionate Developer
Avatar of John Arundel

John Arundel Bitfield Consulting

Consultant, author of 'Cloud Native DevOps with Kubernetes', Gopher. Terrible surfer. Se habla español. Ici on parle français. Hier wird deutsch gesprochen. Esperanto parolata.
Avatar of Sebastian Borza

Sebastian Borza sborza.com

I'm a Canadian (based in Chicago) golang, C and python developer working on projects within the gaming, finance and data-science worlds respectively. My favorite freetime task is coding challenges and I'm more than happy to help people talk through solutions!

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

Join the Go Track