In addition to the resources available [at golang.org](http://golang.org/doc/#learning) there are a range of community-driven initiatives:

  * [Go By Example](http://gobyexample.com/) - a series of annotated code snippets.
  * [Learn Go in Y minutes](http://learnxinyminutes.com/docs/go/) - a top-to-bottom walkthrough of the language.