Sorted by publication date.

# English
  * **Go Programming**
    * Author: John P. Baugh
    * Publication Date: June 16, 2010
    * ISBN: 978-1453636671

  * **The Way to Go: A Thorough Introduction to the Go Programming Language**
    * Author: Ivo Balbaert
    * Publication Date: March 7, 2012
    * ISBN: 978-1469769165

  * **The Go Programming Language Phrasebook**
    * Author: David Chisnall
    * Publication Date: April 30, 2012
    * ISBN: 978-0321817143
    * Reference: http://www.informit.com/store/go-programming-language-phrasebook-9780321817143

  * **Programming in Go: Creating Applications for the 21st Century**
    * Author: Mark Summerfield
    * Publication Date: May 4, 2012
    * ISBN: 978-0321774637
    * Reference: http://www.informit.com/store/programming-in-go-creating-applications-for-the-21st-9780321774637

  * **An Introduction to Programming in Go**
    * Author: Caleb Doxsey
    * Publication Date: September 3, 2012
    * ISBN: 978-1478355823
    * Reference: http://www.golang-book.com/

  * **Mastering Concurrency in Go**
    * Author: Nathan Kozyra
    * Publication Date: July 23, 2014
    * ISBN: 978-1783983483
    * Reference: https://www.packtpub.com/application-development/mastering-concurrency-go

  * **Go Programming Blueprints**
    * Author: Mat Ryer
    * Publication Date: January 23, 2015
    * ISBN: 978-1783988020
    * Reference: https://www.packtpub.com/application-development/go-programming-blueprints

## Early Access

  * **Go In Action**
    * Authors: Brian Ketelsen, Erik St. Martin, and William Kennedy
    * Publication Date: Summer 2015 (est.)
    * ISBN: 9781617291784
    * Reference: http://www.goinactionbook.com
    * Discount Code (40% off): gocenter

  * **Go Web Programming**
    * Author: Sau Sheong Chang
    * Publication Date: Fall 2015 (est.)
    * ISBN: 9781617292569
    * Reference: http://manning.com/chang/

  * **Go in Practice**
    * Authors: Matt Butcher and Matt Farina
    * Publication Date: Fall 2015 (est.)
    * ISBN: 9781633430075
    * Reference: http://manning.com/butcher/

## Pre-order

  * **Go: Up and Running**
    * Author: Alan Harris
    * Publication Date: August 2015 (est.)
    * ISBN: 978-1-4493-7025-1
    * Reference: http://shop.oreilly.com/product/0636920030638.do

  * **The Go Programming Language (Addison-Wesley Professional Computing Series)**
    * Author: Brian W. Kernighan & Alan Donovan
    * Publication Date: August 17, 2015
    * ISBN: 978-0134190440
    * Reference: http://www.informit.com/store/go-programming-language-9780134190440

## Available without Publication Date 

  * **Learning Go** (e-book)
    * Author: Miek Gieben
    * Publication Date: ---
    * ISBN: ---
    * Reference: http://archive.miek.nl/projects/learninggo/

  * **Network Programming with Go** (e-book)
    * Author: Jan Newmarch
    * Publication Date: ---
    * ISBN: ---
    * References: http://jan.newmarch.name/go/

  * **Go Bootcamp** (e-book)
    * Author: Matt Aimonetti
    * Publication Date: ---
    * ISBN: ---
    * References: http://www.golangbootcamp.com/

  * **A Go Developer's Notebook** (e-book)
    * Author: Eleanor McHugh
    * Publication Date: ---
    * ISBN: ---
    * References: https://leanpub.com/GoNotebook

  * **Go, The Standard Library** (e-book)
    * Author: Daniel Huckstep
    * Publication Date: ---
    * ISBN: ---
    * References: http://thestandardlibrary.com/go.html

  * **Practical Cryptography with Go** (e-book)
    * Author: Kyle Isom
    * Publication Date: ---
    * ISBN: ---
    * References: http://gokyle.org/book/

  * **The Ultimate Guide to Building Database-Driven Apps with Go** (e-book)
    * Author: Baron Schwartz
    * Publication Date: ---
    * ISBN: ---
    * References: https://vividcortex.com/resources/building-database-driven-apps-with-go/

  * **Building Web Apps with Go** (e-book)
    * Author: Jeremy Saenz
    * Publication Date: ---
    * ISBN: ---
    * References: https://www.gitbook.com/book/codegangsta/building-web-apps-with-go/details

# Chinese
  * **Go语言·云动力**
    * Author: 樊虹剑（fango）
    * Publication Date: 2012-06
    * ISBN: 978-7-115-28307-8
    * Reference: http://www.ituring.com.cn/book/1040

  * **Go语言编程**
    * Author: 许式伟
    * Publication Date: 2012-08
    * ISBN: 978-7-115-29036-6
    * Reference: http://www.ituring.com.cn/book/967

  * **Go Web编程**
    * Author: 谢孟军
    * Publication Date: 2013-05
    * ISBN: 9787121200915
    * Reference: https://github.com/astaxie/build-web-application-with-golang/

  * **Go语言程序设计 (Programming in Go: Creating Applications for the 21st Century)**
    * Author: Mark Summerfield
    * Translator: 许式伟, 吕桂华, 徐立, 何李石
    * Publication Date: 2013-08
    * ISBN: 978-7-115-31790-2
    * Reference: http://www.ptpress.com.cn/Book.aspx?id=35714

  * **Go语言程序设计 (21世纪高等学校规划教材·计算机科学与技术)**
    * Author: 王鹏
    * Publication Date: 2013-12-18
    * ISBN: 9787302347231
    * Reference: http://www.tup.com.cn/sub_press/4/book/Showbook.asp?CPBH=054436-01
  
  * **Go并发编程实战**
    * Author: 郝林
    * Publication Date: 2015-01-01
    * ISBN: 9787115373984
    * Reference: http://www.ptpress.com.cn/Book.aspx?id=39783
    
  * **学习 Go 语言** (e-book / Translation)
    * Author: Xing Xing (mikespook)
    * Publication Date: ---
    * ISBN: ---
    * Reference: http://www.mikespook.com/learning-go/

  * **Go 学习笔记 - 第四版** (e-book)
    * Author: 雨痕（qyuhen）
    * Publication Date: ---
    * ISBN: ---
    * Reference: https://github.com/qyuhen/book

# Japanese
  * **はじめての「Go言語」**
    * Author: 茨木 隆彰
    * Publication Date: 2010-11
    * ISBN: 978-4777515592
    * Reference:

  * **Go言語プログラミング入門on Google App Engine**
    * Author: 横山 隆司
    * Publication Date: 2011-12
    * ISBN: 978-4798031804
    * Reference:

  * **はじめてのGoogle App Engine Go言語編**
    * Author: 茨木 隆彰
    * Publication Date: 2012-2
    * ISBN: 978-4777516605
    * Reference:

  * **プログラミング言語Goフレーズブック**
    * Author: David Chisnall (著), デイビッド・チズナール (著), 柴田 芳樹 (翻訳)
    * Publication Date: 2012-10
    * ISBN: 978-4864010962
    * Reference:

  * **基礎からわかる Go言語**
    * Author: 古川 昇
    * Publication Date: 2012-11
    * ISBN: 978-4863541177
    * Reference:

# German
  * **Programmierung in Google Go** (e-book)
    * Authors: Rainer Feike and Steffen Blass
    * ISBN: 978-3-8632-4722-5
    * Publication Date: 2010-11
    * Reference: http://bookshop.pearson.de/main/main.asp?page=bookdetails&productid=181679

  * **Systemprogrammierung in Google Go**
    * Author: Frank Müller
    * Publication Date: 2011-01
    * ISBN: 978-3-89864-712-0
    * Reference: http://dpunkt.de/buecher/3449/systemprogrammierung-in-google-go.html

  * **Nichtsequentielle Programmierung mit Go 1** (2nd edition) (available as print and e-book)
    * Author: Christian Maurer
    * Publication Date: 2012
    * ISBN: 978-3-642-29968-1
    * Reference: http://www.springer.com/computer/swe/book/978-3-642-29968-1

  * **Einstieg in Google Go** (e-book)
    * Author: Christian Himpel and Mario Deilmann
    * Publication Date: 2012-04
    * ISBN: 978-3-86802-415-9
    * Reference: http://entwickler.de/press/Einstieg-in-Google-Go

# Brazilian Portuguese
  * **Programando em Go: crie aplicações com a linguagem do Google**
    * Author: Caio Filipini
    * Publication Date: 2014-07-01
    * ISBN: 978-85-66250-49-7
    * Reference: http://www.casadocodigo.com.br/products/livro-google-go

# Russian
  * **Программирование на языке Go**
    * Author: Марк Саммерфильд
    * Publication Date: 2013-02-14
    * ISBN: 978-5-94074-854-0
    * Reference: http://dmkpress.com/catalog/computer/programming/978-5-94074-854-0/

#Español
  * **Aprende Go en Y minutos**
    * Author: Nacho Pacheco
    * Publication Date: 2015-02-24
    * ISBN: ---
    * Reference: https://www.gitbook.com/book/nachopacheco/aprende-go-en-y-minutos/

  * **Constr­uyendo­ aplic­acione­s Web ­con Go**
    * Author: Nacho Pacheco
    * Publication Date: 2015-02-18
    * ISBN: ---
    * Reference: https://www.gitbook.com/book/nachopacheco/cawg/

  * **¡Go en Espalol!**
    * Author: Nacho Pacheco
    * Publication Date: 2015-03-22
    * ISBN: ---
    * Reference: https://www.gitbook.com/book/nachopacheco/go-es/