66 lines
4.7 KiB
Markdown
66 lines
4.7 KiB
Markdown
# 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.
|
||
|
||
# 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/)
|
||
|
||
|
||
# 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://github.com/golang/go/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)
|
||
|
||
# Tools
|
||
* [JSON-to-Go](https://mholt.github.io/json-to-go/) - This tool will convert a piece of JSON to a Go struct
|