Below a living list of compiled links for whoever is learning Go.
Official docs
- Effective Go - https://go.dev/doc/effective_go
- A document that gives tips for writing clear, idiomatic Go code. A must-read for any new Go programmer. It augments the tour and the language specification, both of which should be read first.
-
Go Code Review Comments https://github.com/golang/go/wiki/CodeReviewComment
- This page collects common comments made during reviews of Go code, so that a single detailed explanation can be referred to by shorthands. This is a laundry list of common mistakes, not a comprehensive style guide. You can view this as a supplement to Effective Go.
- Go Docs - https://go.dev/doc/
- Root for many useful documentations
- FAQ - https://go.dev/doc/faq
- Answers to common questions about Go.
Blogs
- Dave Cheney - https://dave.cheney.net/
- Specially the practical go section, it has TONS of good advice and real-world examples of how to deal with daily challenges. I highly recommend it.
Courses
-
The way to go - https://www.educative.io/courses/the-way-to-go
- Itโs a course from educative.io, it goes from the basics concepts of the language to more advanced ones. It also brings very interesting insights into the differences between the approaches of Java/C# to Go..
-
How to code in go - https://www.digitalocean.com/community/tutorial_series/how-to-code-in-go
- A great collection of tutorials that cover basic Go concepts, ideal for beginers
Videos
- Go in 100 seconds - https://www.youtube.com/watch?v=446E-r0rXHI&t=38s
- Short introduction about Go
- Simplicity is complicated - https://www.youtube.com/watch?v=rFejpH_tAHM
- Rob Pike talks about how Go is often described as a simple language. It is not, it just seems that way. Rob explains how Goโs simplicity hides a great deal of complexity, and that both the simplicity and complexity are part of the design.
- Concurrency is not parallelism - https://www.youtube.com/watch?v=qmg1CF3gZQ0&t=1582s
- Rob Pike talks about concurrency and how Go implements it
- Understanding channels - https://www.youtube.com/watch?v=KBZlN0izeiY&t=1011s
- Channels provide a simple mechanism for goroutines to communicate, and a powerful construct to build sophisticated concurrency patterns. We will delve into the inner workings of channels and channel operations, including how theyโre supported by the runtime scheduler and memory
- Concurrency in Go - https://www.youtube.com/watch?v=\_uQgGS_VIXM&list=PLsc-VaxfZl4do3Etp_xQ0aQBoC-x5BIgJ
- Playlist with a few short videos about different components of concurrency in Go
- Just for func - https://www.youtube.com/watch?v=H_4eRD8aegk&list=PL64wiCrrxh4Jisi7OcCJIUpguV_f5jGnZ
- A very complete playlist of tutorials given by Francesc Campoy, a past Developer Advocate for the Go team at Google, that cover simple to advanced topics in Go
- Golang crash course - https://www.youtube.com/watch?v=SqrbIlUwR0U
- A 90 minutes video that covers most of Go features with cristal clear live coding examples, excelent for beginers to get a fast gist of Go
Podcasts
- Go Time - Spotify
- Diverse discussions from around the Go and its community