One of the most common questions asked is "what's the best way to learn Go?" - Well, this page outlines one potential path forward, starting from the basics, and building your proficiency up slowly.
A strong start can make or break your language learning path. It's important to pace yourself and make your learning habit sustainable.
In this section, take the time you need to become familiar with the syntax and keep asking the question "how does this really work?".
A strong fundamental knowledge of the syntax and some of the hidden foot-guns can really help to accelerate your learning further down the line.
The complete Go course designed to teach you the fundamentals of the Go programming language!
The Tour and Go By Example are renowned resources held with incredibly high regard by most Go developers.
I'd recommend working through all of them, they all complement each other nicely and help solidify concepts.🔗 Go.dev - A Tour of Go 🔗 Go.dev - Effective Go 🔗 Go By Example
A fantastic visual roadmap of some of the paths you can take when learning Go.🔗 Roadmap.sh - The Go Path
Learn Go through interactive, in-browser challenges!
Now that you have a handle on the syntax, it's time to level up your skills with some project development.
At this stage of your learning journey, you should be focusing on consolidating what you've learned previously and expanding your breadth of knowledge to include things like the tooling setups, testing, architecture and design patterns.
Your focus should be on building up more complex projects that continuously push your knowledge boundaries. For example, try introducing a database or a queue system in your project and understand how you can architect your app so that it's still testable and maintainable.
Learn Everything You Need To Know About Testing Production Applications in Go.
Welcome to the second edition of my course on building a production ready REST API in Go!
Learn how to work with and implement all of the fundamental data structures in Go!
You've mastered the skills needed to write your own Go applications, now it's time to expand your knowledge such and explore technologies and skills that you'll typically need in day-to-day Go development.
Focus on expanding the number of technologies you are comfortable working with and thinking deeply about architecture and code design.
At this stage, I tend to see folk either gravitate towards architecting systems that span multiple services, or really driving deeper into technical details. Both paths are perfectly valid, but try and frame any projects such that they are focused on your own career objectives.
In this course, we cover everything it takes in order to get up and running building your own gRPC services in Go
Learn how to build HTTP Clients to simplify interfacing with any APIs!
A crash course to get you up and running quickly with RabbitMQ and Go
Some additional links and resources you can check in with to help further advance your Go development📚 Go Wiki: Books
Awesome Go - this is a fantastic resource for browsing all the available tools, courses, libraries specific to Go!📚 Awesome Go 👨🏫 Ardan Labs - Training and Courses