# Learn Go from your browser
4 Oct 2011
Tags: playground, tour
Summary: Announcing the Go tour, https://tour.golang.org/.
OldURL: /learn-go-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/)
