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.

16 Mentors

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

7,750 Students

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

113 Exercises

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

About Go

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
package greeting

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

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.

Bethany Garcia

Go admirer. Instigator. Chaser of shiny objects.

Sebastian Borza https://github.com/sebito91

I'm a Canadian (based in Chicago) freelance 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!

Paul Otto https://github.com/potto007

I enjoy writing Go for its simple, minimalist syntax. Mentoring in Go is a joy, thanks to its opinionated nature ('The Go Way'). I write and review Go professionally, as well as in side projects.

Christoph Lipautz https://github.com/unused

Go comes with a very clear image of how to write go-code, a powerful core library, a huge community, platform independence, a great concurrency model, and lots of other things that make this programming language great.

CJ Ting https://github.com/fate-lovely

I like Go for its simplicity and single-binary deployment, it's a good fit for CLI tools and network servers.

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.
Fun. Challenging. Interesting

Community-sourced Go Exercises

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

Grep
medium
medium
algorithms
arrays
conditionals
searching
strings
Robot Simulator
medium
medium
concurrency
loops
sequences
strings
structs
Diffie Hellman
medium
medium
algorithms
cryptography
integers
transforming
Pythagorean Triplet
medium
medium
algorithms
mathematics
Scrabble Score
medium
easy
loops
maps
strings
Pascals Triangle
medium
medium
algorithms
arrays
mathematics
recursion

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

Join the Go Track