I’ve been diving into Go for a few weeks, and I am constantly amazed by its simplicity. As an experienced Java developer, I appreciate its concise and to-the-point syntax.

Go covers a wide range of functionality, from HTTP servers and network programming to cryptography.

I have adopted Go as my primary language for most of my side projects. I have invested time in reading a significant amount of documentation to quickly become familiar with the Go ecosystem.

Today, I want to share some of it.

Whether you’re a beginner or an experienced developer looking to expand your skills, the following resources will help you get started with Go.

Official documentation

Check out the official resources provided by Google.

In addition, be sure to read Effective Go, which provides in-depth explanations of Go’s conventions and idioms.

Books

If you prefer learning through reading, there are several great books on Go. I highly recommend Learning Go by Jon Bodner, which offers a comprehensive introduction to Go programming with practical examples.

Another useful resource is the Golang Book.

Blogs

Stay up-to-date with the latest trends and best practices in Go programming by following those blogs:

Hands-on training

For a more hands-on approach, you can explore some examples at https://gobyexample.com/.

Online courses can also be a good option:

Applied Go
Jetbrains
Calhoun
Educative.io

Alternatively, you can watch those tutorials on YouTube:

And an interesting YouTube channel to follow: GopherAcademy.

Style

The Google Go’s Style guide is an amazing resource to read, and you will know how Go programmers at Google work.

Furthermore, you can read this interesting post about building an application with a clean architecture.

Essential libraries

  • Testify: a robust and flexible testing library for Go
  • Mockery: a tool for generating mock objects in Go
  • Gin: a high-performance HTTP framework for Go
  • Go Faker: a data faker generator for struct

I also like to work with this BDD-style testing library.

IDEs

I hope this helps you on your Go journey. Stay tuned :)