-
Notifications
You must be signed in to change notification settings - Fork 4
Description
We did what we always do when there’s a problem without a clear solution: we waited.
Waiting gives us more time to add experience and understanding of the problem and also more time to find a good solution. - Russ Cox
Learn the philosophy, earn the language.
- How to Think in Go ("Go Programming") (the original 2010 talk)
- Effective Go (short, 55 page book)
- Go by Example (for all your copy pasta needs)
- Introduction to Go Generics
Go Proverbs: Talk | Printable Poster | Website
Install Go
Uses the official Go tar package from golang.org, but also sets GOBIN, and doesn't change any system directories or permissions. TL;DR: Better than brew
or the hacky pkg
.
Cheat Sheets & Books
- Go by Example: https://gobyexample.com/
- YourBasic Go: https://yourbasic.org/golang/
- Tour of Go: https://tour.golang.org/
- Learn Go with Tests: https://github.com/quii/learn-go-with-tests
- Effective Go: https://go.dev/doc/effective_go
Selected Articles & Talks
How to Think in Go ("Go Programming"): https://www.youtube.com/watch?v=jgVhBThJdXc
(the original 2010 talk)
- The Go Book ("Effective Go"): https://golang.org/doc/effective_go
go mod
("Go with Versions"): https://youtu.be/F8nrpe0XWRg"Engineering is Programming across Time and Teams"
- Go Proverbs: Talk | Printable Poster | Website
- Things in Go I never Use: https://www.youtube.com/watch?v=5DVV36uqQ4E
- Practical Go Programming: https://www.youtube.com/watch?v=2-pPAvqyluI
- How I write Web Services after 8 years of Go: https://www.youtube.com/watch?v=rWBSMsLG8po
- Go Workshop with Dave Cheney: https://www.youtube.com/watch?v=gi7t6Pl9rxE
- More than you ever wanted to know about errors: https://www.youtube.com/watch?v=H1gwKI2V7YA
Selected Articles:
- Toward Go 2 (great talk on engineering in general): https://blog.golang.org/toward-go2
Google I/O
- Google I/O 2014 talks: https://go.dev/blog/io2014
- Google I/O 2013 talks: https://go.dev/blog/io2013-chat
- Google I/O 2012 talks: https://go.dev/blog/io2012-videos
- Google I/O 2011 talks: https://go.dev/blog/io2011
- Google I/O 2010 talks: https://go.dev/blog/io2010
More on Software Engineering
Rob Pike Talks
Title | Venue | Link |
---|---|---|
Go Programming (2011) | Google I/O | https://www.youtube.com/watch?v=jgVhBThJdXc |
Concurrency is not Parallelism (2015) | Heroku | https://www.youtube.com/watch?v=oV9rvDllKEg |
Simplicity is Complicated (2015) | dotGo | https://www.youtube.com/watch?v=rFejpH_tAHM |
And if you're going to write a [JavaScript] program, you wouldn't start with a C++ [or Rust] program and translate it line-by-line and expect to end up with a very well-written [JavaScript] program.
And concepts and the idiom in those languages are different enough that you just end up with a badly-written, non-idiomatic [JavaScript] program.
And the same is true of Go and other languages. If you start with the concepts and idioms from C++ or [Rust] or Python and you try to translate those line-by-line into [JavaScript], you'll just be frustrated with the experience. - Russ Cox, Go Programming, Google I/O
Really Good Extras
- Fyne (Cross-Device Toolkit): https://fyne.io
- GoReleaser (Cross-Platform Release Publisher): https://webinstall.dev/goreleaser
- vim-essentials: https://webinstall.dev/vim-essentials
- vim-go: https://webinstall.dev/vim-go
- Versioning your tools.go: https://stackoverflow.com/a/60383471/151312