Written by
B W
on
on
Go Resources
I was recently clued into Go being:
- a really useful language to learn
- theoretically easy to
Not missing a chance to learn, I have been diving in. This post is a history of my travels, so other travelers might benefit.
I don’t know what your ideal way of learning a new programming language is, but for me it’s a mix of working on problems, seeing good patterns, and hearing some of the underlying theory for why the language is the way it is. To that end, I have been using:
Book + Offical Stuff
- The Go Programming Language - A book, 79% 5-star and 14% 4-star on Amazon as of writing. If stuck, see solutions.
- Effective Go - “How to write clear, idiomatic code”
- Go Spec
- How To Write Go Code
- Go Blog
Exercises
- Exercism - A reliable source of problems and answers for many languages, including Go.
Walkthroughs/Tours
- A Tour Of Go - The official tour of Go. A walkthrough of the features with a few problems thrown in. If you need them, see the solutions.
- Go By Example - “Go by Example is a hands-on introduction to Go using annotated example programs”
Juxtapositions
- Go Vs Python - How to do Python things in Go. Super useful for someone like me with questions like “But can I slice?”
- Python Idioms In Go - More how to do Python things in Go.
Why is Go like that?
- The Why Of Go - An excellent video on the context Go sits in, and why it is the way it is.
- Go For The Long Game - Carmen Andoh on ergonomics/aesthetics of Go.
- Concurrency Is Not Parallelism - Rob Pike, one of the creators of Go, talking about core philosophy of Go.
Concurrency Patterns
- Go Concurrency Patterns - Rob Pike on patterns of concurrency in Go.
- Advanced Go Concurrency Patterns - Sameer Ajmani giving an advanced talk on concurrency in Go.
- Concurrency Patterns In Go - Another talk on concurrency patterns