### Context This is for programmers who want to ramp on Go, without resources that reiterate programming fundamentals. This would not be a good list of resources for folks who are learning to program using Go as their first language. Some resources that I dismiss here would be super valuable for newer folks. This is a selection of resources for those who understand programming fundamentals in a different language already. ### Advice 1. First steps = [Tour of Go](https://tour.golang.org/welcome/1) 1. Don't waste time on Go Fundamentals-type books - it all lives in tour of Go. 1. Consider joining the [Gophers Slack](https://invite.slack.golangbridge.org/) 1. When you need help, the [Go Playground](https://play.golang.org/) allows you make a quick scratch file and _share_ it. Others trying to help can run your code easily this way. ### Books 1. [Go in Practice: Includes 70 Techniques](https://www.amazon.com/Go-Practice-Techniques-Matt-Butcher/dp/1633430073) 1. [Concurrency in Go](https://www.amazon.com/Concurrency-Go-Tools-Techniques-Developers/dp/1491941197) ### Quick Resources 1. [Go By Example](https://gobyexample.com/) 1. [A Tour of Go](https://research.swtch.com/gotour) 1. [Organizing Go Code](https://talks.golang.org/2014/organizeio.slide#1) 1. [Effective Go](https://golang.org/doc/effective_go.html) ### Docs 1. [Is this part of stdlib?](https://pkg.go.dev/std) - [Packages](https://pkg.go.dev/) 1. [Go Wiki](https://github.com/golang/go/wiki) 1. [How to: go mod](https://go.dev/doc/modules/gomod-ref) ### Niche Nerd Things 1. [Quick Overview of GoRoutines with "A Complete journey with goroutines"](https://medium.com/@riteeksrivastava/a-complete-journey-with-goroutines-8472630c7f5c) 1. [Article on the scheduler](https://povilasv.me/go-scheduler) 1. [Analysis of Go runtime scheduler (white paper)](http://www.cs.columbia.edu/~aho/cs6998/reports/12-12-11_DeshpandeSponslerWeiss_GO.pdf) 1. [Garbage Collection in Go](https://www.ardanlabs.com/blog/2018/12/garbage-collection-in-go-part1-semantics.html) 1. [Memory optimization on structs](https://golangprojectstructure.com/how-to-make-go-structs-more-efficient/) ### Go Gotchas (re: absolute nonsense) #### Slices - Appending to slices [does not behave like one would expect](https://medium.com/@Jarema./golang-slice-append-gotcha-e9020ff37374) - Make sure anonymous goroutines run with the intended inputs: [A Goroutines Gotcha](https://medium.com/swlh/a-goroutines-gotcha-7d7441c7758f)