From fb419d0bea6bf3b9727bfe9df80d5e91516acd9f Mon Sep 17 00:00:00 2001 From: AverageMarcus Date: Thu, 2 Sep 2021 14:13:37 +0000 Subject: [PATCH] Added Go resources post --- .../2021-09-02-my-recommended-go-resources.md | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/posts/2021-09-02-my-recommended-go-resources.md diff --git a/src/posts/2021-09-02-my-recommended-go-resources.md b/src/posts/2021-09-02-my-recommended-go-resources.md new file mode 100644 index 0000000..15319fc --- /dev/null +++ b/src/posts/2021-09-02-my-recommended-go-resources.md @@ -0,0 +1,57 @@ +--- +layout: post.html +title: "My Recommended Go Resources" +date: 2021-09-02 +tags: Go Golang +summary: "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." +--- + +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](https://www.gopl.io/)** ✨ 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: + +* **[Go With The Domain](https://threedots.tech/go-with-the-domain/)** by [Three Dots Labs](https://threedots.tech/) +* **[Go Design Patterns](https://www.packtpub.com/product/go-design-patterns/9781786466204)** by Mario Castro Contreras (Free with trial) + +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_: + +* **[Let's Go](https://lets-go.alexedwards.net/)** by Alex Edwards +* **[Let's Go Further](https://lets-go-further.alexedwards.net/)** by Alex Edwards +* **[Ultimate Go Notebook](https://education.ardanlabs.com/courses/ultimate-go-notebook)** by [Ardan Labs](https://education.ardanlabs.com/) + +There's also **[Everyday Golang](https://openfaas.gumroad.com/l/everyday-golang)** by [Alex Ellis](https://www.alexellis.io/) 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](https://play.golang.org/) is a fantastic tool for learning and experimenting. +* [Fiber](https://gofiber.io/) - My favourite web server framework. Very similar to the Express framework available for NodeJS. +* [Viper](https://github.com/spf13/viper) - Config management (env vars, config files, cli flags). +* [Cobra](https://github.com/spf13/cobra) - Framework for building amazing CLI tools. +* [Afero](https://github.com/spf13/afero) - Filesystem framework (very useful for tests). +* [ZeroLog](https://github.com/rs/zerolog) - Very useful logging framework. Support log levels, metadata attributes and different log output styles. +* [GORM](https://gorm.io/) - ORM database library with official support for MySQL, PostgreSQL, SQLite and SQL Server. + +## 🔗 Websites / Blog Posts + +* [Awesome Go](https://awesome-go.com/) - List of all things Go. +* [Embedding Static Files in Golang](https://bhupesh-v.github.io/embedding-static-files-in-golang/) - Embedding static files into a Go binary. +* [Go Recipes](https://github.com/nikolaydubina/go-recipes) - a collection of handy Go commands you can run to help with things like module updates. +* [Multi-arch Dockerfile](https://gist.github.com/AverageMarcus/78fbcf45e72e09d9d5e75924f0db4573) - Example multi-stage Dockerfile for building tiny, multi-arch container images for Go applications. +* [Go Weekly Newsletter](https://golangweekly.com/) - A fantastic weekly newsletter on all things Go (RSS feed also available). +* [Writing Unit Tests](https://blog.alexellis.io/golang-writing-unit-tests/) - Writing Go unit tests. + +## 🧑‍💻 Suggested by others + +* https://github.com/quii/learn-go-with-tests - Learn Go with TDD. +* https://gobyexample.com/ - Common program examples. +* https://changelog.com/gotime - Good podcast on the Go community. + +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_](https://twitter.com/Marcus_Noble_). \ No newline at end of file