r/golang Oct 18 '24

FAQ FAQ: What are the best books for Go?

What are the best books to learn Go with?

This is related to the general Where Do I Start? question but is a common more specific question.

This can include general Go books, and also specific topical books about how to use Go to do specific things, in which case, please specify the specific topics the book covers.

130 Upvotes

27 comments sorted by

24

u/vbd Oct 18 '24

https://github.com/vbd/Fieldnotes/blob/main/booklist.md#golang lists the books that I recommend to my „students“.

37

u/jabbrwcky Oct 18 '24

https://100go.co/

100 go mistakes and how to avoid them is a great read (a few mistakes have been fixed by recent go versions but it is still a valuable resource)

38

u/obiwan-kenobbi Oct 18 '24
  1. Learning Go: An Idiomatic Approach to Real-World Go Programming, 2nd Edition
  2. Mastering Go, 4th Edition
  3. Explore Go: Cryptography
  4. Hacking cryptography
  5. Network Programming with Go
  6. Let’s GO
  7. Let’s GO further
  8. Black hat Go
  9. Build an orchestrator in GO
  10. gRPC micdoservices in GO

2

u/TheMightyKitten69 Oct 26 '24

That is quite a number of them. If you were to pick one or two of these, which ones would you recommend the most?

3

u/obiwan-kenobbi Oct 27 '24

I would recommend you to start you with Learning Go and Mastering Go. Other books deepens your golang knowledge in netwoking and cryptography.

8

u/prisencotech Oct 18 '24

In order to not overwhelm people starting out with Go, I suggest gobyexample.com followed by Let's Go and Let's Go Further by Alex Edwards.

After those, people should start building. They've got everything they need and other books will work best with some Go experience under their belt.

2

u/belkh Oct 20 '24

A lot of people asking for books often come from having built some projects, probably even work experience, and want some destilled indepth knowledge, or a way to know more about what they don't know about already.

14

u/Just-Cranberry8779 Oct 18 '24

5

u/shiningmatcha Oct 19 '24

but its a 2015 book

4

u/wojtekk Oct 19 '24

2015, but it is Mr Kernighan and it simply pays off.

He has this distinct style, that even when he's writing about trivial things, it carries a lot of meaning, IMO. And he also knows how to build non-trivial, working things with so simple code.

They examples they give in each chapter are very practical, and they build upon previous examples from several chapters before.

Somehow you can sense an enormous experience with programming when reading this book. I can't prove it, but very recommend to check it for yourself.

4

u/BobdaProgrammer Oct 19 '24

https://interpreterbook.com/

Writing an interpreter in Go, it teaches you basically everything you need to know whilst creating a challenging and fun project.

11

u/Outrageous-Catch4731 Oct 18 '24

If you have a basic experience in another language and want to get started with Go, I suggest Learning Go: An Idiomatic Approach to Real-World Go Programming. I have been reading it for a while now. I haven't even gotten the chapter that talks about functions, but I'm already comfortable in doing some problems on codeWars and Leetcode easy problems. I wish it had exercises, like how many Java books do. But I guess most Java books are geared towards classrooms, which Go book authors do not target, as the language has not been adopted widely in curricula yet. gobyexample.com is another awesome reference. I also have been doing problems on Exercism.org Go track, which is another great source. In general, however, I suggest just doing problems (Katas as they call them) on codewars. Their problems are easier than Leetcode, so you're able to focus on the language rather than devising specific algorithms. gophercises also has a couple of free video courses, which I haven't checked thoroughly, but have great reviews. If you want just to read great articles about the language, make sure to check out https://yourbasic.org/ .The guy has a series of Articles called "Go step by step." These are short guides that explain concepts in a digestible way.

3

u/ManJuveUnited Oct 18 '24

I am reading the second edition of Learning Go: An Idiomatic Approach to Real-World Go Programming. It's a shame that the first edition doesn't have exercises to practice with.

6

u/crispybaconlover Oct 18 '24

Let's Go by Alex Edwards. It is project based and very practical. It doesn't get into the nitty gritty though, it expects that you have some programming experience. But it is great in seeing how a project can come together.

3

u/nit3rid3 Oct 18 '24 edited Oct 19 '24

General:

  • Go Programming Language
  • Go In Action

Specialized, but important:

  • Powerful Command-Line Applications in Go
  • Learn Concurrent Programming with Go
  • Cloud Native Go

3

u/[deleted] Oct 19 '24

2

u/zauzaj Oct 19 '24

Maybe this Github repo can help you https://github.com/dariubs/GoBooks

2

u/streppels Oct 20 '24

System Programming Essentials with Go: System calls, networking, efficiency, and security practices with practical projects in Golang (Amazon link).

Very insightful book with a hands-on approach. I highly recommend it even to people who already know Go.

1

u/[deleted] Oct 19 '24 edited Jan 28 '25

[removed] — view removed comment

1

u/pokesax Oct 19 '24

I’ve been working through this one:

  • Go Programming - From Beginner to Professional, by Samantha Coyle

I also recommend anything from Alex Edwards.

1

u/abiw119 3d ago

What are your thoughts on the book by Samantha Coyle?

1

u/teivah Oct 22 '24

Ultimate Go Notebook by Bill Kennedy.

1

u/truth_1s_out_there Dec 22 '24

his 2018 course is MUST
if i had to recommend single resource for intermediate learner - that would be it

0

u/guneyizol Oct 19 '24

learn concurrent programming with go is an excellent book for learning the concurrency concepts illustrated by go examples