New to Golang? These are the first 3 resources you'd read as a new member of my team
I write high quality production Go every week, and I love it.
While I've worked across many languages, Go is definitely my go-to over the last half decade or so. When someone joins one of my teams, it is one of the two tech stacks they're looking to work with.
Even if they aren't new to Go, these are the three resources I start them with:
Learn the style guide with: Effective Go
A good style guide introduces the idioms of the language while minimizing questions around naming, code organization, and in-code patterns. Effective Go is one of the best I've ever seen. Everything from package naming to core tenants of concurrency are covered. A must read to learn to write like a native.
Learn the philosophy with: Go Proverbs
Understanding the philosophy and core principles of a language will make you a better practitioner. Why not learn straight from the mouth of one of the creators? These tidbits permeate many decisions made in good Go codebases, take the time to internalize them.
Have a deeper resource to answer questions, starting with testing: Table Driven Tests
Being able to explore additional topics on your own is vital to quickly coming up to speed. Go's Wiki is a wealth of information, and starting with an important testing topic will pay off during your first PR. As general questions come up, check here first to see if it is answered before reaching out to the rest of your team.
These 3 resources will set you on the right path from the very first step.
Links
- https://go.dev/doc/effective_go
- https://go-proverbs.github.io/
- https://github.com/golang/go/wiki/TableDrivenTests
This Day 11 #ship30for30 #atomicEssay was shipped with this twitter thread:
Day 11 of #ship30for30 (missed scheduling it yesterday, whoops!)
— bkono ? (@bkono101010) October 26, 2022
... New to Golang? Not sure how to start? Every newbie to my team begins with these 3 resources ? pic.twitter.com/KRGMedoTi1
Thanks for reading. If you enjoyed the article subscribe via RSS feed or enter your email in the box below 👇