From cfb82c17a1b49a2ca90c0b3df0312c8717275050 Mon Sep 17 00:00:00 2001 From: Dariush Abbasi Date: Fri, 27 Feb 2026 05:23:44 -0700 Subject: [PATCH] sort new to old ref #163 --- .github/workflows/validate.yml | 2 +- CONTRIBUTING.md | 3 +- Makefile | 3 - README.md | 1198 ++++++++--------- .gitignore => gobooks/.gitignore | 0 gobooks/Makefile | 3 + .../100-go-mistakes-and-how-to-avoid-them.png | Bin ...factor-applications-with-docker-and-go.jpg | Bin .../covers}/a-go-developers-notebook.png | Bin .../covers}/api-foundations-in-go.jpeg | Bin .../covers}/beyond-effective-go.jpg | Bin {covers => gobooks/covers}/black-hat-go.jpg | Bin .../covers}/build-an-orchestrator-in-go.png | Bin .../covers}/build-saas-apps-in-go.jpg | Bin .../covers}/build-systems-with-go.png | Bin ...ilding-distributed-applications-in-gin.jpg | Bin .../covers}/cloud-native-go.jpg | Bin {covers => gobooks/covers}/cover-514e0936.png | Bin ...controller-projects-tinygo-webassembly.jpg | Bin .../covers}/distributed-services-with-go.jpg | Bin .../domain-driven-design-with-golang.jpg | Bin {covers => gobooks/covers}/efficient-go.jpg | Bin .../event-driven-architecture-in-golang.jpg | Bin {covers => gobooks/covers}/everyday-go.jpg | Bin .../covers}/explore-go-cryptography.png | Bin .../covers}/generative-art-in-go.jpg | Bin .../covers}/get-programming-with-go.png | Bin {covers => gobooks/covers}/go-101.jpg | Bin {covers => gobooks/covers}/go-at-scale.jpg | Bin {covers => gobooks/covers}/go-by-example.png | Bin {covers => gobooks/covers}/go-faster.png | Bin {covers => gobooks/covers}/go-for-devops.jpg | Bin .../covers}/go-for-javascript-developers.png | Bin .../covers}/go-from-the-beginning.png | Bin ...gramming-from-beginner-to-professional.jpg | Bin .../covers}/go-with-the-domain.jpg | Bin .../covers}/gofarsi-book-cover.jpg | Bin {covers => gobooks/covers}/gopl.book.png | Bin .../covers}/grpc-go-for-professionals.jpg | Bin .../covers}/grpc-microservices-in-go.jpg | Bin .../hands-on-dependency-injection-in-go.jpg | Bin ...ds-on-software-engineering-with-golang.jpg | Bin {covers => gobooks/covers}/head-first-go.jpg | Bin .../covers}/know-go-generics.png | Bin ...-structures-and-algorithms-with-golang.jpg | Bin .../learn-go-with-pocket-sized-projects.jpg | Bin .../covers}/learn-go-with-tests.png | Bin {covers => gobooks/covers}/learning-go.jpg | Bin {covers => gobooks/covers}/learning-go.png | Bin .../covers}/lets-go-further.png | Bin {covers => gobooks/covers}/lets-go.png | Bin .../covers}/mastering-go-4th-edition.jpg | Bin .../covers}/microservices-with-go.jpg | Bin .../covers}/network-automation-with-go.jpg | Bin .../covers}/network-programming-with-go.jpg | Bin ...werful-command-line-applications-in-go.jpg | Bin ...practical-go-building-scalable-network.jpg | Bin .../covers}/practical-go-lessons.png | Bin {covers => gobooks/covers}/pro-go.jpeg | Bin .../covers}/security-with-go.jpg | Bin {covers => gobooks/covers}/spaceship-go.svg | 0 .../covers}/the-go-workshop.avif | Bin .../covers}/the-love-of-go.webp | Bin .../covers}/the-power-of-go-tests.png | Bin .../covers}/the-power-of-go-tools.png | Bin .../covers}/ultimate-go-notebook.jpg | Bin .../covers}/wasm-cooking-with-golang.jpg | Bin .../webapps-in-go-the-anti-textbook.jpg | Bin .../covers}/writing-a-compiler-in-go.jpg | Bin .../covers}/writing-an-interpreter-in-go.png | Bin {validator => gobooks/validator}/go.mod | 0 {validator => gobooks/validator}/main.go | 12 +- 72 files changed, 607 insertions(+), 614 deletions(-) delete mode 100644 Makefile rename .gitignore => gobooks/.gitignore (100%) create mode 100644 gobooks/Makefile rename {covers => gobooks/covers}/100-go-mistakes-and-how-to-avoid-them.png (100%) rename {covers => gobooks/covers}/12-factor-applications-with-docker-and-go.jpg (100%) rename {covers => gobooks/covers}/a-go-developers-notebook.png (100%) rename {covers => gobooks/covers}/api-foundations-in-go.jpeg (100%) rename {covers => gobooks/covers}/beyond-effective-go.jpg (100%) rename {covers => gobooks/covers}/black-hat-go.jpg (100%) rename {covers => gobooks/covers}/build-an-orchestrator-in-go.png (100%) rename {covers => gobooks/covers}/build-saas-apps-in-go.jpg (100%) rename {covers => gobooks/covers}/build-systems-with-go.png (100%) rename {covers => gobooks/covers}/building-distributed-applications-in-gin.jpg (100%) rename {covers => gobooks/covers}/cloud-native-go.jpg (100%) rename {covers => gobooks/covers}/cover-514e0936.png (100%) rename {covers => gobooks/covers}/creative-diy-microcontroller-projects-tinygo-webassembly.jpg (100%) rename {covers => gobooks/covers}/distributed-services-with-go.jpg (100%) rename {covers => gobooks/covers}/domain-driven-design-with-golang.jpg (100%) rename {covers => gobooks/covers}/efficient-go.jpg (100%) rename {covers => gobooks/covers}/event-driven-architecture-in-golang.jpg (100%) rename {covers => gobooks/covers}/everyday-go.jpg (100%) rename {covers => gobooks/covers}/explore-go-cryptography.png (100%) rename {covers => gobooks/covers}/generative-art-in-go.jpg (100%) rename {covers => gobooks/covers}/get-programming-with-go.png (100%) rename {covers => gobooks/covers}/go-101.jpg (100%) rename {covers => gobooks/covers}/go-at-scale.jpg (100%) rename {covers => gobooks/covers}/go-by-example.png (100%) rename {covers => gobooks/covers}/go-faster.png (100%) rename {covers => gobooks/covers}/go-for-devops.jpg (100%) rename {covers => gobooks/covers}/go-for-javascript-developers.png (100%) rename {covers => gobooks/covers}/go-from-the-beginning.png (100%) rename {covers => gobooks/covers}/go-programming-from-beginner-to-professional.jpg (100%) rename {covers => gobooks/covers}/go-with-the-domain.jpg (100%) rename {covers => gobooks/covers}/gofarsi-book-cover.jpg (100%) rename {covers => gobooks/covers}/gopl.book.png (100%) rename {covers => gobooks/covers}/grpc-go-for-professionals.jpg (100%) rename {covers => gobooks/covers}/grpc-microservices-in-go.jpg (100%) rename {covers => gobooks/covers}/hands-on-dependency-injection-in-go.jpg (100%) rename {covers => gobooks/covers}/hands-on-software-engineering-with-golang.jpg (100%) rename {covers => gobooks/covers}/head-first-go.jpg (100%) rename {covers => gobooks/covers}/know-go-generics.png (100%) rename {covers => gobooks/covers}/learn-data-structures-and-algorithms-with-golang.jpg (100%) rename {covers => gobooks/covers}/learn-go-with-pocket-sized-projects.jpg (100%) rename {covers => gobooks/covers}/learn-go-with-tests.png (100%) rename {covers => gobooks/covers}/learning-go.jpg (100%) rename {covers => gobooks/covers}/learning-go.png (100%) rename {covers => gobooks/covers}/lets-go-further.png (100%) rename {covers => gobooks/covers}/lets-go.png (100%) rename {covers => gobooks/covers}/mastering-go-4th-edition.jpg (100%) rename {covers => gobooks/covers}/microservices-with-go.jpg (100%) rename {covers => gobooks/covers}/network-automation-with-go.jpg (100%) rename {covers => gobooks/covers}/network-programming-with-go.jpg (100%) rename {covers => gobooks/covers}/powerful-command-line-applications-in-go.jpg (100%) rename {covers => gobooks/covers}/practical-go-building-scalable-network.jpg (100%) rename {covers => gobooks/covers}/practical-go-lessons.png (100%) rename {covers => gobooks/covers}/pro-go.jpeg (100%) rename {covers => gobooks/covers}/security-with-go.jpg (100%) rename {covers => gobooks/covers}/spaceship-go.svg (100%) rename {covers => gobooks/covers}/the-go-workshop.avif (100%) rename {covers => gobooks/covers}/the-love-of-go.webp (100%) rename {covers => gobooks/covers}/the-power-of-go-tests.png (100%) rename {covers => gobooks/covers}/the-power-of-go-tools.png (100%) rename {covers => gobooks/covers}/ultimate-go-notebook.jpg (100%) rename {covers => gobooks/covers}/wasm-cooking-with-golang.jpg (100%) rename {covers => gobooks/covers}/webapps-in-go-the-anti-textbook.jpg (100%) rename {covers => gobooks/covers}/writing-a-compiler-in-go.jpg (100%) rename {covers => gobooks/covers}/writing-an-interpreter-in-go.png (100%) rename {validator => gobooks/validator}/go.mod (100%) rename {validator => gobooks/validator}/main.go (96%) diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 930c95a..98563ac 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -18,4 +18,4 @@ jobs: go-version: "1.21" - name: Run validator - run: make validate + run: make -C gobooks validate diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index af12ea6..61f11c4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,12 +7,13 @@ Add books with this format : ``` ### DATE - [BOOK NAME](BOOK URL) - + BOOK DESCRIPTION ``` +* Place cover images in `gobooks/covers/` with a slug filename (e.g. `book-name.jpg`). * If book is free, add it after free books of that category and also add `*Free*` after book url. * Add other books in ascending date order (newest last). Books without date go at the end of the list in that category. * To keep track of the huge table of contents you can use a plugin like [Markdown VSCode plugin](https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one) diff --git a/Makefile b/Makefile deleted file mode 100644 index 67ea1f1..0000000 --- a/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -.PHONY: validate -validate: - cd validator && go run . ../README.md diff --git a/README.md b/README.md index 4cc43dd..77b11c7 100644 --- a/README.md +++ b/README.md @@ -19,45 +19,38 @@ GoBooks is a carefully curated collection of the best Go books available for dev - [Efficient Go: Data-Driven Performance Optimization](#efficient-go-data-driven-performance-optimization-1) - [Let's Go Further](#lets-go-further-1) - [Starter Books](#starter-books) - - [The Go Programming Language](#the-go-programming-language) - - [Learning Go *Free*](#learning-go) - - [Get Programming with Go](#get-programming-with-go) - - [API Foundations in Go](#api-foundations-in-go) + - [The Deeper Love of Go](#the-deeper-love-of-go) + - [Learn Go With Tests *Free*](#learn-go-with-tests-free) + - [Learn Go with Pocket-Sized Projects](#learn-go-with-pocket-sized-projects) + - [Learning Go: An Idiomatic Approach to Real-World Go Programming, 2nd Edition](#learning-go-an-idiomatic-approach-to-real-world-go-programming-2nd-edition) + - [Go Programming - From Beginner to Professional, 2nd Edition](#go-programming---from-beginner-to-professional-2nd-edition) + - [Go 101 *Free*](#go-101) + - [Persian - Go Programming Language *Free*](#go-programming-language) + - [gRPC Go for Professionals](#grpc-go-for-professionals) + - [Go Faster](#go-faster) + - [Shipping Go](#shipping-go) + - [gRPC Microservices in Go](#grpc-microservices-in-go) - [Go for Javascript Developers *Free*](#go-for-javascript-developers) - - [The Go Workshop](#the-go-workshop) - - [Head First Go](#head-first-go) - - [How to Code in Go](#how-to-code-in-go) - [Go, from the beginning *Free*](#go-from-the-beginning-free) - [Practical Go Lessons *Free*](#practical-go-lessons-free) - [Pro Go](#pro-go) - [Go for DevOps](#go-for-devops) - - [gRPC Microservices in Go](#grpc-microservices-in-go) - - [Learn Go With Tests *Free*](#learn-go-with-tests-free) - - [Go 101 *Free*](#go-101) - - [Persian - Go Programming Language *Free*](#go-programming-language) - - [gRPC Go for Professionals](#grpc-go-for-professionals) - - [Learn Go with Pocket-Sized Projects](#learn-go-with-pocket-sized-projects) - - [Go Faster](#go-faster) - - [Shipping Go](#shipping-go) - - [Learning Go: An Idiomatic Approach to Real-World Go Programming, 2nd Edition](#learning-go-an-idiomatic-approach-to-real-world-go-programming-2nd-edition) - - [Go Programming - From Beginner to Professional, 2nd Edition](#go-programming---from-beginner-to-professional-2nd-edition) - - [The Deeper Love of Go](#the-deeper-love-of-go) + - [How to Code in Go](#how-to-code-in-go) + - [API Foundations in Go](#api-foundations-in-go) + - [The Go Workshop](#the-go-workshop) + - [Head First Go](#head-first-go) + - [Learning Go *Free*](#learning-go) + - [Get Programming with Go](#get-programming-with-go) + - [The Go Programming Language](#the-go-programming-language) - [Advanced Books](#advanced-books) - - [Hands-On Dependency Injection in Go](#hands-on-dependency-injection-in-go) - - [Security with Go](#security-with-go) - - [A Go Developer's Notebook](#a-go-developers-notebook) - - [Learn Data Structures and Algorithms with Golang](#learn-data-structures-and-algorithms-with-golang) - - [Black Hat Go](#black-hat-go) - - [Writing An Interpreter In Go](#writing-an-interpreter-in-go) - - [Writing A Compiler In Go](#writing-a-compiler-in-go) - - [Hands-On Software Engineering with Golang](#hands-on-software-engineering-with-golang) - - [Building Distributed Applications in Gin](#building-distributed-applications-in-gin) - - [Network Programming with Go](#network-programming-with-go) - - [Powerful Command-Line Applications in Go](#powerful-command-line-applications-in-go) - - [Cloud Native Go - Building Reliable Services in Unreliable Environments](#cloud-native-go---building-reliable-services-in-unreliable-environments) - - [Everyday Go](#everyday-go) - - [Practical Go: Building Scalable Network and Non-Network Applications](#practical-go-building-scalable-network-and-non-network-applications) + - [Go at Scale: Patterns for Professional Development](#go-at-scale-patterns-for-professional-development) + - [The Power of Go: Tools](#the-power-of-go-tools) + - [Build an Orchestrator in Go](#build-an-orchestrator-in-go) + - [Explore Go: Cryptography](#explore-go-cryptography) + - [Practical guide for building a blockchain from scratch in Go with gRPC](#practical-guide-for-building-a-blockchain-from-scratch-in-go-with-grpc-free) + - [Go programming language secure coding practices guide *Free*](#go-programming-language-secure-coding-practices-guide-free) + - [Network Automation with Go](#network-automation-with-go) - [Microservices with Go](#microservices-with-go) - [Event-Driven Architecture in Golang](#event-driven-architecture-in-golang) - [Efficient Go: Data-Driven Performance Optimization](#efficient-go-data-driven-performance-optimization) @@ -66,28 +59,36 @@ GoBooks is a carefully curated collection of the best Go books available for dev - [The Power of Go: Tests](#the-power-of-go-tests) - [Beyond Effective Go: Part 1 - Achieving High-Performance Code](#beyond-effective-go-part-1---achieving-high-performance-code) - [Domain-Driven Design with Golang](#domain-driven-design-with-golang) - - [Go programming language secure coding practices guide *Free*](#go-programming-language-secure-coding-practices-guide-free) - - [Network Automation with Go](#network-automation-with-go) - - [The Power of Go: Tools](#the-power-of-go-tools) - - [Build an Orchestrator in Go](#build-an-orchestrator-in-go) - - [Explore Go: Cryptography](#explore-go-cryptography) - - [Practical guide for building a blockchain from scratch in Go with gRPC](#practical-guide-for-building-a-blockchain-from-scratch-in-go-with-grpc-free) - - [Go at Scale: Patterns for Professional Development](#go-at-scale-patterns-for-professional-development) + - [Building Distributed Applications in Gin](#building-distributed-applications-in-gin) + - [Network Programming with Go](#network-programming-with-go) + - [Powerful Command-Line Applications in Go](#powerful-command-line-applications-in-go) + - [Go by Example](#go-by-example) + - [Cloud Native Go - Building Reliable Services in Unreliable Environments](#cloud-native-go---building-reliable-services-in-unreliable-environments) + - [Everyday Go](#everyday-go) + - [Practical Go: Building Scalable Network and Non-Network Applications](#practical-go-building-scalable-network-and-non-network-applications) + - [Black Hat Go](#black-hat-go) + - [Writing An Interpreter In Go](#writing-an-interpreter-in-go) + - [Writing A Compiler In Go](#writing-a-compiler-in-go) + - [Hands-On Software Engineering with Golang](#hands-on-software-engineering-with-golang) + - [A Go Developer's Notebook](#a-go-developers-notebook) + - [Hands-On Dependency Injection in Go](#hands-on-dependency-injection-in-go) + - [Security with Go](#security-with-go) - [Go with the Domain: Building Modern Business Software in Go *Free*](#go-with-the-domain-building-modern-business-software-in-go-free) - [Spaceship Go *Free*](#spaceship-go-free) - [Ultimate Go Notebook](#ultimate-go-notebook) - [Web Development](#web-development) - - [12 Factor Applications with Docker and Go](#12-factor-applications-with-docker-and-go) + - [Mastering Go, 4rd edition](#mastering-go-4rd-edition) + - [Let's Go!](#lets-go) + - [Let's Go Further](#lets-go-further) - [Webapps in Go the anti textbook *Free*](#webapps-in-go-the-anti-textbook-free) - [Build SaaS apps in Go](#build-saas-apps-in-go) - [Go Brain Teasers](#go-brain-teasers) - [Creative DIY Microcontroller Projects with TinyGo and WebAssembly](#creative-diy-microcontroller-projects-with-tinygo-and-webassembly) - [Distributed Services with Go Your Guide to Reliable, Scalable, and Maintainable Systems](#distributed-services-with-go-your-guide-to-reliable-scalable-and-maintainable-systems) - [Build Systems with Go: Everything a Gopher Must Know](#build-systems-with-go-everything-a-gopher-must-know) - - [Let's Go!](#lets-go) - - [Let's Go Further](#lets-go-further) - - [Mastering Go, 4rd edition](#mastering-go-4rd-edition) + - [12 Factor Applications with Docker and Go](#12-factor-applications-with-docker-and-go) + - [Learn Data Structures and Algorithms with Golang](#learn-data-structures-and-algorithms-with-golang) - [Web Development with Go: Learn to Create Real World Web Applications using Go](#web-development-with-go-learn-to-create-real-world-web-applications-using-go) - [Wasm Cooking with Golang](#wasm-cooking-with-golang) - [Generative Art in Go](#generative-art-in-go) @@ -115,7 +116,7 @@ GoBooks is a carefully curated collection of the best Go books available for dev ### [The Go Programming Language](https://amzn.to/3MbHW7i) - + *Last published*: **2015** *Authors:* **Alan A. A. Donovan** and **Brian W. Kernighan** @@ -127,7 +128,7 @@ Widely considered the "Go Bible" and the definitive reference for the language, ### [Learning Go: An Idiomatic Approach to Real-World Go Programming, 2nd Edition](https://amzn.to/4ceJWWQ) - + *Last published*: **2024** *Authors:* **Jon Bodner** @@ -138,7 +139,7 @@ One of the most recommended modern Go books, praised by experts at Datadog and a ### [100 Go Mistakes and How to Avoid Them](https://www.manning.com/books/100-go-mistakes-and-how-to-avoid-them) - + *Last published*: **2022** *Authors:* **Teiva Harsanyi** @@ -149,7 +150,7 @@ A community favorite for intermediate-to-advanced developers, frequently recomme ### [Learn Go With Tests](https://quii.gitbook.io/learn-go-with-tests/) *Free* - + *Last published*: **2025** *Authors:* **Chris James** @@ -161,7 +162,7 @@ One of the most popular free Go resources with over 22,000 GitHub stars. Its tes ### [Writing An Interpreter In Go](https://amzn.to/45PIyGq) - + *Last published*: **2020** *Authors:* **Thorsten Ball** @@ -172,7 +173,7 @@ A cult classic with an enthusiastic following on Goodreads (4.5+ stars) and Hack ### [Let's Go!](https://lets-go.alexedwards.net/) - + *Last published*: **2023** *Authors:* **Alex Edwards** @@ -183,7 +184,7 @@ The most recommended book for Go web development, praised for its step-by-step, ### [Head First Go](https://amzn.to/4r1FJdA) - + *Last published*: **2019** *Authors:* **Jay McGavren** @@ -194,7 +195,7 @@ A top pick on GeeksforGeeks and other beginner lists, leveraging the popular Hea ### [Black Hat Go](https://amzn.to/4tlEqaX) -[](https://amzn.to/4tlEqaX) +[](https://amzn.to/4tlEqaX) *Last published*: **2020** *Authors:* **Tom Steele, Chris Patten, Dan Kottmann** @@ -205,7 +206,7 @@ A highly popular niche book that combines Go with security and penetration testi ### [Efficient Go: Data-Driven Performance Optimization](https://www.amazon.com/Efficient-Go-Data-Driven-Performance-Optimization/dp/1098105710) - + *Last published*: **2022** *Authors:* **Bartlomiej Płotka, Frederic Branczyk** @@ -216,7 +217,7 @@ A highly regarded guide to Go performance, recommended by experts and frequently ### [Let's Go Further](https://lets-go-further.alexedwards.net/) - + *Last published*: **2023** *Authors:* **Alex Edwards** @@ -230,278 +231,37 @@ The highly popular sequel to *Let's Go!*, focusing on advanced API and web appli > Here are the top recommended books for absolute beginners—those with little or no programming experience—who want to learn Go from the very start -### [The Go Programming Language](https://amzn.to/3MbHW7i) - - - -*Last published*: **2015** -*Authors:* **Alan A. A. Donovan** and **Brian W. Kernighan** -*Available as*: **eBook**, **Print** - - -Widely regarded as the definitive guide to Go programming, this book offers an in-depth exploration of the language's syntax, data structures, and unique features such as goroutines and channels. Key topics include concurrency, error handling, and best practices in software engineering. Whether you're a developer transitioning from another language or someone seeking to deepen your Go knowledge, this book is an invaluable resource for mastering both foundational and advanced concepts. - ------ - -### [Learning Go](https://www.miek.nl/go) - -*Last published*: **2018** -*Authors:* **Miek Gieben** -*Avaible For Free* : **[Source Code](https://github.com/miekg/learninggo)** - - -A online book to start learning Golang. It features numerous exercises (and answers). - - ------ - - -### [Get Programming with Go](https://amzn.to/4ts8ylm) - -*Last published*: **2018** -*Authors:* **Nathan Youngman** and **Roger Peppé** - - - -*Get Programming with Go* introduces you to the powerful Go language without confusing jargon or high-level theory. By working through 32 quick-fire lessons, you'll quickly pick up the basics of the innovative Go programming language! - ------ - - -### [API Foundations in Go](https://amzn.to/4tkfSPE) - -*Last published*: **2019** -*Authors:* **Tit Petric** - - - -With this book you'll learn to use Go, taking advantage of it's multi-threaded nature, and typed syntax. Starting your API implementation in Go is your first step towards what a rock solid API should be. - ------ - - -### [Go for Javascript Developers](https://www.pazams.com/Go-for-Javascript-Developers/) - -*Last published*: **2022** -*Authors:* **Maor Zamski** and **Daniel Singer** -*Avaible For Free* : **[Source Code](https://github.com/pazams/go-for-javascript-developers)** - - - -This book helps Javascripters become Gophers. Outlining the differences between these languages makes it easier to switch back and forth, and can help mitigate potential issues when doing so. - ------ - -### [The Go Workshop](https://amzn.to/3MrFZUk) - -*Last published*: **2019** -*Authors:* **Delio D'Anna**, **Andrew Hayes**, **Sam Hennessy**, **Jeremy Leasor**, **Gobin Sougrakpam**, and **Dániel Szabó** - - - -The Go Workshop will take the pain out of learning the Go programming language (also known as Golang). It is designed to teach you to be productive in building real-world software. Presented in an engaging, hands-on way, this book focuses on the features of Go that are used by professionals in their everyday work. - ------ - -### [Head First Go](https://amzn.to/4r1FJdA) - -*Last published*: **2019** -*Authors:* **Jay McGavren** - - - -Go makes it easy to build software that's simple, reliable, and efficient. Andthis book makes it easy for programmers like you to get started. Google designed Go for high-performance networking and multiprocessing, but—like Python and JavaScript—the language is easy to read and use. With this practical hands-on guide, you'll learn how to write Go code using clear examples that demonstrate the language in action. Best of all, you'll understand the conventions and techniques that employers want entry-level Go developers to know. - - ------ - - -### [How to Code in Go](https://www.digitalocean.com/community/books/how-to-code-in-go-ebook) - -*Last published*: **2020** -*Authors:* **Mark Bates**, **Cory LaNou** and **Tim Raymond** -*Avaible For Free* : **[epub](https://assets.digitalocean.com/books/how-to-code-in-go.epub)**, **[pdf](https://assets.digitalocean.com/books/how-to-code-in-go.pdf)** - - -This book is designed to introduce you to writing programs with the Go programming language. You'll learn how to write useful tools and applications that can run on remote servers, or local Windows, macOS, and Linux systems for development. - ------ - -### [Go, from the beginning](https://leanpub.com/go-from-the-beginning) *Free* - -*Last published*: **2022** -*Authors:* **Chris Noring** - - - -In this book you will learn the following: - -- Build Console apps -- Create Web APIs -- Test your code -- Create and publish reusable packages that others can consume -- Organize your files in a project -- Work with files and directories -- Parse text with the string library and regular expressions. - ------ - -### [Practical Go Lessons](https://www.practical-go-lessons.com/) - -*Last published*: **2022** -*Authors:* **Maximilien Andile** -*Avaible For Free* : **[Read Online](https://www.practical-go-lessons.com)** - - - - -Practical Go Lessons has 41 chapters and more than 700 pages with illustrations. -It is suitable for anybody how wants to start programming with the Go language. -It assumes no prior knowledge. -Each chapter contains test questions with detailed answers. -The HTML version is free. You can support the author by buying the PDF or Paper version. - ------ - -### [Pro Go](https://amzn.to/4rDm43L) - -*Last published*: **2022** -*Authors:* **Adam Freeman** - - - -Starting from the basics and building up to the most advanced and sophisticated features. You will learn how Go builds on a simple and consistent type system to create a comprehensive and productive development experience that produces fast and robust applications that run across platforms. - -- Gain a solid understanding of the Go language and tools -- Gain in-depth knowledge of the Go standard library -- Use Go for concurrent/parallel tasks -- Use Go for client- and server-side development - ------ - -### [Go for DevOps](https://amzn.to/3LZBwrT) - -*Last published*: **2022** -*Authors:* **John Doak**, **David Justice** - - - -Go is the go-to language for DevOps libraries and services, and without it, achieving fast and safe automation is a challenge. With the help of Go for DevOps, you'll learn how to deliver services with ease and safety, becoming a better DevOps engineer in the process. - -Some of the key things this book will teach you are how to write Go software to automate configuration management, update remote machines, author custom automation in GitHub Actions, and interact with Kubernetes. As you advance through the chapters, you'll explore how to automate the cloud using software development kits (SDKs), extend HashiCorp's Terraform and Packer using Go, develop your own DevOps services with gRPC and REST, design system agents, and build robust workflow systems. - -By the end of this Go for DevOps book, you'll understand how to apply development principles to automate operations and provide operational insights using Go, which will allow you to react quickly to resolve system failures before your customers realize something has gone wrong. - ------ - ### [Learn Go With Tests](https://quii.gitbook.io/learn-go-with-tests/) *Last published*: **2025** *Authors:* **Chris James** *Avaible For Free* : **[Source Code](https://github.com/quii/learn-go-with-tests)** - + Learn Go guided by tests. Write a test, learn a new Go language feature to make it pass, refactor and repeat. You'll get a grounding in test-driven development and importantly understand the principles behind it. ----- -### [Go 101](https://go101.org/article/101.html) - -*Last published*: **2023** -*Authors:* **Tapir Liu** -*Avaible For Free* : **[Read Online](https://go101.org/article/101.html)** - - - - -Go 101 is a book focusing on Go syntax/semantics and all kinds of runtime related things (Go 1.17-pre ready) and tries to help gophers gain a deep and thorough understanding of Go. This book also collects many details of Go and in Go programming. It is expected that this book is helpful for both beginner and experienced Go programmers. - ------ - -### [Go Programming Language](https://book.gofarsi.ir/) - -*Last published*: **2023** -*Authors:* **Tapir Liu** -*Avaible For Free* : **[Read Online](https://book.gofarsi.ir)** -*Language*: **Persian** - - - -The first Persian open source book about golang deep dive. -In this book, we discuss all deep topics related to the Go language, -from the basics to the advanced, with the aim of increasing the Gopher community in Iran. - ------ - -### [gRPC Go for Professionals](https://amzn.to/46oiZfC) - -*Last published*: **2023** -*Authors:* **Clement Jean** - - - - -In recent years, Microservice architecture has been gaining popularity. With that rise, comes a different set of requirements than we had previously. The most important one is efficient communication between the different services. That's where gRPC comes in. So naturally, this book will show you how to create gRPC servers and clients in an efficient, secure, and scalable way. But, on top of that, because Microservices are not only about communication, this book intends to show you how to deploy your application on Kubernetes and configure other tools that are needed for making your application more resilient. In that way, this book will give you all the tools that you need to start right away with gRPC in a Microservice architecture. - -In gRPC Go for Professionals, you'll begin by learning the core concepts such as how the framework sends messages over the network and why it uses Protobuf for serialization and deserialization. After that, we will implement a TODO list API step by step to see the different features of gRPC. Then we are going to see how to test your services in different ways. We will see how to debug your API endpoints. And finally, we will see how to deploy the application's services by creating Docker images and using Kubernetes. - ------ - ### [Learn Go with Pocket-Sized Projects](https://amzn.to/4cliBlM) *Last published*: **2025** *Authors:* **Aliénor Latour**, **Donia Chaiehloudj**, and **Pascal Bertrand** - + Learn Go with Pocket-Sized Projects teaches you to write professional-level Go code by creating handy tools and fun apps. Each small, self-contained project introduces important practical skills, including ensuring that your code is thoroughly tested and documented! You'll make architectural decisions for your projects and organize your code in a maintainable way. Everything you learn is easy to scale-up to full-size Go applications. ----- -### [Go Faster](https://leanpub.com/gofaster) +### [The Deeper Love of Go](https://bitfieldconsulting.com/books/deeper) -*Last published*: **2023** -*Authors:* **Ollie Phillips** +*Last published*: **2025** +*Authors:* **John Arundel** + -Picture of book cover for Go Faster - -Some say Go is a simple language and with only 25 keywords it surely is. But, to work with Go effectively requires proficiency and understanding beyond simple syntax alone. It can take developers months or even years to acquire this experience, but this book sets out to short-circuit that process and get you there faster! - -With my book, Go Faster, you can shorten your learning curve and become a proficient Go programmer, going from beginner to expert in no time. Learn Go faster and join the thriving community of skilled Go developers! - ------ - -### [Shipping Go](https://amzn.to/4ra6o8q) - -*Last published*: **2023** -*Authors:* **Joel Holmes** - - -Picture of book cover for Shipping Go - -You know how to build Go programs—now learn how to ship them to your customers efficiently! This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product. - -In Shipping Go you will learn how to: - - Develop better software based on feedback from customers - - Create a development pipeline that turns feedback into features - - Reduce bugs with pipeline automation that validates code before it is deployed - - Establish continuous testing for exceptional code quality - - Serverless, container based, and server based deployments - - Scale your deployment in a cost-effective way - - Deliver a culture of continuous improvement - - ----- - -### [gRPC Microservices in Go](https://amzn.to/4rzgHSW) - -*Last published*: **2023** -*Authors:* **Hüseyin Babal** - - - -For the last decade, we have heard stories about Monolith to Microservice transitions and we might think that this transition solves the majority of the problems in the organizations. However, it might end up with mess if you are not aware about best practices of this transition, since Microservice Architecture comes with its challenges. In this book, we start covering production grade best practices of Microservices Architecture and explain when to use it. Then we talk about microservice communication patterns where gRPC comes to the stage. You will see complete examples written in Go with Hexagonal Architecture applied to project structure. You will not only learn how to implement microservices, you will see how to write tests, maintain quality with proper CI, deploy to Kubernetes environment and finally set up an observable system to have better monitoring for your application. +Introduces the Go programming language for complete beginners, as well as those with experience programming in other languages. ----- @@ -510,7 +270,7 @@ For the last decade, we have heard stories about Monolith to Microservice transi *Last published*: **2024** *Authors:* **Jon Bodner** - + Go has rapidly become the preferred language for building web services. Plenty of tutorials are available to teach Go's syntax to developers with experience in other programming languages, but tutorials aren't enough. They don't teach Go's idioms, so developers end up recreating patterns that don't make sense in a Go context. This practical guide provides the essential background you need to write clear and idiomatic Go. @@ -534,7 +294,7 @@ This book helps you: *Last published*: **2024** *Authors:* **Samantha Coyle** - + Go Programming – From Beginner to Professional is a comprehensive guide that takes your proficiency in the Go programming language from novice to expert. Starting with fundamental concepts, this book covers variables, command-line tools, and working with data before delving into advanced concepts, including error handling, interfaces, and generics, harnessing Go's latest features through hands-on exercises. Along the way, you'll learn to structure projects using Go modules, manage packages effectively, and master debugging techniques. As you progress, you'll get to grips with practical application-centric aspects such as command-line programming, file manipulation, and working with SQL databases. Additionally, the book explores web server development, RESTful APIs, and utilizing the Go HTTP client to interact with web applications. Further enhancing your Go skills, you'll learn concurrent programming, testing methodologies, Go tools, and how to deploy applications in the cloud. Throughout the book, you'll uncover Go's hidden gems and gain insights into time manipulation, best practices, and more. By the end of this book, you'll have worked through practical exercises and activities that'll equip you with the knowledge and skills needed to excel as a proficient Go developer, primed for success in real-world projects. @@ -550,121 +310,448 @@ What you will learn ----- -### [The Deeper Love of Go](https://bitfieldconsulting.com/books/deeper) +### [Go 101](https://go101.org/article/101.html) -*Last published*: **2025** -*Authors:* **John Arundel** +*Last published*: **2023** +*Authors:* **Tapir Liu** +*Avaible For Free* : **[Read Online](https://go101.org/article/101.html)** - -Introduces the Go programming language for complete beginners, as well as those with experience programming in other languages. + + +Go 101 is a book focusing on Go syntax/semantics and all kinds of runtime related things (Go 1.17-pre ready) and tries to help gophers gain a deep and thorough understanding of Go. This book also collects many details of Go and in Go programming. It is expected that this book is helpful for both beginner and experienced Go programmers. ----- +### [Go Programming Language](https://book.gofarsi.ir/) + +*Last published*: **2023** +*Authors:* **Tapir Liu** +*Avaible For Free* : **[Read Online](https://book.gofarsi.ir)** +*Language*: **Persian** + + + +The first Persian open source book about golang deep dive. +In this book, we discuss all deep topics related to the Go language, +from the basics to the advanced, with the aim of increasing the Gopher community in Iran. + +----- + +### [gRPC Go for Professionals](https://amzn.to/46oiZfC) + +*Last published*: **2023** +*Authors:* **Clement Jean** + + + + +In recent years, Microservice architecture has been gaining popularity. With that rise, comes a different set of requirements than we had previously. The most important one is efficient communication between the different services. That's where gRPC comes in. So naturally, this book will show you how to create gRPC servers and clients in an efficient, secure, and scalable way. But, on top of that, because Microservices are not only about communication, this book intends to show you how to deploy your application on Kubernetes and configure other tools that are needed for making your application more resilient. In that way, this book will give you all the tools that you need to start right away with gRPC in a Microservice architecture. + +In gRPC Go for Professionals, you'll begin by learning the core concepts such as how the framework sends messages over the network and why it uses Protobuf for serialization and deserialization. After that, we will implement a TODO list API step by step to see the different features of gRPC. Then we are going to see how to test your services in different ways. We will see how to debug your API endpoints. And finally, we will see how to deploy the application's services by creating Docker images and using Kubernetes. + +----- + +### [Go Faster](https://leanpub.com/gofaster) + +*Last published*: **2023** +*Authors:* **Ollie Phillips** + + +Picture of book cover for Go Faster + +Some say Go is a simple language and with only 25 keywords it surely is. But, to work with Go effectively requires proficiency and understanding beyond simple syntax alone. It can take developers months or even years to acquire this experience, but this book sets out to short-circuit that process and get you there faster! + +With my book, Go Faster, you can shorten your learning curve and become a proficient Go programmer, going from beginner to expert in no time. Learn Go faster and join the thriving community of skilled Go developers! + +----- + +### [Shipping Go](https://amzn.to/4ra6o8q) + +*Last published*: **2023** +*Authors:* **Joel Holmes** + + +Picture of book cover for Shipping Go + +You know how to build Go programs—now learn how to ship them to your customers efficiently! This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product. + +In Shipping Go you will learn how to: + - Develop better software based on feedback from customers + - Create a development pipeline that turns feedback into features + - Reduce bugs with pipeline automation that validates code before it is deployed + - Establish continuous testing for exceptional code quality + - Serverless, container based, and server based deployments + - Scale your deployment in a cost-effective way + - Deliver a culture of continuous improvement + + ----- + +### [gRPC Microservices in Go](https://amzn.to/4rzgHSW) + +*Last published*: **2023** +*Authors:* **Hüseyin Babal** + + + +For the last decade, we have heard stories about Monolith to Microservice transitions and we might think that this transition solves the majority of the problems in the organizations. However, it might end up with mess if you are not aware about best practices of this transition, since Microservice Architecture comes with its challenges. In this book, we start covering production grade best practices of Microservices Architecture and explain when to use it. Then we talk about microservice communication patterns where gRPC comes to the stage. You will see complete examples written in Go with Hexagonal Architecture applied to project structure. You will not only learn how to implement microservices, you will see how to write tests, maintain quality with proper CI, deploy to Kubernetes environment and finally set up an observable system to have better monitoring for your application. + +----- + +### [Go for Javascript Developers](https://www.pazams.com/Go-for-Javascript-Developers/) + +*Last published*: **2022** +*Authors:* **Maor Zamski** and **Daniel Singer** +*Avaible For Free* : **[Source Code](https://github.com/pazams/go-for-javascript-developers)** + + + +This book helps Javascripters become Gophers. Outlining the differences between these languages makes it easier to switch back and forth, and can help mitigate potential issues when doing so. + +----- + +### [Go, from the beginning](https://leanpub.com/go-from-the-beginning) *Free* + +*Last published*: **2022** +*Authors:* **Chris Noring** + + + +In this book you will learn the following: + +- Build Console apps +- Create Web APIs +- Test your code +- Create and publish reusable packages that others can consume +- Organize your files in a project +- Work with files and directories +- Parse text with the string library and regular expressions. + +----- + +### [Practical Go Lessons](https://www.practical-go-lessons.com/) + +*Last published*: **2022** +*Authors:* **Maximilien Andile** +*Avaible For Free* : **[Read Online](https://www.practical-go-lessons.com)** + + + + +Practical Go Lessons has 41 chapters and more than 700 pages with illustrations. +It is suitable for anybody how wants to start programming with the Go language. +It assumes no prior knowledge. +Each chapter contains test questions with detailed answers. +The HTML version is free. You can support the author by buying the PDF or Paper version. + +----- + +### [Pro Go](https://amzn.to/4rDm43L) + +*Last published*: **2022** +*Authors:* **Adam Freeman** + + + +Starting from the basics and building up to the most advanced and sophisticated features. You will learn how Go builds on a simple and consistent type system to create a comprehensive and productive development experience that produces fast and robust applications that run across platforms. + +- Gain a solid understanding of the Go language and tools +- Gain in-depth knowledge of the Go standard library +- Use Go for concurrent/parallel tasks +- Use Go for client- and server-side development + +----- + +### [Go for DevOps](https://amzn.to/3LZBwrT) + +*Last published*: **2022** +*Authors:* **John Doak**, **David Justice** + + + +Go is the go-to language for DevOps libraries and services, and without it, achieving fast and safe automation is a challenge. With the help of Go for DevOps, you'll learn how to deliver services with ease and safety, becoming a better DevOps engineer in the process. + +Some of the key things this book will teach you are how to write Go software to automate configuration management, update remote machines, author custom automation in GitHub Actions, and interact with Kubernetes. As you advance through the chapters, you'll explore how to automate the cloud using software development kits (SDKs), extend HashiCorp's Terraform and Packer using Go, develop your own DevOps services with gRPC and REST, design system agents, and build robust workflow systems. + +By the end of this Go for DevOps book, you'll understand how to apply development principles to automate operations and provide operational insights using Go, which will allow you to react quickly to resolve system failures before your customers realize something has gone wrong. + +----- + +### [How to Code in Go](https://www.digitalocean.com/community/books/how-to-code-in-go-ebook) + +*Last published*: **2020** +*Authors:* **Mark Bates**, **Cory LaNou** and **Tim Raymond** +*Avaible For Free* : **[epub](https://assets.digitalocean.com/books/how-to-code-in-go.epub)**, **[pdf](https://assets.digitalocean.com/books/how-to-code-in-go.pdf)** + + +This book is designed to introduce you to writing programs with the Go programming language. You'll learn how to write useful tools and applications that can run on remote servers, or local Windows, macOS, and Linux systems for development. + +----- + +### [API Foundations in Go](https://amzn.to/4tkfSPE) + +*Last published*: **2019** +*Authors:* **Tit Petric** + + + +With this book you'll learn to use Go, taking advantage of it's multi-threaded nature, and typed syntax. Starting your API implementation in Go is your first step towards what a rock solid API should be. + +----- + +### [The Go Workshop](https://amzn.to/3MrFZUk) + +*Last published*: **2019** +*Authors:* **Delio D'Anna**, **Andrew Hayes**, **Sam Hennessy**, **Jeremy Leasor**, **Gobin Sougrakpam**, and **Dániel Szabó** + + + +The Go Workshop will take the pain out of learning the Go programming language (also known as Golang). It is designed to teach you to be productive in building real-world software. Presented in an engaging, hands-on way, this book focuses on the features of Go that are used by professionals in their everyday work. + +----- + +### [Head First Go](https://amzn.to/4r1FJdA) + +*Last published*: **2019** +*Authors:* **Jay McGavren** + + + +Go makes it easy to build software that's simple, reliable, and efficient. Andthis book makes it easy for programmers like you to get started. Google designed Go for high-performance networking and multiprocessing, but—like Python and JavaScript—the language is easy to read and use. With this practical hands-on guide, you'll learn how to write Go code using clear examples that demonstrate the language in action. Best of all, you'll understand the conventions and techniques that employers want entry-level Go developers to know. + +----- + +### [Learning Go](https://www.miek.nl/go) + +*Last published*: **2018** +*Authors:* **Miek Gieben** +*Avaible For Free* : **[Source Code](https://github.com/miekg/learninggo)** + + +A online book to start learning Golang. It features numerous exercises (and answers). + +----- + +### [Get Programming with Go](https://amzn.to/4ts8ylm) + +*Last published*: **2018** +*Authors:* **Nathan Youngman** and **Roger Peppé** + + + +*Get Programming with Go* introduces you to the powerful Go language without confusing jargon or high-level theory. By working through 32 quick-fire lessons, you'll quickly pick up the basics of the innovative Go programming language! + +----- + +### [The Go Programming Language](https://amzn.to/3MbHW7i) + + + +*Last published*: **2015** +*Authors:* **Alan A. A. Donovan** and **Brian W. Kernighan** +*Available as*: **eBook**, **Print** + + +Widely regarded as the definitive guide to Go programming, this book offers an in-depth exploration of the language's syntax, data structures, and unique features such as goroutines and channels. Key topics include concurrency, error handling, and best practices in software engineering. Whether you're a developer transitioning from another language or someone seeking to deepen your Go knowledge, this book is an invaluable resource for mastering both foundational and advanced concepts. + +----- + + ## Advanced Books -### [Hands-On Dependency Injection in Go](https://amzn.to/4knFw1R) +### [Go at Scale: Patterns for Professional Development](https://rezmoss.com/go-at-scale/) - + -*Last published*: **2018** +*Last published*: **2025** +*Authors:* **** + +Go at Scale is your comprehensive guide to writing scalable, maintainable, and efficient Go code. Moving beyond the basics, this book dives deep into advanced patterns and practices used in real-world applications. + +----- + +### [The Power of Go: Tools](https://bitfieldconsulting.com/books/tools) + + + +*Last published*: **2024** +*Authors:* **John Arundel** + +Go is a popular choice for writing DevOps and systems programs, and command-line tools in particular. How can we write simple, powerful, idiomatic, and even beautiful tools in Go? This book covers all the necessary techniques: functional options, flags and arguments, files and filesystems, executing commands, writing shells and pipelines, JSON and YAML wrangling, and even sophisticated API clients. + +Even more importantly, the book teaches you how to _think_ like a master software engineer: how to break down problems into manageable chunks, how to test functions before they're written, and how to design Go CLIs that delight users. + +----- + +### [Build an Orchestrator in Go](https://www.manning.com/books/build-an-orchestrator-in-go) + + + +*Last published*: **2024** +*Authors:* **Tim Boring** + +Understand Kubernetes and other orchestration systems deeply by building your own using Go and the Docker API. + +Orchestration systems like Kubernetes coordinate other software subsystems and services to create a complete organized system. Although orchestration tools have a reputation for complexity, they're designed around few important patterns that apply across many aspects of software development. Build an Orchestrator in Go reveals the inner workings of orchestration frameworks by guiding you as you design and implement your own using the Go SDK. As you create your own orchestration framework, you'll improve your understanding of Kubernetes and its role in distributed system design. You'll also build the skills required to design custom orchestration solutions for those times when an out-of-the-box solution isn't a good fit. + +----- + +### [Explore Go: Cryptography](https://bitfieldconsulting.com/books/crypto) + + + +*Last published*: **2024** +*Authors:* **John Arundel** + +Much of the modern world is built on cryptography, and this book introduces readers to the fundamental principles of ciphers, keys, and hashing. It traces the development of increasingly sophisticated cryptographic schemes from the Caesar cipher to SHA-256 and AES-GCM, including dozens of example Go programs and coding challenges. The book concludes with a review of best practices for handling encryption and authentication in Go applications. + +----- + +### [Practical guide for building a blockchain from scratch in Go with gRPC](https://github.com/volodymyrprokopyuk/go-blockchain) *Free* + +*Last published*: **2024** +*Authors:* **** + +A foundational and practical guide for effectively learning the fundamental blockchain concepts and +progressively building a blockchain from scratch in Go with gRPC. An interesting and challenging +adventure that takes you from the foundational concepts and purpose through the technical design and +implementation to the practical testing and usage of the proposed blockchain. Simple, yet non-trivial. Concise, yet detailed. Practical, yet well-grounded. + +----- + +### [Go programming language secure coding practices guide](https://checkmarx.gitbooks.io/go-scp/) *Free* + +*Last published*: **2023** +*Authors:* **** + +The main goal of this book is to help developers avoid common mistakes while at the same time, learning a new programming language through a "hands-on approach". This book provides a good level of detail on "how to do it securely" showing what kind of security problems could arise during development. + +----- + +### [Network Automation with Go](https://www.packtpub.com/en-us/product/network-automation-with-go-9781800560925) + + + +*Last published*: **2023** +*Authors:* **** + +Go's built-in first-class concurrency mechanisms make it an ideal choice for long-lived low-bandwidth I/O operations, which are typical requirements of network automation and network operations applications. This book provides a quick overview of Go and hands-on examples within it to help you become proficient with Go for network automation. It's a practical guide that will teach you how to automate common network operations and build systems using Go. The first part takes you through a general overview, use cases, strengths, and inherent weaknesses of Go to prepare you for a deeper dive into network automation. You'll explore the common network automation areas and challenges, what language features you can use in each of those areas, and the common software tools and packages. To help deepen your understanding, you'll also work through real-world network automation problems and apply hands-on solutions to them. By the end of this book, you'll be well-versed with Go and have a solid grasp on network automation. + +----- + +### [Microservices with Go](https://www.packtpub.com/product/microservices-with-go/9781804617007) + + +*Last published*: **2022** +*Authors:* **** + +This book covers the key benefits and common issues of microservices, helping you understand the problems microservice architecture helps to solve, the issues it usually introduces, and the ways to tackle them. + +You'll start by learning about the importance of using the right principles and standards in order to achieve the key benefits of microservice architecture. The following chapters will explain why the Go programming language is one of the most popular languages for microservice development and lay down the foundations for the next chapters of the book. You'll explore the foundational aspects of Go microservice development including service scaffolding, service discovery, data serialization, synchronous and asynchronous communication, deployment, and testing. After covering the development aspects, you'll progress to maintenance and reliability topics. The last part focuses on more advanced topics of Go microservice development including system reliability, observability, maintainability, and scalability. In this part, you'll dive into the best practices and examples which illustrate how to apply the key ideas to existing applications, using the services scaffolded in the previous part as examples. + +By the end of this book, you'll have gained hands-on experience with everything you need to develop scalable, reliable and performant microservices using Go. + +----- + +### [Event-Driven Architecture in Golang](https://www.packtpub.com/product/event-driven-architecture-in-golang/9781803238012) + + + +*Last published*: **2022** +*Authors:* **** + +Event-driven architecture in Golang is an approach used to develop applications that shares state changes asynchronously, internally, and externally using messages. EDA applications are better suited at handling situations that need to scale up quickly and the chances of individual component failures are less likely to bring your system crashing down. This is why EDA is a great thing to learn and this book is designed to get you started with the help of step-by-step explanations of essential concepts, practical examples, and more. + +You'll begin building event-driven microservices, including patterns to handle data consistency and resiliency. Not only will you learn the patterns behind event-driven microservices but also how to communicate using asynchronous messaging with event streams. You'll then build an application made of several microservices that communicates using both choreographed and orchestrated messaging. + +By the end of this book, you'll be able to build and deploy your own event-driven microservices using asynchronous communication. + +----- + +### [Efficient Go: Data-Driven Performance Optimization](https://www.amazon.com/Efficient-Go-Data-Driven-Performance-Optimization/dp/1098105710) + + + +*Last published*: **2022** +*Authors:* **Bartlomiej Płotka, Frederic Branczyk** + +Software engineers today typically put performance optimizations low on the list of development priorities. But despite significant technological advancements and lower-priced hardware, software efficiency still matters. With this book, Go programmers will learn how to approach performance topics for applications written in this open source language. + +How and when should you apply performance efficiency optimization without wasting your time? Authors Bartlomiej Plotka and Frederic Branczyk provide the tools and knowledge you need to make your system faster using fewer resources. Once you learn how to address performance in your Go applications, you'll be able to bring small but effective habits to your programming and development cycle. + +----- + +### [100 Go Mistakes and How to Avoid Them](https://www.manning.com/books/100-go-mistakes-and-how-to-avoid-them) + + + +*Last published*: **2022** +*Authors:* **Teiva Harsanyi** + +100 Go Mistakes and How to Avoid Them puts a spotlight on common errors in Go code you might not even know you're making. You'll explore key areas of the language such as concurrency, testing, data structures, and more—and learn how to avoid and fix mistakes in your own projects. + +----- + +### [Know Go: Generics](https://bitfieldconsulting.com/books/generics) + + + +*Last published*: **2022** +*Authors:* **John Arundel** + +Go's 2022 introduction of generics opens up a whole new world of programming in Go. This book explains everything you need to know to start writing generic functions and types, including type parameters, constraints, and the accompanying changes to the standard library. It also offers some advice on how (and whether) you should transition your existing projects to using the new generics features. + +----- + +### [The Power of Go: Tests](https://bitfieldconsulting.com/books/tests) + + + +*Last published*: **2022** +*Authors:* **John Arundel** + +Go's built-in support for testing puts tests front and centre of any software project, from command-line tools to sophisticated backend servers and APIs. This book will introduce you to all Go's testing facilities, show you how to use them to write tests for the trickiest things, and distils the collected wisdom of the Go community on best practices for testing Go programs. Crammed with hundreds of code examples, the book uses real tests and real problems to show you exactly what to do, step by step. + +----- + +### [Beyond Effective Go: Part 1 - Achieving High-Performance Code](https://coreyscott.dev/book/) + + + +*Last published*: **2022** *Authors:* **Corey Scott** -Hands-On Dependency Injection in Go takes you on a journey, teaching you about refactoring existing code to adopt dependency injection (DI) using various methods available in Go. +Are you an experienced Go developer that wants to be more productive? Do you want to write cleaner, faster, and easier to maintain code? +Then the Beyond Effective Go book series is for you. This series is aimed at competent Gophers. It does not mess around with the basics but instead dives right into the daily problems that professional programmers face. Chiefly, how to write fast, robust applications and services that can be maintained and extended as requirements change. -Of the six methods introduced in this book, some are conventional, such as constructor or method injection, and some unconventional, such as just-in-time or config injection. Each method is explained in detail, focusing on their strengths and weaknesses, and is followed with a step-by-step example of how to apply it. With plenty of examples, you will learn how to leverage DI to transform code into something simple and flexible. +This book, Part 1 of the series, focuses on achieving high-performance code. You will learn which aspects of your application or code to focus on and when. You will have a suite of tools, software patterns, and recipes at your disposal to make your life easier. After reading, you will: -Hands-On Dependency Injection in Go takes a pragmatic approach and focuses heavily on the code, user experience, and how to achieve long-term benefits through incremental changes. +- Understand the differences between Concurrency and Parallelism. +- Identify and avoid concurrency issues like deadlock, starvation, livelock, and data races. +- Understand the various concurrency interaction patterns and be able to apply the one that best fits the problem at hand. +- Take a deep dive into Go's concurrency primitives and be able to apply them expertly but also avoid many of their gotchas. +- Be able to diagnose concurrency and performance issues using Go's profiler, execution tracing, and benchmarking tools. +- Be able to identify when code needs optimizing, what needs optimizing and how. +- Have a catalog of concurrency and performance patterns that you can quickly apply to your projects. ----- -### [Security with Go](https://amzn.to/3MbSHqc) +### [Domain-Driven Design with Golang](https://www.packtpub.com/product/domain-driven-design-with-golang/9781804613450) - + -*Last published*: **2018** +*Last published*: **2022** *Authors:* **** -Security with Go is the first Golang security book, and it is useful for both blue team and red team applications. With this book, you will learn how to write secure software, monitor your systems, secure your data, attack systems, and extract information. +Use Golang to create simple, maintainable systems to solve complex business problems. -Defensive topics include cryptography, forensics, packet capturing, and building secure web applications. - -Offensive topics include brute force, port scanning, packet injection, web scraping, social engineering, and post exploitation techniques. - ------ - -### [A Go Developer's Notebook](https://leanpub.com/GoNotebook/) - - - -*Last published*: **2019** -*Authors:* **** - -A developer's experience in golang. - ------ - -### [Black Hat Go](https://amzn.to/4tlEqaX) - -[](https://amzn.to/4tlEqaX) - -*Last published*: **2020** -*Authors:* **Tom Steele, Chris Patten, Dan Kottmann** - -In Black Hat Go, you'll learn how to write powerful and effective penetration testing tools in Go, a language revered for its speed and scalability. Start off with an introduction to Go fundamentals like data types, control structures, and error handling; then, dive into the deep end of Go's offensive capabilities. - ------ - -### [Writing An Interpreter In Go](https://amzn.to/45PIyGq) - - - -*Last published*: **2020** -*Authors:* **Thorsten Ball** - -In this book we will create a programming language together. - -We'll start with 0 lines of code and end up with a fully working interpreter for the Monkey* programming language. - -Step by step. From tokens to output. All code shown and included. Fully tested. - ------ - -### [Writing A Compiler In Go](https://amzn.to/4bCcFok) - - - -*Last published*: **2020** -*Authors:* **Thorsten Ball** - -This is the sequel to Writing An Interpreter In Go. - -We're picking up right where we left off and write a compiler and a virtual machine for Monkey. - -Runnable and tested code front and center, built from the ground up, step by step — just like before. - -But this time, we're going to define bytecode, compile Monkey and execute it in our very own virtual machine. - -It's the next step in Monkey's evolution. - ------ - -### [Hands-On Software Engineering with Golang](https://www.packtpub.com/gb/programming/hands-on-software-engineering-with-golang) - - - -*Last published*: **2020** -*Authors:* **** - -This Golang book distills industry best practices for writing lean Go code that is easy to test and maintain, and helps you to explore its practical implementation by creating a multi-tier application called Links 'R' Us from scratch. You'll be guided through all the steps involved in designing, implementing, testing, deploying, and scaling an application. Starting with a monolithic architecture, you'll iteratively transform the project into a service-oriented architecture (SOA) that supports the efficient out-of-core processing of large link graphs. - -You'll learn about various cutting-edge and advanced software engineering techniques such as building extensible data processing pipelines, designing APIs using gRPC, and running distributed graph processing algorithms at scale. Finally, you'll learn how to compile and package your Go services using Docker and automate their deployment to a Kubernetes cluster. +Domain-driven design (DDD) is one of the most sought-after skills in the industry. This book provides you with step-by-step explanations of essential concepts and practical examples that will see you introducing DDD in your Go projects in no time. Domain-Driven Design with Golang starts by helping you gain a basic understanding of DDD, and then covers all the important patterns, such as bounded context, ubiquitous language, and aggregates. The latter half of the book deals with the real-world implementation of DDD patterns and teaches you how to build two systems while applying DDD principles, which will be a valuable addition to your portfolio. Finally, you'll find out how to build a microservice, along with learning how DDD-based microservices can be part of a greater distributed system. Although the focus of this book is Golang, by the end of this book you'll be able to confidently use DDD patterns outside of Go and apply them to other languages and even distributed systems. ----- ### [Building Distributed Applications in Gin](https://www.packtpub.com/product/building-distributed-applications-in-gin/9781801074858) - + *Last published*: **2021** *Authors:* **** @@ -679,7 +766,7 @@ By the end of this Gin book, you will be able to design, build, and deploy a pro ### [Network Programming with Go](https://nostarch.com/networkprogrammingwithgo) - + *Last published*: **2021** *Authors:* **Adam Woodbeck** @@ -690,7 +777,7 @@ Network Programming with Go will help you leverage Go to write secure, readable, ### [Powerful Command-Line Applications in Go](https://pragprog.com/titles/rggo/powerful-command-line-applications-in-go/) - + *Last published*: **2021** *Authors:* **Ricardo Gerardi** @@ -701,7 +788,7 @@ Write your own fast, reliable, and cross-platform command-line tools with the Go ### [Go by Example](https://www.manning.com/books/go-by-example) - + *Last published*: **2021** *Authors:* **İlker Baltacı** @@ -712,7 +799,7 @@ Go by Example is a practical guide to writing high-quality code that's easy to t ### [Cloud Native Go - Building Reliable Services in Unreliable Environments](https://www.amazon.com/Cloud-Native-Go-Unreliable-Environments/dp/1492076333) - + *Last published*: **2021** *Authors:* **Kevin Hoffman, Dan Nemeth** @@ -725,7 +812,7 @@ You'll explore the composition and construction of these applications, from lowe ### [Everyday Go](https://openfaas.gumroad.com/l/everyday-golang) - + *Last published*: **2021** *Authors:* **Alex Ellis** @@ -743,7 +830,7 @@ This book is a compilation of practical examples, lessons and techniques for Go ### [Practical Go: Building Scalable Network and Non-Network Applications](https://practicalgobook.net) - + *Last published*: **2021** *Authors:* **Amit Saha** @@ -767,202 +854,108 @@ using Go leveraging the best of the language's ecosystem. ----- +### [Black Hat Go](https://amzn.to/4tlEqaX) -### [Microservices with Go](https://www.packtpub.com/product/microservices-with-go/9781804617007) - +[](https://amzn.to/4tlEqaX) -*Last published*: **2022** +*Last published*: **2020** +*Authors:* **Tom Steele, Chris Patten, Dan Kottmann** + +In Black Hat Go, you'll learn how to write powerful and effective penetration testing tools in Go, a language revered for its speed and scalability. Start off with an introduction to Go fundamentals like data types, control structures, and error handling; then, dive into the deep end of Go's offensive capabilities. + +----- + +### [Writing An Interpreter In Go](https://amzn.to/45PIyGq) + + + +*Last published*: **2020** +*Authors:* **Thorsten Ball** + +In this book we will create a programming language together. + +We'll start with 0 lines of code and end up with a fully working interpreter for the Monkey* programming language. + +Step by step. From tokens to output. All code shown and included. Fully tested. + +----- + +### [Writing A Compiler In Go](https://amzn.to/4bCcFok) + + + +*Last published*: **2020** +*Authors:* **Thorsten Ball** + +This is the sequel to Writing An Interpreter In Go. + +We're picking up right where we left off and write a compiler and a virtual machine for Monkey. + +Runnable and tested code front and center, built from the ground up, step by step — just like before. + +But this time, we're going to define bytecode, compile Monkey and execute it in our very own virtual machine. + +It's the next step in Monkey's evolution. + +----- + +### [Hands-On Software Engineering with Golang](https://www.packtpub.com/gb/programming/hands-on-software-engineering-with-golang) + + + +*Last published*: **2020** *Authors:* **** -This book covers the key benefits and common issues of microservices, helping you understand the problems microservice architecture helps to solve, the issues it usually introduces, and the ways to tackle them. +This Golang book distills industry best practices for writing lean Go code that is easy to test and maintain, and helps you to explore its practical implementation by creating a multi-tier application called Links 'R' Us from scratch. You'll be guided through all the steps involved in designing, implementing, testing, deploying, and scaling an application. Starting with a monolithic architecture, you'll iteratively transform the project into a service-oriented architecture (SOA) that supports the efficient out-of-core processing of large link graphs. -You'll start by learning about the importance of using the right principles and standards in order to achieve the key benefits of microservice architecture. The following chapters will explain why the Go programming language is one of the most popular languages for microservice development and lay down the foundations for the next chapters of the book. You'll explore the foundational aspects of Go microservice development including service scaffolding, service discovery, data serialization, synchronous and asynchronous communication, deployment, and testing. After covering the development aspects, you'll progress to maintenance and reliability topics. The last part focuses on more advanced topics of Go microservice development including system reliability, observability, maintainability, and scalability. In this part, you'll dive into the best practices and examples which illustrate how to apply the key ideas to existing applications, using the services scaffolded in the previous part as examples. - -By the end of this book, you'll have gained hands-on experience with everything you need to develop scalable, reliable and performant microservices using Go. +You'll learn about various cutting-edge and advanced software engineering techniques such as building extensible data processing pipelines, designing APIs using gRPC, and running distributed graph processing algorithms at scale. Finally, you'll learn how to compile and package your Go services using Docker and automate their deployment to a Kubernetes cluster. ----- +### [A Go Developer's Notebook](https://leanpub.com/GoNotebook/) -### [Event-Driven Architecture in Golang](https://www.packtpub.com/product/event-driven-architecture-in-golang/9781803238012) + - - -*Last published*: **2022** +*Last published*: **2019** *Authors:* **** -Event-driven architecture in Golang is an approach used to develop applications that shares state changes asynchronously, internally, and externally using messages. EDA applications are better suited at handling situations that need to scale up quickly and the chances of individual component failures are less likely to bring your system crashing down. This is why EDA is a great thing to learn and this book is designed to get you started with the help of step-by-step explanations of essential concepts, practical examples, and more. - -You'll begin building event-driven microservices, including patterns to handle data consistency and resiliency. Not only will you learn the patterns behind event-driven microservices but also how to communicate using asynchronous messaging with event streams. You'll then build an application made of several microservices that communicates using both choreographed and orchestrated messaging. - -By the end of this book, you'll be able to build and deploy your own event-driven microservices using asynchronous communication. +A developer's experience in golang. ----- -### [Efficient Go: Data-Driven Performance Optimization](https://www.amazon.com/Efficient-Go-Data-Driven-Performance-Optimization/dp/1098105710) +### [Hands-On Dependency Injection in Go](https://amzn.to/4knFw1R) - + -*Last published*: **2022** -*Authors:* **Bartlomiej Płotka, Frederic Branczyk** - -Software engineers today typically put performance optimizations low on the list of development priorities. But despite significant technological advancements and lower-priced hardware, software efficiency still matters. With this book, Go programmers will learn how to approach performance topics for applications written in this open source language. - -How and when should you apply performance efficiency optimization without wasting your time? Authors Bartlomiej Plotka and Frederic Branczyk provide the tools and knowledge you need to make your system faster using fewer resources. Once you learn how to address performance in your Go applications, you'll be able to bring small but effective habits to your programming and development cycle. - ------ - - -### [100 Go Mistakes and How to Avoid Them](https://www.manning.com/books/100-go-mistakes-and-how-to-avoid-them) - - - -*Last published*: **2022** -*Authors:* **Teiva Harsanyi** - -100 Go Mistakes and How to Avoid Them puts a spotlight on common errors in Go code you might not even know you're making. You'll explore key areas of the language such as concurrency, testing, data structures, and more—and learn how to avoid and fix mistakes in your own projects. - ------ - -### [Know Go: Generics](https://bitfieldconsulting.com/books/generics) - - - -*Last published*: **2022** -*Authors:* **John Arundel** - -Go's 2022 introduction of generics opens up a whole new world of programming in Go. This book explains everything you need to know to start writing generic functions and types, including type parameters, constraints, and the accompanying changes to the standard library. It also offers some advice on how (and whether) you should transition your existing projects to using the new generics features. - ------ - -### [The Power of Go: Tests](https://bitfieldconsulting.com/books/tests) - - - -*Last published*: **2022** -*Authors:* **John Arundel** - -Go's built-in support for testing puts tests front and centre of any software project, from command-line tools to sophisticated backend servers and APIs. This book will introduce you to all Go's testing facilities, show you how to use them to write tests for the trickiest things, and distils the collected wisdom of the Go community on best practices for testing Go programs. Crammed with hundreds of code examples, the book uses real tests and real problems to show you exactly what to do, step by step. - ------ - -### [Beyond Effective Go: Part 1 - Achieving High-Performance Code](https://coreyscott.dev/book/) - - - -*Last published*: **2022** +*Last published*: **2018** *Authors:* **Corey Scott** -Are you an experienced Go developer that wants to be more productive? Do you want to write cleaner, faster, and easier to maintain code? -Then the Beyond Effective Go book series is for you. This series is aimed at competent Gophers. It does not mess around with the basics but instead dives right into the daily problems that professional programmers face. Chiefly, how to write fast, robust applications and services that can be maintained and extended as requirements change. +Hands-On Dependency Injection in Go takes you on a journey, teaching you about refactoring existing code to adopt dependency injection (DI) using various methods available in Go. -This book, Part 1 of the series, focuses on achieving high-performance code. You will learn which aspects of your application or code to focus on and when. You will have a suite of tools, software patterns, and recipes at your disposal to make your life easier. After reading, you will: +Of the six methods introduced in this book, some are conventional, such as constructor or method injection, and some unconventional, such as just-in-time or config injection. Each method is explained in detail, focusing on their strengths and weaknesses, and is followed with a step-by-step example of how to apply it. With plenty of examples, you will learn how to leverage DI to transform code into something simple and flexible. -- Understand the differences between Concurrency and Parallelism. -- Identify and avoid concurrency issues like deadlock, starvation, livelock, and data races. -- Understand the various concurrency interaction patterns and be able to apply the one that best fits the problem at hand. -- Take a deep dive into Go's concurrency primitives and be able to apply them expertly but also avoid many of their gotchas. -- Be able to diagnose concurrency and performance issues using Go's profiler, execution tracing, and benchmarking tools. -- Be able to identify when code needs optimizing, what needs optimizing and how. -- Have a catalog of concurrency and performance patterns that you can quickly apply to your projects. +Hands-On Dependency Injection in Go takes a pragmatic approach and focuses heavily on the code, user experience, and how to achieve long-term benefits through incremental changes. ----- -### [Domain-Driven Design with Golang](https://www.packtpub.com/product/domain-driven-design-with-golang/9781804613450) +### [Security with Go](https://amzn.to/3MbSHqc) - + -*Last published*: **2022** +*Last published*: **2018** *Authors:* **** -Use Golang to create simple, maintainable systems to solve complex business problems. +Security with Go is the first Golang security book, and it is useful for both blue team and red team applications. With this book, you will learn how to write secure software, monitor your systems, secure your data, attack systems, and extract information. -Domain-driven design (DDD) is one of the most sought-after skills in the industry. This book provides you with step-by-step explanations of essential concepts and practical examples that will see you introducing DDD in your Go projects in no time. Domain-Driven Design with Golang starts by helping you gain a basic understanding of DDD, and then covers all the important patterns, such as bounded context, ubiquitous language, and aggregates. The latter half of the book deals with the real-world implementation of DDD patterns and teaches you how to build two systems while applying DDD principles, which will be a valuable addition to your portfolio. Finally, you'll find out how to build a microservice, along with learning how DDD-based microservices can be part of a greater distributed system. Although the focus of this book is Golang, by the end of this book you'll be able to confidently use DDD patterns outside of Go and apply them to other languages and even distributed systems. +Defensive topics include cryptography, forensics, packet capturing, and building secure web applications. ------ - -### [Go programming language secure coding practices guide](https://checkmarx.gitbooks.io/go-scp/) *Free* - -*Last published*: **2023** -*Authors:* **** - -The main goal of this book is to help developers avoid common mistakes while at the same time, learning a new programming language through a "hands-on approach". This book provides a good level of detail on "how to do it securely" showing what kind of security problems could arise during development. - ------ - -### [Network Automation with Go](https://www.packtpub.com/en-us/product/network-automation-with-go-9781800560925) - - - -*Last published*: **2023** -*Authors:* **** - -Go's built-in first-class concurrency mechanisms make it an ideal choice for long-lived low-bandwidth I/O operations, which are typical requirements of network automation and network operations applications. This book provides a quick overview of Go and hands-on examples within it to help you become proficient with Go for network automation. It's a practical guide that will teach you how to automate common network operations and build systems using Go. The first part takes you through a general overview, use cases, strengths, and inherent weaknesses of Go to prepare you for a deeper dive into network automation. You'll explore the common network automation areas and challenges, what language features you can use in each of those areas, and the common software tools and packages. To help deepen your understanding, you'll also work through real-world network automation problems and apply hands-on solutions to them. By the end of this book, you'll be well-versed with Go and have a solid grasp on network automation. - ------ - -### [The Power of Go: Tools](https://bitfieldconsulting.com/books/tools) - - - -*Last published*: **2024** -*Authors:* **John Arundel** - -Go is a popular choice for writing DevOps and systems programs, and command-line tools in particular. How can we write simple, powerful, idiomatic, and even beautiful tools in Go? This book covers all the necessary techniques: functional options, flags and arguments, files and filesystems, executing commands, writing shells and pipelines, JSON and YAML wrangling, and even sophisticated API clients. - -Even more importantly, the book teaches you how to _think_ like a master software engineer: how to break down problems into manageable chunks, how to test functions before they're written, and how to design Go CLIs that delight users. - ------ - -### [Build an Orchestrator in Go](https://www.manning.com/books/build-an-orchestrator-in-go) - - - -*Last published*: **2024** -*Authors:* **Tim Boring** - -Understand Kubernetes and other orchestration systems deeply by building your own using Go and the Docker API. - -Orchestration systems like Kubernetes coordinate other software subsystems and services to create a complete organized system. Although orchestration tools have a reputation for complexity, they're designed around few important patterns that apply across many aspects of software development. Build an Orchestrator in Go reveals the inner workings of orchestration frameworks by guiding you as you design and implement your own using the Go SDK. As you create your own orchestration framework, you'll improve your understanding of Kubernetes and its role in distributed system design. You'll also build the skills required to design custom orchestration solutions for those times when an out-of-the-box solution isn't a good fit. - ------ - -### [Explore Go: Cryptography](https://bitfieldconsulting.com/books/crypto) - - - -*Last published*: **2024** -*Authors:* **John Arundel** - -Much of the modern world is built on cryptography, and this book introduces readers to the fundamental principles of ciphers, keys, and hashing. It traces the development of increasingly sophisticated cryptographic schemes from the Caesar cipher to SHA-256 and AES-GCM, including dozens of example Go programs and coding challenges. The book concludes with a review of best practices for handling encryption and authentication in Go applications. - ------ - -### [Practical guide for building a blockchain from scratch in Go with gRPC](https://github.com/volodymyrprokopyuk/go-blockchain) *Free* - -*Last published*: **2024** -*Authors:* **** - -A foundational and practical guide for effectively learning the fundamental blockchain concepts and -progressively building a blockchain from scratch in Go with gRPC. An interesting and challenging -adventure that takes you from the foundational concepts and purpose through the technical design and -implementation to the practical testing and usage of the proposed blockchain. Simple, yet non-trivial. Concise, yet detailed. Practical, yet well-grounded. - ------ - -### [Go at Scale: Patterns for Professional Development](https://rezmoss.com/go-at-scale/) - - - -*Last published*: **2025** -*Authors:* **** - -Go at Scale is your comprehensive guide to writing scalable, maintainable, and efficient Go code. Moving beyond the basics, this book dives deep into advanced patterns and practices used in real-world applications. +Offensive topics include brute force, port scanning, packet injection, web scraping, social engineering, and post exploitation techniques. ----- ### [Go with the Domain: Building Modern Business Software in Go](https://threedots.tech/go-with-the-domain/) *Free* - + *Last published*: **** *Authors:* **Three Dots Labs** @@ -977,7 +970,7 @@ Chapters go through refactoring of the project to show common anti-patterns and ### [Spaceship Go](https://blasrodri.github.io/spaceship-go-gh-pages/) *Free* - + *Last published*: **** *Authors:* **** @@ -991,7 +984,7 @@ code. ### [Ultimate Go Notebook](https://courses.ardanlabs.com/courses/ultimate-go-notebook) - + *Last published*: **** *Authors:* **Ardan Labs** @@ -1002,35 +995,45 @@ With this book, you will learn how to write more idiomatic and performant code w This notebook has been designed to provide a reference to everything mentioned in class, as if they were your own personal notes. + ## Web Development ------ +### [Mastering Go, 4rd edition](https://www.packtpub.com/en-us/product/mastering-go-9781805127147) -### [Learn Data Structures and Algorithms with Golang](https://www.packtpub.com/product/learn-data-structures-and-algorithms-with-golang/9781789618501) + - +*Last published*: **2024** +*Authors:* **Mihalis Tsoukalos** -*Last published*: **2019** -*Authors:* **** - -The book begins with an introduction to Go data structures and algorithms. You'll learn how to store data using linked lists, arrays, stacks, and queues. Moving ahead, you'll discover how to implement sorting and searching algorithms, followed by binary search trees. This book will also help you improve the performance of your applications by stringing data types and implementing hash structures in algorithm design. Finally, you'll be able to apply traditional data structures to solve real-world problems. -By the end of the book, you'll have become adept at implementing classic data structures and algorithms in Go, propelling you to become a confident Go programmer. +This is the 4rd edition of Mastering Go. There exist many exciting new topics in this latest edition including writing RESTful services, working with the Websocket protocol, using GitHub Actions and GitLab Actions for Go projects as well as an entirely new chapter on Generics and the development of lots of practical utilities. ----- -### [12 Factor Applications with Docker and Go](https://leanpub.com/12fa-docker-golang) - +### [Let's Go!](https://lets-go.alexedwards.net/) -*Last published*: **2020** -*Authors:* **** + -A book filled with examples on how to use Docker and Go to create the ultimate 12 Factor applications. It goes over individual steps of [The Twelve-Factor App](https://12factor.net/) guidelines and how to implement them with Go and Docker. +*Last published*: **2023** +*Authors:* **Alex Edwards** + +Let's Go teaches you step-by-step how to create fast, secure and maintainable web applications using Go. It guides you through the start-to-finish build of a real-world application — covering topics like how to structure your code, manage dependencies, authenticate and authorize users, secure your server and test your application. + +----- + +### [Let's Go Further](https://lets-go-further.alexedwards.net/) + + + +*Last published*: **2023** +*Authors:* **Alex Edwards** + +Let's Go Further helps you extend and expand your knowledge of Go — taking you beyond the basics and guiding you through advanced patterns for developing, managing and deploying APIs and web applications. By the end of the book you'll have all the knowledge you need to create robust and professional APIs which act as backends for SPAs and native mobile applications, or function as stand-alone services. ----- ### [Webapps in Go the anti textbook](https://github.com/thewhitetulip/web-dev-golang-anti-textbook) *Free* - + *Last published*: **2021** *Authors:* **** @@ -1041,7 +1044,7 @@ This book was written to teach how to develop web applications in Go for people ### [Build SaaS apps in Go](https://buildsaasappingo.com) - + *Last published*: **2021** *Authors:* **** @@ -1065,7 +1068,7 @@ This book contains 25 mind bending quizzes and answers. You can view a sample ch ### [Creative DIY Microcontroller Projects with TinyGo and WebAssembly](https://www.packtpub.com/product/creative-diy-microcontroller-projects-with-tinygo-and-webassembly/9781800560208) - + *Last published*: **2021** *Authors:* **** @@ -1080,7 +1083,7 @@ By the end of this microcontroller book, you will be equipped with the skills yo ### [Distributed Services with Go Your Guide to Reliable, Scalable, and Maintainable Systems](https://pragprog.com/titles/tjgo/distributed-services-with-go/) - + *Last published*: **2021** *Authors:* **Travis Jeffery** @@ -1091,7 +1094,7 @@ Take your Go skills to the next level by learning how to design, develop, and de ### [Build Systems with Go: Everything a Gopher Must Know](https://www.amazon.com/dp/B091FX4CZX) - + *Last published*: **2021** *Authors:* **Juan Manuel Tirado** @@ -1100,36 +1103,25 @@ The Go ecosystem is helping developers to build distributed and scalable systems ----- -### [Let's Go!](https://lets-go.alexedwards.net/) +### [12 Factor Applications with Docker and Go](https://leanpub.com/12fa-docker-golang) + - +*Last published*: **2020** +*Authors:* **** -*Last published*: **2023** -*Authors:* **Alex Edwards** - -Let's Go teaches you step-by-step how to create fast, secure and maintainable web applications using Go. It guides you through the start-to-finish build of a real-world application — covering topics like how to structure your code, manage dependencies, authenticate and authorize users, secure your server and test your application. +A book filled with examples on how to use Docker and Go to create the ultimate 12 Factor applications. It goes over individual steps of [The Twelve-Factor App](https://12factor.net/) guidelines and how to implement them with Go and Docker. ----- -### [Let's Go Further](https://lets-go-further.alexedwards.net/) +### [Learn Data Structures and Algorithms with Golang](https://www.packtpub.com/product/learn-data-structures-and-algorithms-with-golang/9781789618501) - + -*Last published*: **2023** -*Authors:* **Alex Edwards** +*Last published*: **2019** +*Authors:* **** -Let's Go Further helps you extend and expand your knowledge of Go — taking you beyond the basics and guiding you through advanced patterns for developing, managing and deploying APIs and web applications. By the end of the book you'll have all the knowledge you need to create robust and professional APIs which act as backends for SPAs and native mobile applications, or function as stand-alone services. - ------ - -### [Mastering Go, 4rd edition](https://www.packtpub.com/en-us/product/mastering-go-9781805127147) - - - -*Last published*: **2024** -*Authors:* **Mihalis Tsoukalos** - -This is the 4rd edition of Mastering Go. There exist many exciting new topics in this latest edition including writing RESTful services, working with the Websocket protocol, using GitHub Actions and GitLab Actions for Go projects as well as an entirely new chapter on Generics and the development of lots of practical utilities. +The book begins with an introduction to Go data structures and algorithms. You'll learn how to store data using linked lists, arrays, stacks, and queues. Moving ahead, you'll discover how to implement sorting and searching algorithms, followed by binary search trees. This book will also help you improve the performance of your applications by stringing data types and implementing hash structures in algorithm design. Finally, you'll be able to apply traditional data structures to solve real-world problems. +By the end of the book, you'll have become adept at implementing classic data structures and algorithms in Go, propelling you to become a confident Go programmer. ----- @@ -1142,10 +1134,9 @@ Web Development with Go was written to teach both beginners and experts how to c ----- - ### [Wasm Cooking with Golang](https://k33g.gumroad.com/l/wasmcooking) - + *Last published*: **** *Authors:* **** @@ -1162,7 +1153,7 @@ This e-book comprises 23 complete recipes with the code examples necessary to re ### [Generative Art in Go](https://p5v.gumroad.com/l/generative-art-in-golang) - + *Last published*: **** *Authors:* **** @@ -1191,6 +1182,7 @@ Another awesome book for learning Web Development in Golang. ----- + ## Resources ### [A tour of Go](https://tour.golang.org/) diff --git a/.gitignore b/gobooks/.gitignore similarity index 100% rename from .gitignore rename to gobooks/.gitignore diff --git a/gobooks/Makefile b/gobooks/Makefile new file mode 100644 index 0000000..17c6b28 --- /dev/null +++ b/gobooks/Makefile @@ -0,0 +1,3 @@ +.PHONY: validate +validate: + cd validator && go run . ../../README.md diff --git a/covers/100-go-mistakes-and-how-to-avoid-them.png b/gobooks/covers/100-go-mistakes-and-how-to-avoid-them.png similarity index 100% rename from covers/100-go-mistakes-and-how-to-avoid-them.png rename to gobooks/covers/100-go-mistakes-and-how-to-avoid-them.png diff --git a/covers/12-factor-applications-with-docker-and-go.jpg b/gobooks/covers/12-factor-applications-with-docker-and-go.jpg similarity index 100% rename from covers/12-factor-applications-with-docker-and-go.jpg rename to gobooks/covers/12-factor-applications-with-docker-and-go.jpg diff --git a/covers/a-go-developers-notebook.png b/gobooks/covers/a-go-developers-notebook.png similarity index 100% rename from covers/a-go-developers-notebook.png rename to gobooks/covers/a-go-developers-notebook.png diff --git a/covers/api-foundations-in-go.jpeg b/gobooks/covers/api-foundations-in-go.jpeg similarity index 100% rename from covers/api-foundations-in-go.jpeg rename to gobooks/covers/api-foundations-in-go.jpeg diff --git a/covers/beyond-effective-go.jpg b/gobooks/covers/beyond-effective-go.jpg similarity index 100% rename from covers/beyond-effective-go.jpg rename to gobooks/covers/beyond-effective-go.jpg diff --git a/covers/black-hat-go.jpg b/gobooks/covers/black-hat-go.jpg similarity index 100% rename from covers/black-hat-go.jpg rename to gobooks/covers/black-hat-go.jpg diff --git a/covers/build-an-orchestrator-in-go.png b/gobooks/covers/build-an-orchestrator-in-go.png similarity index 100% rename from covers/build-an-orchestrator-in-go.png rename to gobooks/covers/build-an-orchestrator-in-go.png diff --git a/covers/build-saas-apps-in-go.jpg b/gobooks/covers/build-saas-apps-in-go.jpg similarity index 100% rename from covers/build-saas-apps-in-go.jpg rename to gobooks/covers/build-saas-apps-in-go.jpg diff --git a/covers/build-systems-with-go.png b/gobooks/covers/build-systems-with-go.png similarity index 100% rename from covers/build-systems-with-go.png rename to gobooks/covers/build-systems-with-go.png diff --git a/covers/building-distributed-applications-in-gin.jpg b/gobooks/covers/building-distributed-applications-in-gin.jpg similarity index 100% rename from covers/building-distributed-applications-in-gin.jpg rename to gobooks/covers/building-distributed-applications-in-gin.jpg diff --git a/covers/cloud-native-go.jpg b/gobooks/covers/cloud-native-go.jpg similarity index 100% rename from covers/cloud-native-go.jpg rename to gobooks/covers/cloud-native-go.jpg diff --git a/covers/cover-514e0936.png b/gobooks/covers/cover-514e0936.png similarity index 100% rename from covers/cover-514e0936.png rename to gobooks/covers/cover-514e0936.png diff --git a/covers/creative-diy-microcontroller-projects-tinygo-webassembly.jpg b/gobooks/covers/creative-diy-microcontroller-projects-tinygo-webassembly.jpg similarity index 100% rename from covers/creative-diy-microcontroller-projects-tinygo-webassembly.jpg rename to gobooks/covers/creative-diy-microcontroller-projects-tinygo-webassembly.jpg diff --git a/covers/distributed-services-with-go.jpg b/gobooks/covers/distributed-services-with-go.jpg similarity index 100% rename from covers/distributed-services-with-go.jpg rename to gobooks/covers/distributed-services-with-go.jpg diff --git a/covers/domain-driven-design-with-golang.jpg b/gobooks/covers/domain-driven-design-with-golang.jpg similarity index 100% rename from covers/domain-driven-design-with-golang.jpg rename to gobooks/covers/domain-driven-design-with-golang.jpg diff --git a/covers/efficient-go.jpg b/gobooks/covers/efficient-go.jpg similarity index 100% rename from covers/efficient-go.jpg rename to gobooks/covers/efficient-go.jpg diff --git a/covers/event-driven-architecture-in-golang.jpg b/gobooks/covers/event-driven-architecture-in-golang.jpg similarity index 100% rename from covers/event-driven-architecture-in-golang.jpg rename to gobooks/covers/event-driven-architecture-in-golang.jpg diff --git a/covers/everyday-go.jpg b/gobooks/covers/everyday-go.jpg similarity index 100% rename from covers/everyday-go.jpg rename to gobooks/covers/everyday-go.jpg diff --git a/covers/explore-go-cryptography.png b/gobooks/covers/explore-go-cryptography.png similarity index 100% rename from covers/explore-go-cryptography.png rename to gobooks/covers/explore-go-cryptography.png diff --git a/covers/generative-art-in-go.jpg b/gobooks/covers/generative-art-in-go.jpg similarity index 100% rename from covers/generative-art-in-go.jpg rename to gobooks/covers/generative-art-in-go.jpg diff --git a/covers/get-programming-with-go.png b/gobooks/covers/get-programming-with-go.png similarity index 100% rename from covers/get-programming-with-go.png rename to gobooks/covers/get-programming-with-go.png diff --git a/covers/go-101.jpg b/gobooks/covers/go-101.jpg similarity index 100% rename from covers/go-101.jpg rename to gobooks/covers/go-101.jpg diff --git a/covers/go-at-scale.jpg b/gobooks/covers/go-at-scale.jpg similarity index 100% rename from covers/go-at-scale.jpg rename to gobooks/covers/go-at-scale.jpg diff --git a/covers/go-by-example.png b/gobooks/covers/go-by-example.png similarity index 100% rename from covers/go-by-example.png rename to gobooks/covers/go-by-example.png diff --git a/covers/go-faster.png b/gobooks/covers/go-faster.png similarity index 100% rename from covers/go-faster.png rename to gobooks/covers/go-faster.png diff --git a/covers/go-for-devops.jpg b/gobooks/covers/go-for-devops.jpg similarity index 100% rename from covers/go-for-devops.jpg rename to gobooks/covers/go-for-devops.jpg diff --git a/covers/go-for-javascript-developers.png b/gobooks/covers/go-for-javascript-developers.png similarity index 100% rename from covers/go-for-javascript-developers.png rename to gobooks/covers/go-for-javascript-developers.png diff --git a/covers/go-from-the-beginning.png b/gobooks/covers/go-from-the-beginning.png similarity index 100% rename from covers/go-from-the-beginning.png rename to gobooks/covers/go-from-the-beginning.png diff --git a/covers/go-programming-from-beginner-to-professional.jpg b/gobooks/covers/go-programming-from-beginner-to-professional.jpg similarity index 100% rename from covers/go-programming-from-beginner-to-professional.jpg rename to gobooks/covers/go-programming-from-beginner-to-professional.jpg diff --git a/covers/go-with-the-domain.jpg b/gobooks/covers/go-with-the-domain.jpg similarity index 100% rename from covers/go-with-the-domain.jpg rename to gobooks/covers/go-with-the-domain.jpg diff --git a/covers/gofarsi-book-cover.jpg b/gobooks/covers/gofarsi-book-cover.jpg similarity index 100% rename from covers/gofarsi-book-cover.jpg rename to gobooks/covers/gofarsi-book-cover.jpg diff --git a/covers/gopl.book.png b/gobooks/covers/gopl.book.png similarity index 100% rename from covers/gopl.book.png rename to gobooks/covers/gopl.book.png diff --git a/covers/grpc-go-for-professionals.jpg b/gobooks/covers/grpc-go-for-professionals.jpg similarity index 100% rename from covers/grpc-go-for-professionals.jpg rename to gobooks/covers/grpc-go-for-professionals.jpg diff --git a/covers/grpc-microservices-in-go.jpg b/gobooks/covers/grpc-microservices-in-go.jpg similarity index 100% rename from covers/grpc-microservices-in-go.jpg rename to gobooks/covers/grpc-microservices-in-go.jpg diff --git a/covers/hands-on-dependency-injection-in-go.jpg b/gobooks/covers/hands-on-dependency-injection-in-go.jpg similarity index 100% rename from covers/hands-on-dependency-injection-in-go.jpg rename to gobooks/covers/hands-on-dependency-injection-in-go.jpg diff --git a/covers/hands-on-software-engineering-with-golang.jpg b/gobooks/covers/hands-on-software-engineering-with-golang.jpg similarity index 100% rename from covers/hands-on-software-engineering-with-golang.jpg rename to gobooks/covers/hands-on-software-engineering-with-golang.jpg diff --git a/covers/head-first-go.jpg b/gobooks/covers/head-first-go.jpg similarity index 100% rename from covers/head-first-go.jpg rename to gobooks/covers/head-first-go.jpg diff --git a/covers/know-go-generics.png b/gobooks/covers/know-go-generics.png similarity index 100% rename from covers/know-go-generics.png rename to gobooks/covers/know-go-generics.png diff --git a/covers/learn-data-structures-and-algorithms-with-golang.jpg b/gobooks/covers/learn-data-structures-and-algorithms-with-golang.jpg similarity index 100% rename from covers/learn-data-structures-and-algorithms-with-golang.jpg rename to gobooks/covers/learn-data-structures-and-algorithms-with-golang.jpg diff --git a/covers/learn-go-with-pocket-sized-projects.jpg b/gobooks/covers/learn-go-with-pocket-sized-projects.jpg similarity index 100% rename from covers/learn-go-with-pocket-sized-projects.jpg rename to gobooks/covers/learn-go-with-pocket-sized-projects.jpg diff --git a/covers/learn-go-with-tests.png b/gobooks/covers/learn-go-with-tests.png similarity index 100% rename from covers/learn-go-with-tests.png rename to gobooks/covers/learn-go-with-tests.png diff --git a/covers/learning-go.jpg b/gobooks/covers/learning-go.jpg similarity index 100% rename from covers/learning-go.jpg rename to gobooks/covers/learning-go.jpg diff --git a/covers/learning-go.png b/gobooks/covers/learning-go.png similarity index 100% rename from covers/learning-go.png rename to gobooks/covers/learning-go.png diff --git a/covers/lets-go-further.png b/gobooks/covers/lets-go-further.png similarity index 100% rename from covers/lets-go-further.png rename to gobooks/covers/lets-go-further.png diff --git a/covers/lets-go.png b/gobooks/covers/lets-go.png similarity index 100% rename from covers/lets-go.png rename to gobooks/covers/lets-go.png diff --git a/covers/mastering-go-4th-edition.jpg b/gobooks/covers/mastering-go-4th-edition.jpg similarity index 100% rename from covers/mastering-go-4th-edition.jpg rename to gobooks/covers/mastering-go-4th-edition.jpg diff --git a/covers/microservices-with-go.jpg b/gobooks/covers/microservices-with-go.jpg similarity index 100% rename from covers/microservices-with-go.jpg rename to gobooks/covers/microservices-with-go.jpg diff --git a/covers/network-automation-with-go.jpg b/gobooks/covers/network-automation-with-go.jpg similarity index 100% rename from covers/network-automation-with-go.jpg rename to gobooks/covers/network-automation-with-go.jpg diff --git a/covers/network-programming-with-go.jpg b/gobooks/covers/network-programming-with-go.jpg similarity index 100% rename from covers/network-programming-with-go.jpg rename to gobooks/covers/network-programming-with-go.jpg diff --git a/covers/powerful-command-line-applications-in-go.jpg b/gobooks/covers/powerful-command-line-applications-in-go.jpg similarity index 100% rename from covers/powerful-command-line-applications-in-go.jpg rename to gobooks/covers/powerful-command-line-applications-in-go.jpg diff --git a/covers/practical-go-building-scalable-network.jpg b/gobooks/covers/practical-go-building-scalable-network.jpg similarity index 100% rename from covers/practical-go-building-scalable-network.jpg rename to gobooks/covers/practical-go-building-scalable-network.jpg diff --git a/covers/practical-go-lessons.png b/gobooks/covers/practical-go-lessons.png similarity index 100% rename from covers/practical-go-lessons.png rename to gobooks/covers/practical-go-lessons.png diff --git a/covers/pro-go.jpeg b/gobooks/covers/pro-go.jpeg similarity index 100% rename from covers/pro-go.jpeg rename to gobooks/covers/pro-go.jpeg diff --git a/covers/security-with-go.jpg b/gobooks/covers/security-with-go.jpg similarity index 100% rename from covers/security-with-go.jpg rename to gobooks/covers/security-with-go.jpg diff --git a/covers/spaceship-go.svg b/gobooks/covers/spaceship-go.svg similarity index 100% rename from covers/spaceship-go.svg rename to gobooks/covers/spaceship-go.svg diff --git a/covers/the-go-workshop.avif b/gobooks/covers/the-go-workshop.avif similarity index 100% rename from covers/the-go-workshop.avif rename to gobooks/covers/the-go-workshop.avif diff --git a/covers/the-love-of-go.webp b/gobooks/covers/the-love-of-go.webp similarity index 100% rename from covers/the-love-of-go.webp rename to gobooks/covers/the-love-of-go.webp diff --git a/covers/the-power-of-go-tests.png b/gobooks/covers/the-power-of-go-tests.png similarity index 100% rename from covers/the-power-of-go-tests.png rename to gobooks/covers/the-power-of-go-tests.png diff --git a/covers/the-power-of-go-tools.png b/gobooks/covers/the-power-of-go-tools.png similarity index 100% rename from covers/the-power-of-go-tools.png rename to gobooks/covers/the-power-of-go-tools.png diff --git a/covers/ultimate-go-notebook.jpg b/gobooks/covers/ultimate-go-notebook.jpg similarity index 100% rename from covers/ultimate-go-notebook.jpg rename to gobooks/covers/ultimate-go-notebook.jpg diff --git a/covers/wasm-cooking-with-golang.jpg b/gobooks/covers/wasm-cooking-with-golang.jpg similarity index 100% rename from covers/wasm-cooking-with-golang.jpg rename to gobooks/covers/wasm-cooking-with-golang.jpg diff --git a/covers/webapps-in-go-the-anti-textbook.jpg b/gobooks/covers/webapps-in-go-the-anti-textbook.jpg similarity index 100% rename from covers/webapps-in-go-the-anti-textbook.jpg rename to gobooks/covers/webapps-in-go-the-anti-textbook.jpg diff --git a/covers/writing-a-compiler-in-go.jpg b/gobooks/covers/writing-a-compiler-in-go.jpg similarity index 100% rename from covers/writing-a-compiler-in-go.jpg rename to gobooks/covers/writing-a-compiler-in-go.jpg diff --git a/covers/writing-an-interpreter-in-go.png b/gobooks/covers/writing-an-interpreter-in-go.png similarity index 100% rename from covers/writing-an-interpreter-in-go.png rename to gobooks/covers/writing-an-interpreter-in-go.png diff --git a/validator/go.mod b/gobooks/validator/go.mod similarity index 100% rename from validator/go.mod rename to gobooks/validator/go.mod diff --git a/validator/main.go b/gobooks/validator/main.go similarity index 96% rename from validator/main.go rename to gobooks/validator/main.go index 8912062..f23a411 100644 --- a/validator/main.go +++ b/gobooks/validator/main.go @@ -4,7 +4,7 @@ // book metadata (*Last published*, *Authors*), cover images exist, covers linked. // // Usage: go run . [path/to/README.md] -// go run . # uses README.md in parent dir (../README.md) +// go run . # uses README.md at repo root (../../README.md) package main import ( @@ -16,7 +16,7 @@ import ( ) func main() { - readmePath := filepath.Join("..", "README.md") + readmePath := filepath.Join("..", "..", "README.md") if len(os.Args) > 1 { readmePath = os.Args[1] } @@ -236,14 +236,14 @@ func extractBookBlocks(lines []string) map[string]string { func extractCoverRefs(lines []string) []string { var refs []string - r := regexp.MustCompile(`src="(covers/[^"]+)"`) + r := regexp.MustCompile(`src="(gobooks/covers/[^"]+)"`) for _, line := range lines { if match := r.FindStringSubmatch(line); match != nil { refs = append(refs, match[1]) } } - // Also check cover/ path - r2 := regexp.MustCompile(`src="(cover/[^"]+)"`) + // Also check gobooks/cover/ path (typo) + r2 := regexp.MustCompile(`src="(gobooks/cover/[^"]+)"`) for _, line := range lines { if match := r2.FindStringSubmatch(line); match != nil { refs = append(refs, match[1]) @@ -254,7 +254,7 @@ func extractCoverRefs(lines []string) []string { func findUnlinkedCovers(lines []string) []string { var unlinked []string - r := regexp.MustCompile(` or markdown link [](url) if (strings.Contains(line, "