How to Learn Go
May 2022 - Alex Alejandre

First Steps

  • For new programmers:
    Alex Edwards' Let's Go and Let's Go Further teach core patterns, project structure and API development. They're the best introduction for a new programmer.

  • For experienced programmers:

What’s next?

  • Cloud Native Go - Titmus
  • 100 Go Mistakes
  • Style guides by Uber and Google
  • Writing an Interpreter in Go & Writing a Compiler in Go - Thorsten Ball

Make a server, but not some demo thing, go all the way.

  • unit, integration, e2e tests
  • Database
  • Integrate with an OAuth provider and use access controls
  • Make it horizontally scalable
  • Dockerize it and run the service in the cloud
  • Secure it with SSL
  • Make it auditable and monitorable
  • Get a build infrastructure and a release process for it

In other words, just do the stuff you’d be doing if you were working with it professionally.

Advanced

Also Useful:

Difficult to Recommend:

  • Go Design Patterns - Mario Castro Contreras: The community balks at “designs patterns” as bandaids over missing features in languages like Java. Go of course has its own patterns, but the community hasn’t yet categorized them explicitly. Creational ones like factory, builder, constructor etc. are common. This best works as a catelogue of antipatterns.
  • Functional Programming in Go - Dylan Meeus: Though Go is not functional, many insights do apply. You need enough experience and judgement to identify and avoid antipatterns.