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

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

* **Write webapps in Go without using a framework** (Free e-book)
    * Author: Suraj Patil
    * Publication Date: October 2016
    * ISBN: NA since book is self published on http://leanpub.com
    * References: https://github.com/thewhitetulip/web-dev-golang-anti-textbook, https://leanpub.com/antitextbookGo/

* **Learning Go Web Development**
    * Author: Nathan Kozyra
    * Publication Date: April, 2016
    * ISBN: 978-1785282317
    * Reference: https://www.packtpub.com/web-development/learning-go-web-development

* **Go Web Programming**
    * Author: Sau Sheong Chang
    * Publication Date: July 22, 2016
    * ISBN: 9781617292569
    * Reference: http://manning.com/chang/

* **Go in Practice**
    * Authors: Matt Butcher and Matt Farina
    * Publication Date: October 1, 2016
    * ISBN: 9781633430075
    * Reference: http://manning.com/butcher/

* **Go Programming Blueprints - Second Edition**
    * Author: Mat Ryer
    * Publication Date: October 2016
    * ISBN: 978-1786468949
    * Reference: https://www.packtpub.com/application-development/go-programming-blueprints-second-edition

* **Learning Go programming**
    * Author: Vladimir Vivien
    * Publication Date: October 2016
    * ISBN: 978-1784395438
    * Reference: https://www.packtpub.com/application-development/learning-go-programming

* **Go Recipes**
    * Author: Shiju Varghese
    * Publication Date: November 2016
    * ISBN: 978-1-4842-1188-5
    * Reference: http://www.apress.com/us/book/9781484211892

* **Go Design Patterns**
    * Author: Mario Castro Contreras
    * Publication Date: February 2017
    * ISBN: 978-1786466204
    * Reference: https://www.packtpub.com/application-development/go-design-patterns

* **Go Cookbook**
    * Author: Aaron Torres
    * Publication Date: June 2017
    * ISBN: 978-1783286836
    * Reference: https://www.packtpub.com/application-development/go-cookbook

* **Go: Design Patterns for Real-World Projects**
    * Authors: Vladimir Vivien, Mario Castro Contreras, Mat Ryer
    * Publication Date: June 2017
    * ISBN: 978-1788390552
    * Reference: https://www.packtpub.com/application-development/go-design-patterns-real-world-projects

* **Web Development with Go: Learn to Create Real World Web Applications using Go**
  * Author: Jonathan Calhoun
  * Publication Date: June 2017
  * ISBN: N/A (self published)
  * Reference: [http://usegolang.com](http://usegolang.com)

* **Building Microservices with Go**
    * Author: Nic Jackson
    * Publication Date: July 2017
    * ISBN: 978-1786468666
    * Reference: https://www.packtpub.com/application-development/building-microservices-go

* **Concurrency in Go**
    * Author: Katherine Cox-Buday
    * Publication Date: August 2017
    * ISBN: 978-1491941195
    * Reference: http://shop.oreilly.com/product/0636920046189.do

* **Machine Learning With Go**
    * Author: Daniel Whitenack
    * Publication Date: September 2017
    * ISBN: 978-1785882104
    * Reference: https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-go

* **Go Systems Programming**
    * Author: Mihalis Tsoukalos
    * Publication Date: September 2017
    * ISBN: 978-1787125643
    * Reference: https://www.packtpub.com/networking-and-servers/go-systems-programming

* **Let's Go! Learn to Build Professional Web Applications With Go**
    * Author: Alex Edwards
    * Publication Date: September 2017
    * ISBN: N/A (self-published)
    * Reference: https://lets-go.alexedwards.net

* **Learning Functional Programming in Go**
  * Author: Lex Sheehan
  * Publication Date: November 2017
  * ISBN: 978-1787281394
  * Reference: https://www.packtpub.com/application-development/learning-functional-programming-go

* **Cloud Native programming with Golang**
  * Author: Mina Andrawos, Martin Helmich
  * Publication Date: December 2017
  * ISBN: 978-1787125988
  * Reference: https://www.packtpub.com/application-development/cloud-native-programming-golang

* **Isomorphic Go**
  * Author: Kamesh Balasubramanian
  * Publication Date: December 2017
  * ISBN: 978-1788394185
  * Reference: 
    * https://www.packtpub.com/web-development/isomorphic-go
    * https://www.amazon.com/dp/1788394186

* **Security with Go**
  * Author: John Daniel Leon
  * Publication Date: January 2018
  * ISBN: 978-1788627917
  * Reference: https://www.amazon.com/dp/1788627911

* **Go Standard Library Cookbook**
  * Author: Radomir Sohlich
  * Publication Date: February 2018
  * ISBN: 9781788475273
  * Reference: https://www.amazon.com/dp/1788475275

* **Distributed Computing with Go**
   * Author: V.N. Nikhil Anurag
   * Publication Date: February 2018
   * ISBN: 9781787125384
   * Reference: https://www.amazon.com/dp/1787125386

 * **Go Web Development Cookbook**
    * Author: Arpit Aggarwal
    * Publication Date: April 2018
    * ISBN: 9781787286740
    * Reference: https://www.amazon.com/Web-Development-Cookbook-full-stack-applications/dp/1787286746

* **Mastering Go**
    * Author: Mihalis Tsoukalos
    * Publication Date: April 2018
    * ISBN: 9781788626545
    * Reference: https://www.amazon.com/Mastering-production-applications-concurrency-cloud-native/dp/1788626540

* **Echo Quick Start Guide**
    * Author: J. Ben Huson 
    * Publication Date: May 2018
    * ISBN: 9781789139433
    * Reference: https://www.amazon.com/dp/1789139430

* **Hands-On Serverless Applications with Go**
    * Author: Mohamed Labouardy
    * Publication Date: August 2018
    * ISBN: 9781789134612
    * Reference: https://www.packtpub.com/application-development/hands-serverless-applications-go

* **Hands-On Go Programming**
    * Author: Tarik Guney
    * Publication Date: August 2018
    * ISBN: 9781789531756
    * Reference: https://www.packtpub.com/application-development/hands-go-programming

* **Go Machine Learning Projects**
    * Author: Xuanyi Chew
    * Publication Date: November 2018
    * ISBN: 9781788993401
    * Reference: https://www.packtpub.com/big-data-and-business-intelligence/go-machine-learning-projects

* **Hands-On Dependency Injection in Go**
    * Author: Corey Scott
    * Publication Date: November 2018
    * ISBN: 9781789132762
    * Reference: https://www.packtpub.com/application-development/hands-dependency-injection-go

* **Hands-On Software Architecture with Golang**
    * Author: Jyotiswarup Raiturkar
    * Publication Date: December 2018
    * ISBN: 9781788622592
    * Reference: https://www.packtpub.com/application-development/hands-software-architecture-golang

* **Hands-On Fundamentals of Data Science with Go (Video)**
    * Author: Sanket Gupta
    * Publication Date: December 2018
    * ISBN: 9781789539103
    * Reference: https://www.packtpub.com/big-data-and-business-intelligence/hands-fundamentals-data-science-go-video

* **Building RESTful APIs with Go (Video)**
    * Author: Bartlomiej Walczak
    * Publication Date: December 2018
    * ISBN: 978178961499
    * Reference: https://www.packtpub.com/application-development/building-restful-apis-go-video

* **Go Web Scraping Quick Start Guide**
    * Author: Vincent Smith
    * Publication Date: January 2019
    * ISBN: 9781789615708
    * Reference: https://www.packtpub.com/big-data-and-business-intelligence/go-web-scraping-quick-start-guide

* **Advanced Go Programming in 7 Days (Video)**
    * Author: Theofanis Despoudis
    * Publication Date: January 2019
    * ISBN: 9781788994880
    * Reference: https://www.packtpub.com/application-development/advanced-go-programming-7-days-video

* **Hands-On GUI Application Development in Go**
    * Author: Andrew Williams
    * Publication Date: February 2019
    * ISBN: 9781789138412
    * Reference: https://www.packtpub.com/application-development/hands-gui-application-development-go

* **Hands-On Full Stack Development with Go**
    * Author: Mina Andrawos
    * Publication Date: March 2019
    * ISBN: 9781789130751
    * Reference: https://www.packtpub.com/web-development/hands-full-stack-development-go

* **Learn Data Structures and Algorithms with Golang**
    * Author: Bhagvan Kommadi
    * Publication Date: March 2019
    * ISBN: 9781789618501
    * Reference: https://www.packtpub.com/application-development/learn-data-structures-and-algorithms-golang

* **Machine Learning With Go - Second Edition**
    * Author: Daniel Whitenack
    * Publication Date: April 2019
    * ISBN: 9781789619898
    * Reference: https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-go-second-edition?utm_source=Golang&utm_medium=referral&utm_campaign=Outreach

* **Machine Learning with Go Quick Start Guide**
    * Author: Michael Bironneau and Toby Coleman
    * Publication Date: May 2019
    * ISBN: 9781838550356
    * Reference: https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-go-quick-start-guide?utm_source=Golang&utm_medium=referral&utm_campaign=Outreach
***

## Early Access

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

  * **Get Programming with Go**
    * Author: Nathan Youngman, Roger Peppe
    * Publication Date: July 2018 (estimated)
    * ISBN: 9781617293092
    * Reference: [https://www.manning.com/books/get-programming-with-go](https://www.manning.com/books/get-programming-with-go?a_aid=nathany&a_bid=53f68821)

* **WebAssembly in Action**
    * Author:  Gerard Gallant 
    * Publication Date: Spring 2019 (estimated) 
    * ISBN: 9781617295744
    * Reference: https://www.manning.com/books/webassembly-in-action

## Pre-order

  * **Black Hat Go**
    * Author: Tom Steele, Chris Patten, and Dan Kottmann
    * Publication Date: March 2018
    * ISBN: 978-1-59327-865-6
    * Reference: https://www.nostarch.com/blackhatgo

## 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: https://leanpub.com/gocrypto

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

  * **Go 101** (e-book)
    * Author: Tapir Liu
    * Publication Date: ---
    * ISBN: ---
    * References: https://go101.org


## Cancelled or Status Indeterminable

  * **Microservices in Go**
    * Authors: Matthew Campbell
    * Publication Date: Fall 2015 (est.)
    * ISBN: ---
    * Reference: http://microservicesingo.com/
    * Status: [Cancelled per O'Reilly Employee](http://support.oreilly.com/oreilly/topics/availability-of-microservices-in-go-use-go-to-build-scalable-backends-by-matthew-campbell)

# 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 语言** (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

  * **Go语言高级编程** (实体书 & e-book)
    * Author: 柴树杉（chai2010）
    * Publication Date: 2019-07
    * ISBN: 978-7-115-51036-5
    * Reference: https://www.epubit.com/book/detail/40090
    * Reference: https://github.com/chai2010/advanced-go-programming-book

  * **Go语言101** (e-book)
    * Author: 老貘
    * Publication Date: ---
    * ISBN: ---
    * References: https://gfw.go101.org/

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

  * **Go言語によるWebアプリケーション開発**
    * Author: Mat Ryer (著)、鵜飼 文敏 (監訳)、牧野 聡 (訳)
    * Publication Date: 2016-01
    * ISBN: 978-4-87311-752-2
    * Reference: http://www.oreilly.co.jp/books/9784873117522/

  * **プログラミング言語Go**
    * Authors: Alan A. A. Donovan, Brian W. Kernighan; translated by Yoshiki Shibata
    * Publication Date: 20 June 2016
    * ISBN: 978-4-62130-025-1
    * Reference: http://www.gopl.io/translations.html

  * **みんなのGo言語**
    * Authors: 松木雅幸, mattn, 藤原俊一郎, 中島大一, 牧 大輔, 鈴木健太
    * Publication Date: 9 Sep 2016
    * ISBN: 978-4774183923
    * Reference: http://www.amazon.co.jp/exec/obidos/ASIN/477418392X/

# French
  * **Programmer en Go - Pourquoi ? Comment ?**
    * Author: Rudy Rigot
    * Publication Date: 24 Jan 2018
    * ISBN: 978-2-8227-0660-5
    * Reference: https://www.d-booker.fr/go-bases/499-programmer-en-go-pourquoi-comment.html

# 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 und Verteilte Programmierung mit Go** (3rd edition) (available as print and e-book)
    * Author: Christian Maurer
    * Publication Date: 2018-06
    * ISBN: 978-3-658-21152-3
    * Reference: https://www.springer.com/de/book/9783658211523

  * **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
  * **A Linguagem de Programação Go**
    * Author:  Alan A. A. Donovan, Brian W. Kernighan 
    * Publication Date: 2017
    * ISBN: 978-85-7522-546-2
    * Reference: https://novatec.com.br/livros/linguagem-de-programacao-go/

  * **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-04-21
    * ISBN: 978-5-8459-2051-5
    * Reference: http://www.williamspublishing.com/Books/978-5-8459-2051-5.html

  * **Go на практике**
    * Author: Батчер М., Фарина М.
    * Publication Date: 2017-01
    * ISBN: 978-5-97060-477-9
    * Reference: http://dmkpress.com/catalog/computer/programming/978-5-97060-477-9/

# Español
  * **Aprende Go en Y minutos**https://go101.org
    * 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: June 2015
    * ISBN: 978-8-96618-990-8
    * Reference: http://www.pyrasis.com/private/2015/06/01/publish-go-for-the-really-impatient-book

  * **개발자를 위한 하룻밤에 읽는 Go 언어 이야기**
    * Author: 신제용
    * Publication Date: December 2015
    * ISBN: 978-8-96848-806-1
    * Reference: http://www.hanbit.co.kr/store/books/look.php?p_code=E8544486990

  * **디스커버리 Go 언어**
    * Author: 염재현
    * Publication Date: March 2016
    * ISBN: 9788-96848-268-7
    * Reference: http://www.hanbit.co.kr/store/books/look.php?p_code=B5279497767

  * **Go 언어 웹 프로그래밍 철저 입문**
    * Author: 장재휴
    * Publication Date: March 2016
    * ISBN: 979-1-18697-881-8
    * Reference: http://www.gilbut.co.kr/book/bookView.aspx?bookcode=BN001434

  * **Go 인 액션**
    * Authors: William Kennedy with Brian Ketelsen and Erik St. Martin; translated by Hyunhee Jang
    * Publication Date: June 2016
    * ISBN: 979-1-18589-053-1
    * Reference: http://jpub.tistory.com/585

  * **The Go Programming Language**
    * Authors: Alan A. A. Donovan, Brian W. Kernighan; translated by Seung Lee
    * Publication Date: June 2016
    * ISBN: 978-0-13419-044-0
    * Reference: http://www.acornpub.co.kr/book/go-programming

  * **Go 웹 프로그래밍**
    * Author: Sau Sheong Chang; translated by Jinwook Jeong
    * Publication Date: March 2017
    * ISBN: 979-1-18669-731-3
    * Reference: http://www.bjpublic.co.kr/skin12/productSearchView.php?board_data=aWR4PTIxMyZzdGFydFBhZ2U9MCZsaXN0Tm89MzM

  * **프로젝트로 완성하는 Go 프로그래밍**
    * Author: Mat Ryer; translated by Soonbeom Kwon
    * Publication Date: August 2017
    * ISBN: 979-1-16175-032-3
    * Reference: http://www.acornpub.co.kr/book/go-blueprints-2

  * **Go 언어 실전 테크닉**
    * Authors: 松木雅幸, mattn, 藤原俊一郎, 中島大一, 牧 大輔, 鈴木健太; translated by Hyuntae Park
    * Publication Date: August 2017
    * ISBN: 979-1-16175-026-2
    * Reference: http://www.acornpub.co.kr/book/go-language-minna

  * **Go Cookbook**
    * Author: Aaron Torres; transalted by Sangsik Lee
    * Publication Date: December 2017
    * ISBN: 979-1-16175-088-0
    * Reference: http://www.acornpub.co.kr/book/go-cookbook

  * **Go 언어를 활용한 마이크로서비스 개발**
    * Author: Nic Jackson; translated by Sangsik Lee
    * Publication Date: July 2018
    * ISBN: 979-1-16175-190-0
    * Reference: http://www.acornpub.co.kr/book/microservices-go

  * **Go 언어 시작하기**
    * Author: 박혜영, 서정인
    * Publication Date: September 2018
    * ISBN: 979-1-15600-606-0
    * Reference: http://www.hongpub.co.kr/sub.php?goPage=view_product&flashpage=&Code=20180911072243

  * **Go 마스터하기**
    * Author: Mihalis Tsoukalos; translated by Kihyuk Nam
    * Publication Date: October 2018
    * ISBN: 979-1-16175-208-2
    * Reference: http://acornpub.co.kr/book/mastering-go

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

  * **Dasar Pemrograman Golang**
    * Author: Noval Agung Prayogo
    * Publication Date: Oktober 30, 2015
    * ISBN: ---
    * Reference: https://dasarpemrogramangolang.novalagung.com

# Italian
  * **Programmare in Linguaggio Go**
    * Author: Renato Mite
    * Publication Date: 9 Oct 2016
    * ISBN: ---
    * Reference (Amazon): https://www.amazon.it/dp/B01M2URIVX
    * Reference (Google Books): https://play.google.com/store/books/details/Renato_Mite_Programmare_in_Linguaggio_Go?id=4Ag6DQAAQBAJ
    * Reference (Kobo Books): https://store.kobobooks.com/it-it/ebook/programmare-in-linguaggio-go
    * Repository: https://github.com/rmite/gobook

# Polish

  * **Język Go. Poznaj i programuj**
    * Authors: Alan A. A. Donovan, Brian W. Kernighan; translated by Lech Lachowski
    * Publication Date: July 2016
    * ISBN: 978-83-283-2467-1
    * Reference: https://helion.pl/ksiazki/jezyk-go-poznaj-i-programuj-alan-a-a-donovan-brian-w-kernighan,jgopop.htm

# Persian
  * **Go Succinctly**
    * Author: Amir Irani
    * Publication Date: 10 Jun 2018
    * ISBN: ---
    * Repository: https://github.com/thedevsir/gosuccinctly

# Looking for contributors

[Add Go books here that are looking for writers, editors, Gopher illustrators, and translators.]

 * **Go Web Development Cookbook**
    * Author: Arpit Aggarwal
    * Publication Date: April 2018
    * ISBN: 9781787286740
    * Reference: https://www.amazon.in/Web-Development-Cookbook-full-stack-applications/dp/1787286746

***