---
title: Books
---

Other book lists:

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

Sorted by publication date, ascending.

## Languages

- [English](#english)
- [Chinese](#chinese)
- [Japanese](#japanese)
- [French](#french)
- [German](#german)
- [Brazilian portuguese](#brazilian-portuguese)
- [Russian](#russian)
- [Spanish](#spanish)
- [Korean](#korean)
- [Indonesian](#indonesian)
- [Italian](#italian)
- [Polish](#polish)
- [Persian](#persian)

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

  * **The Little Go Book**
    * Author: Karl Seguin
    * Publication Date: October 2014
    * ISBN: none: free ebook/PDF/online version
    * Reference: https://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: https://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: https://www.apress.com/9781484210536

* **Go Programming by Example** (e-book)
    * Author: Agus Kurniawan
    * Publication Date: February 21, 2015
    * ISBN: --
    * Reference: https://www.amazon.com/dp/B00TWLZVQQ/

* **Introducing Go**
    * Author: Caleb Doxsey
    * Publication Date: January 2016
    * ISBN: 978-1491941959
    * Reference: https://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: Building Web Applications**
    * Author: Nathan Kozyra and Mat Ryer
    * Publication Date: August 31, 2016
    * ISBN: 9781787123496
    * https://www.packtpub.com/product/go-building-web-applications/9781787123496

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

* **Cloud Native Go: Building Web Applications and Microservices for the Cloud with Go and React**
    * Author: Kevin Hoffman and Dan Nemeth
    * Publication Date: December 23, 2016
    * ISBN: 978-0-672-33779-6
    * Reference: https://www.informit.com/store/cloud-native-go-building-web-applications-and-microservices-9780672337796

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

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

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

* **Mastering Go - Second Edition**
    * Author: Mihalis Tsoukalos
    * Publication Date: 10 Sept 2019
    * ISBN: 9781838559335
    * Reference: https://www.packtpub.com/programming/mastering-go-second-edition
    * Reference: https://www.amazon.com/Mastering-production-applications-concurrency-structures/dp/1838559337/

* **Hands-on Microservices with Go and MongoDB [Video]** 
    * Author: Gautam Rege
    * Publication Date: 22 Nov 2019
    * ISBN: 9781838648558
    * References: https://www.packtpub.com/web-development/hands-on-microservices-with-go-and-mongodb-video?utm_source=Golang&utm_medium=&utm_campaign=Outreach

* **The Go Workshop** (e-book)
    * Author: Delio D'Anna
    * Publication Date: December 30, 2019
    * ISBN: 9781838647940
    * References: https://www.packtpub.com/programming/the-go-workshop?utm_source=GoLang&utm_medium=Github&utm_campaign=OutreachB14177dollar5

* **Concise Go**
    * Author: Yaniv Astamnep
    * Publication Date: January 22, 2020
    * ISBN: 9798602419887
    * References: 
        * https://www.amazon.com/Concise-Go-Yaniv-Astamnep-ebook/dp/B0844MWN92
        * https://www.amazon.com/Concise-Go-Yaniv-Astamnep/dp/B083XVZ2BZ

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

* **Hands-On Software Engineering with Golang**
   * Author: Hands-On Software Engineering with Golang
   * Publication Date: January 24, 2020
   * ISBN: 978-1-83855-449-1
   * Reference: https://www.packtpub.com/product/hands-on-software-engineering-with-golang/9781838554491

* **Nonsequential and Distributed Programming with Go**
    * Author: Christian Maurer
    * Publication Date: January 21, 2021
    * ISBN: 978-3-658-29781-7 (Softcover) and 978-3-658-20782-4 (eBook)
    * References: 
        * https://www.springer.com/gp/book/9783658297817


* **Building Cross-Platform GUI Applications with Fyne**
  * Author: Andrew Williams
  * Publication Date: January 2021
  * ISBN: 9781800563162
  * Reference: https://www.packtpub.com/product/building-cross-platform-gui-applications-with-fyne/9781800563162

* **Hands-on Go programming**
  * Author: Sachchidanand Singh, Prithvipal Singh
  * Publication Date: February 2021
  * ISBN: 9789389898194
  * Reference: https://bpbonline.com/products/hands-on-go-programming

* **Learning Go: An Idiomatic Approach to Real-World Go Programming**
  * Author: Jon Bodner
  * Publication Date: March 23, 2021
  * Reference: https://www.oreilly.com/library/view/learning-go/9781492077206/

* **Network Programming with Go**
  * Author: Adam Woodbeck
  * Publication Date: March 25, 2021
  * Reference: https://nostarch.com/networkprogrammingwithgo

* **Distributed Services with Go: Your Guide to Reliable, Scalable, and Maintainable Systems**
    * Author: Travis Jeffery
    * Publication Date: March 2021
    * ISBN: 9781680507607
    * Reference: https://pragprog.com/titles/tjgo/distributed-services-with-go/

* **Cloud Native Go**
  * Author: Matthew A. Titmus
  * Publication Date: May 11, 2021
  * ISBN: 9781492076339
  * Reference: https://www.oreilly.com/library/view/cloud-native-go/9781492076322/

* **Building Distributed Applications in Gin**
  * Author: Mohamed Labouardy
  * Publication Date: July 23, 2021
  * Reference: https://www.packtpub.com/product/building-distributed-applications-in-gin/9781801074858

* **Ultimate Go Notebook**
  * Author: William Kennedy and Hoanh An
  * Publication Date: August 13, 2021
  * Reference: https://courses.ardanlabs.com/courses/ultimate-go-notebook

* **Mastering Go - Third Edition**
    * Author: Mihalis Tsoukalos
    * Publication Date: 31 August 2021
    * ISBN-10: 1801079315
    * ISBN-13: 978-1801079310
    * Reference: https://www.packtpub.com/product/mastering-go-third-edition/9781801079310
    * Reference: https://www.amazon.com/Mastering-Go-professional-utilities-concurrent-dp-1801079315/dp/1801079315

* **Go Optimizations 101**
    * Author: Tapir Liu
    * Publication Date: 22 December 2021
    * Reference: https://go101.org/optimizations/101.html

* **Go Details & Tips 101**
    * Author: Tapir Liu
    * Publication Date: 22 December 2021
    * Reference: https://go101.org/details-and-tips/101.html

* **Powerful Command-Line Applications in Go**
  * Author: Ricardo Gerardi
  * Publication Date: December 2021
  * ISBN: 9781680506969
  * Reference: https://pragprog.com/titles/rggo/powerful-command-line-applications-in-go/

* **Go Generics 101**
    * Author: Tapir Liu
    * Publication Date: 07 April 2021
    * Reference: https://go101.org/generics/101.html

* **Know Go: Generics** (e-book)
    * Author: John Arundel
    * Publication Date: April 2022
    * Reference: https://bitfieldconsulting.com/books/generics

* **The Power of Go: Tools** (e-book)
    * Author: John Arundel
    * Publication Date: September 2022
    * Reference: https://bitfieldconsulting.com/books/tools

* **The Power of Go: Tests** (e-book)
    * Author: John Arundel
    * Publication Date: September 2022
    * Reference: https://bitfieldconsulting.com/books/tests

* **For the Love of Go** (e-book)
  * Author: John Arundel
  * Publication Date: September 2022
  * Reference: https://bitfieldconsulting.com/books/love

* **100 Go Mistakes and How to Avoid Them**
    * Author: Teiva Harsanyi
    * Publication Date: October 2022
    * ISBN: 9781617299599
    * Reference: https://www.manning.com/books/100-go-mistakes-and-how-to-avoid-them

***
## Early Access

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

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

* **Build an Orchestrator in Go**
    * Author: Tim Boring
    * Publication Date: May 2022 (estimated)
    * ISBN: 9781617299759
    * Reference: https://www.manning.com/books/build-an-orchestrator-in-go

* **Effective Go**
    * Author: Effective Go
    * Publication Date: Fall 2022 (estimated)
    * ISBN: 9781617299896
    * Reference: https://www.manning.com/books/effective-go

* **Efficient Go**
    * Author: Bartlomiej Plotka and Frederic Branczyk 
    * Publication Date: December 2022
    * ISBN: 9781098105648
    * Reference: https://www.oreilly.com/library/view/efficient-go/9781098105709/

* **gRPC Microservices in Go**
    * Authors: Huseyin BABAL
    * Publication Date: Spring 2023
    * ISBN: ---
    * Reference: https://shortener.manning.com/44lB

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

  * **Creative DIY Microcontroller Projects with TinyGo and WebAssembly** 
    * Author: Tobias Theel
    * Publication Date: May 2021
    * ISBN: 9781800560208
    * References: https://www.packtpub.com/product/creative-diy-microcontroller-projects-with-tinygo-and-webassembly/9781800560208

  * **Go for Javascript Developers** 
    * Author: Maor Zamski and Daniel Singer
    * Publication Date: ---
    * ISBN: ---
    * References: https://github.com/pazams/go-for-javascript-developers

  * **Learn Go with Tests** 
    * Author: Chris James
    * Publication Date: ---
    * ISBN: ---
    * References: https://quii.gitbook.io/learn-go-with-tests/

  * **Practical Go Lessons** 
    * Author: Maximilien Andile
    * Publication Date: ---
    * ISBN: ---
    * References: https://www.practical-go-lessons.com/


## 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: https://www.ptpress.com.cn/shopping/buy?bookId=27c4a9e0-e3df-4cb4-8992-b42c2e4368e8

  * **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/bookDetails?id=N40090
    * Reference: https://github.com/chai2010/advanced-go-programming-book

  * **Go语言定制指南** (实体书 & e-book)
    * Author: 柴树杉（chai2010）
    * Publication Date: 2022-03
    * ISBN: 978-7-115-58441-0
    * Reference: https://www.epubit.com/bookDetails?id=UBc86f749c1eb7
    * Reference: https://github.com/chai2010/go-ast-book

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

  * **µGo语言实现——如何从头开发一个迷你Go语言编译器** (e-book)
    * Author: 柴树杉（chai2010）
    * Publication Date: ---
    * ISBN: ---
    * Reference: https://github.com/chai2010/ugo-compiler-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:

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

  * **Go言語による並行処理**
    * Authors: Katherine Cox-Buday（著）、山口 能迪（訳）
    * Publication Date: 26 Oct 2018
    * ISBN: 978-4-87311-846-8
    * Reference: https://www.oreilly.co.jp/books/9784873118468/

  * **改訂2版 みんなのGo言語**
    * Authors: 松木雅幸, mattn, 藤原俊一郎, 中島大一, 上田 拓也, 牧 大輔, 鈴木健太
    * Publication Date: August 1, 2019
    * ISBN: 978-4297107277
    * Reference: https://gihyo.jp/book/2019/978-4-297-10727-7

  * **Go言語プログラミングエッセンス**
    * Authors: mattn
    * Publication Date: Mar 9, 2023
    * ISBN: 978-4297134198
    * Reference: https://gihyo.jp/book/2023/978-4-297-13419-8

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

  * **Le langage Go - Les fondamentaux du langage**
    * Author: Frédéric G. Marand
    * Publication Date: 23 Jun 2020
    * ISBN: 978-2100804108
    * Reference (book site): https://osinet.fr/go/
    * Reference (publisher): https://www.dunod.com/sciences-techniques/langage-go-fondamentaux-du-langage


### 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** (4th edition) (available as print and e-book)
    * Author: Christian Maurer
    * Publication Date: 2019-07
    * ISBN: 978-3-658-26289-1 (Softcover) and 978-3-658-26290-7 (eBook)
    * Reference: https://www.springer.com/de/book/9783658262891

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

  * **Introdução à Linguagem Go: Crie Programas Escaláveis e Confiáveis**
    * Author: Caleb Doxsey
    * Publication Date: 2016-08-04
    * ISBN: 978-85-75224-89-2
    * Reference: http://shop.oreilly.com/product/0636920046516.do

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

  * **Golang для профи: работа с сетью, многопоточность, структуры данных и машинное обучение с Go**
    * Author: Цукалос М.
    * Publication Date: 2020
    * ISBN: 978-5-4461-1617-1
    * Reference: https://www.piter.com/product/golang-dlya-profi-rabota-s-setyu-mnogopotochnost-struktury-dannyh-i-mashinnoe-obuchenie-s-go

### 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; translated 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
  * **GoFarsi book**
    * Author: Javad Rajabzadeh
    * Publication Date: 23 oct 2022
    * ISBN: ---
    * Repository: https://github.com/GoFarsi/book
    * LiveBook: https://book.gofarsi.ir

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

