# Learn Go from your browser
4 Oct 2011
Tags: playground, tour
Summary: We are excited to announce [A Tour of Go](https://tour.golang.org/), a guided tour of the Go programming language you can run from your browser.

Andrew Gerrand

##

We are excited to announce [A Tour of Go](https://tour.golang.org/),
a guided tour of the Go programming language you can run from your browser.

The tour is hands-on, demonstrating the language through code samples that you can modify,
compile, and run from the tour itself.
(The technology behind the [Go Playground](https://golang.org/doc/play/) does the work.)

The tour has three sections. The first section covers basic syntax and data structures;
the second discusses methods and interfaces;
and the third introduces Go's concurrency primitives.
Each section concludes with a few exercises so you can practice what you've learned.

So, what are you waiting for? [Get started now!](https://tour.golang.org/)
