My Recommended Go Resources

I was recently asked by a collegue at work if there are any resource I recommend with getting familiar with Go. It turned into quite a list so I thought i'd share it with everyone (and hopefully keep updating it) in the hopes that others will find it useful.

📚 Books

My favourite book for learning Go is - ✨ The Go Programming Language ✨ by Alan A. A. Donovan & Brian W. Kernighan. This was the book I used to pick Go up in the first place. If you already have previous programming experience it's quite a nice book to first read about the specifics of the go language then flip through as needed to the various topics (such as Goroutines) that you might not know about.

Some 🆓 books I've seen recommended:

I've also got the following books but haven't yet had a chance to read any of them so can't comment on their usefulness just yet:

There's also Everyday Golang by Alex Ellis which I haven't had a chance to pick up yet but if it's anything like Alex's other writing it'll be a great resource!

🧰 Tools and Libraries

In terms of useful resources, tools and libraries I use a lot:

  • The Go Playground is a fantastic tool for learning and experimenting.
  • Fiber - My favourite web server framework. Very similar to the Express framework available for NodeJS.
  • Viper - Config management (env vars, config files, cli flags).
  • Cobra - Framework for building amazing CLI tools.
  • Afero - Filesystem framework (very useful for tests).
  • ZeroLog - Very useful logging framework. Support log levels, metadata attributes and different log output styles.
  • GORM - ORM database library with official support for MySQL, PostgreSQL, SQLite and SQL Server.

🔗 Websites / Blog Posts

🧑‍💻 Suggested by others

If anyone has any other resources they recommend I'd love to hear about them and update this list. Please feel free to reach out to me on Twitter at @Marcus_Noble_.