Other book lists:

* [Go Books](https://github.com/dariubs/GoBooks)
* [Go Language Resources](http://go-lang.cat-v.org/books)

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/

  * **Go Bootcamp: Everything you need to get started with Go (FREE)**
    * Author: Matt Aimonetti
    * Publication Date: March 2014
    * ISBN: none: free ebook/PDF/online version
    * Reference: http://www.golangbootcamp.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

  * **The Little Go Book**
    * Author: Karl Seguin
    * Publication Date: October 2014
    * ISBN: none: free ebook/PDF/online version
    * Reference: http://openmymind.net/The-Little-Go-Book/
    
  * **Go Programming Blueprints**
    * Author: Mat Ryer
    * Publication Date: January 23, 2015
    * ISBN: 978-1783988020
    * Reference: https://www.packtpub.com/application-development/go-programming-blueprints

  * **Level Up Your Web Apps With Go**
    * Author: Mal Curtis
    * Publication Date: April, 2015
    * ISBN: 978-0992461294
    * Reference: https://learnable.com/books/level-up-your-web-apps-with-go

  * **Mastering Go Web Services**
    * Author: Nathan Kozyra
    * Publication Date: April, 2015
    * ISBN: 9781783981304
    * Reference: https://www.packtpub.com/web-development/mastering-go-web-services

  * **Go In Action**
    * Authors: William Kennedy with Brian Ketelsen and Erik St. Martin
    * Publication Date: November, 2015
    * ISBN: 9781617291784
    * Reference: https://www.manning.com/books/go-in-action
    * Discount Code (44% off): goiaucf

  * **The Go Programming Language (Addison-Wesley Professional Computing Series)**
    * Author: Alan A.A. Donovan and Brian Kernighan
    * Publication Date: November, 2015
    * ISBN: 978-0134190440
    * Reference: http://www.gopl.io/

* **Web Development with Go: Building Scalable Web Apps and RESTful Services**
    * Author: Shiju Varghese
    * Publication Date: December, 2015
    * ISBN: 978-1484210536
    * Reference: http://www.apress.com/9781484210536

## Early Access

  * **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/

  * **A Comprehensive Guide to Go Programming**
    * Authors: Baiju Muthukadan
    * Publication Date: June 10, 2015
    * ISBN: ---
    * Reference: http://golang.muthukadan.net/

  * **Microservices in Go**
    * Authors: Matthew Campbell
    * Publication Date: Fall 2015 (est.)
    * ISBN: ---
    * Reference: http://microservicesingo.com/

  * **Learn Go**
    * Author: Nathan Youngman
    * Publication Date: Spring 2016 (estimated)
    * ISBN: 9781617293092
    * Reference: [https://www.manning.com/books/learn-go](https://manning.com/books/learn-go?a_aid=nathany&a_bid=53f68821)

## Pre-order

  * **Introducing Go**
    * Author: Caleb Doxsey
    * Publication Date: January 2016
    * ISBN: 978-1491941959
    * Reference: http://shop.oreilly.com/product/0636920046516.do

## 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

  * **How do I Write and Deploy Simple Web Apps with Go?** (e-book)
    * Author: Satish Talim
    * Publication Date: ---
    * ISBN: ---
    * References: https://leanpub.com/howdoibuildawebappwithgo

  * **Test-driven development with Go** (e-book)
    * Author: Yigal Duppen
    * Publication Date: ---
    * ISBN: ---
    * References: https://leanpub.com/golang-tdd

  * **Learn Go** (e-book)
    * Author: Gyu-ho Lee
    * Publication Date: ---
    * ISBN: ---
    * References: https://github.com/gyuho/learn#contents

  * **Learn Golang the Hard Way** (e-book)
    * Author: Laszlo Csontos
    * Publication Date: ---
    * ISBN: ---
    * References: http://www.learngolangthehardway.org/

# 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并发编程实战**
    * Author: 郝林
    * Publication Date: 2015-01-01
    * ISBN: 9787115373984
    * Reference: http://www.ptpress.com.cn/Book.aspx?id=39783

  * **Go语言圣经（中文版）(The Go Programming Language)**
    * Author: Alan A. A. Donovan, Brian W. Kernighan
    * Translator: chai2010, Xargin, CrazySssst, foreversmart
    * Publication Date: 2006-02-01
    * ISBN: ---
    * Reference: http://golang-china.github.io/gopl-zh/

  * **学习 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** (not available for buying any more)
    * Authors: Rainer Feike and Steffen Blass
    * Publication Date: 2010-11
    * ISBN: 978-3-8632-4722-5
    * Reference (Amazon): http://www.amazon.de/Programmierung-Google-Beispiele-professionelle-Anwendung/dp/3827330092
    * Reference (Google Books): https://books.google.de/books?id=E4IL5dT1yLsC&printsec=frontcover&hl=de#v=onepage&q&f=false

  * **Systemprogrammierung in Google Go**
    * Author: Frank Müller
    * Publication Date: 2011-01
    * ISBN: 978-3-89864-712-0
    * Reference: http://dpunkt.de/buecher/3762/-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/

  * **Язык программирования Go**
    * Author: Алан А. А. Донован, Брайан У. Керниган
    * Publication Date: 2016-03-30
    * ISBN: 978-5-8459-2051-5
    * Reference: http://www.williamspublishing.com/Books/978-5-8459-2051-5.html

#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 Español!**
    * Author: Nacho Pacheco
    * Publication Date: 2015-03-22
    * ISBN: ---
    * Reference: https://www.gitbook.com/book/nachopacheco/go-es/

# Korean
  * **가장 빨리 만나는 Go 언어**
    * Author: 이재홍
    * Publication Date: 2015-06-01
    * ISBN: 978-8-96618-990-8
    * Reference: http://www.pyrasis.com/private/2015/06/01/publish-go-for-the-really-impatient-book


# Indonesian
  * **Bahasa Pemrograman Go**
    * Author: Sajarwo Anggai
    * Publication Date: October 21, 2013
    * ISBN: ---
    * Reference: https://sajarwo87.wordpress.com/2013/10/21/buku-bahasa-pemrograman-go/