# Starting off
1. [A Tour of Go](https://tour.golang.org/welcome/1): This is an interactive guide to learning some of the basics.  You can code right in the web browser and see it work.
2. [The Go Playground](https://play.golang.com/): This is what’s used in A Tour of Go to code in the browser.  In addition to coding in the browser, you can share the code.  This is good for a couple things:
    a. Testing how something in the language works.
    b. Sharing code.  This is the standard for passing along snippets of code.  If you have any questions, create an example and then ask your question based on that.
3. [Effective Go](https://golang.org/doc/effective_go.html): I recommend this as your first read.  It covers everything you need to know to start writing useful programs.
4. [The Go Programming Language (Book)](http://www.gopl.io/): This covers almost all of the language.  If you are still interested after Effective Go and playing around with some code in the Playground, give this a read.
5. [GoogleTechTalks - The Go Programming Language (YouTube)](https://www.youtube.com/watch?v=rKnDgT73v8s): The video is old, but almost all the information in there is still accurate and useful.
6. [Install Go](https://golang.org/doc/install): This has instructions for all Operating Systems that Go supports to install and use Go.
7. [Use an IDE(Integrated Development Environment)](https://golang.org/doc/editors.html): You can write programs using Notepad if you want to, but as your programs get bigger, you’ll want to use an IDE.  I recommend [GoLand](https://www.jetbrains.com/go/).  I’ve been using it for several years and I’ve found it to be the most productive.

# Keeping up
* [Go Blog](https://blog.golang.org/): The articles are not frequent, but are high quality.
* [Twitter](https://twitter.com/golang): The account tweets when there are new blog posts and other important info.
* [GoLang Weekly Mailing List](https://golangweekly.com/): They do most of the work for you on keeping up on the language.
* [Go Updates per Release](https://antonz.org/which-go/)

# Twitter
* [Rob Pike](https://twitter.com/rob_pike)
* [Dave Cheney](https://twitter.com/davecheney)
* [GopherCon](https://twitter.com/GopherCon)
* [Golang Weekly](https://twitter.com/golangweekly)

# Mailing Lists
* [Golang Weekly](https://golangweekly.com/)
* [Lib Hunt](https://go.libhunt.com/newsletter?f=es-top-d)

# Reddit
* [Golang](https://www.reddit.com/r/golang/)

# Projects to Follow
* [dGraph](https://github.com/dgraph-io/badger)
* [Kubernetes](https://kubernetes.io/)
* [CockroachDB](https://www.cockroachlabs.com/)
* [Gio](https://gioui.org/)
* [Fyne](https://fyne.io/)


# YouTube
* [The Go Programming Language](https://www.youtube.com/channel/UCO3LEtymiLrgvpb59cNsb8A)
* [Gopher Academy](https://www.youtube.com/channel/UCx9QVEApa5BKLw9r8cnOFEA)
* [Russ Cox](https://www.youtube.com/watch?v=ytEkHepK08c)
* [Brad Fitzpatrick](https://www.youtube.com/watch?v=rWJHbh6qO_Y)
* [GoogleTechTalks - The Go Programming Language](https://www.youtube.com/watch?v=rKnDgT73v8s)
* [Rob Pike - Simplicity is Complicated](https://www.youtube.com/watch?v=rFejpH_tAHM)
* [Rob Pike - 'Concurrency Is Not Parallelism'](https://www.youtube.com/watch?v=cN_DpYBzKso)
* [Rob Pike - Go Concurrency Patterns](https://www.youtube.com/watch?v=f6kdp27TYZs)
* [Rob Pike - Go Proverbs](https://www.youtube.com/watch?v=PAAkCSZUG1c)
* [Rob Pike - The Design of the Go Assembler](https://www.youtube.com/watch?v=KINIAgRpkDA)
* [Keith Randall - Inside the Map Implementation](https://www.youtube.com/watch?v=Tl7mi9QmLns)
* [Eben Freeman - Allocator Wrestling](https://www.youtube.com/watch?v=M0HER1G5BRw)
* [Bryan C. Mills - Rethinking Classical Concurrency Patterns](https://www.youtube.com/watch?v=5zXAHh5tJqQ)
* [Going Infinite, handling 1 millions websockets connections in Go / Eran Yanay](https://www.youtube.com/watch?v=LI1YTFMi8W4)

# Misc
* [Concurrency Visualization](http://divan.github.io/posts/go_concurrency_visualize/)
* [Go vs Nginx TLS Termination](https://blog.gopheracademy.com/advent-2016/tls-termination-bench/)
* [Practical Go by Dave Cheney](https://dave.cheney.net/practical-go/presentations/qcon-china.html)
* [Less is exponentially more](https://commandcenter.blogspot.com/2012/06/less-is-exponentially-more.html)
* [Getting to Go: The Journey of Go's Garbage Collector](https://blog.golang.org/ismmkeynote)
* [Communicating Sequential Processes](./Communicating%20Sequential%20Processes.pdf)
* [Code Review Comments](https://go.dev/wiki/CodeReviewComments)
* [Organizing Database Access](https://www.alexedwards.net/blog/organising-database-access)
* [What's in a Name](https://talks.golang.org/2014/names.slide#1)
* [When in Go, Do as Gophers Do](https://talks.golang.org/2014/readability.slide#1)
* [Go Concurrency Rocks](https://www.concurrency.rocks/)
* [func25/go-practical-tips](https://github.com/func25/go-practical-tips/blob/main/tips.md)

# Tools
* [JSON-to-Go](https://mholt.github.io/json-to-go/) - This tool will convert a piece of JSON to a Go struct.  This [functionality](https://www.jetbrains.com/help/go/working-with-json.html#generate-struct-fields) is a feauture in the GoLand IDE.

# Find Libraries
* [LibHunt](https://go.libhunt.com/)

