Golang Resources That I'm Using To Learn The Language
Effective and up to date learning for the enthusiasts.
Golang (Go for short) is one of the most popular programming languages in the recent years and for good reason. It has a variety of use cases, from building APIs and microservices all the way to working with web frameworks.
If you’re proficient in writing software in any other popular language such as C++ or Java, you’ll find a ton of similarities and differences which make learning Go both immensely fun and a just a tad bit challenging.
However, the right approach to learning always helps. The only framework to learning that I believe works in the world of software engineering is Learning by Building.
Now, to accompany it, you can consider several other resources that provide additional information in learning the most recent and usable knowledge to pick up practical skills in the language quicker than simple tutorials.
I describe a few of those resources in this article.
Websites to Bookmark
Let’s talk about a few websites that are the most invaluable whether you’re just starting out with the language or you’re already a few yards in.
1. The Effective Go Documentation
If you want to delve into this quirky language through an in-depth exploration of similarities and differences in its syntax and overall structure compared to the others, you won’t want to miss this one.
Located in the heart of the official Go documentation, it provides a serialized guide on many important concepts such as syntactical dos and don’ts and package organizations, and also ventures into data structures, control statements, interfaces, concurrency fundamentals and best practices and the likes.
I refer it to ever so often as somewhat of a “source of truth” on most topics.
2. The Go Blog
Yes, this is another one of the official pages that is just impossible to ignore.
Here, you’ll find articles from the developers and maintainers of Go and they talk about quite a few topics in depth, several times a month here.
It also showcases important release notes in an easy-to-digest tutorial format for new or updated concepts that developers should be aware about, so I highly recommend it.
3. Go By Example
If you haven’t come across this website yet, you will soon enough. Once you start googling away about all small, medium, and the frustrating stuff about Go (yes, there are quite a few, every language has those, in fact), you’ll certainly thank the maker of this website.
This website presents you with a plethora of small code snippets that help you understand important topics in minutes.
Whether it’s your first day of shock therapy in finding that Go doesn’t have while loops (really) or it’s a day when you understand JSON marshalling, you can’t help but refer repeatedly to this website.
Book To Read
I am one of those (rare) people today who learnt most of his programming from books.
Whether it was C or C++ or Java or Python, I am one of the most vocal proponents of good books to learn any technology or framework in software development.
There may be a few books in the market today but I recommend this one:
Learn Go with Pocket-Sized Projects
This book takes somewhat of a different approach to teaching a new programming language. Having gone through about ~40% of the book so far, I've discovered that this method works incredibly well and I’d recommend it to others as well.
The book first introduces the language in a manner similar to what the Effective Go Documentation did: through comparisons with other languages.
You also get to know how to setup, install, and run your first program and then you’re off to building actual projects. In my opinion, this is one of the strongest aspects of this book and I wholeheartedly approve.
Through understanding concepts such as generics in Go, you build a usable project that helps you retain the knowledge better than a theoretical method will.
Whether it’s the small stuff that really matters: linting, documentation, setup, and logging, or the big concepts that need thorough understanding: testing and API development, all with mini projects.
Video Tutorials
If you search on YouTube, you won’t find the results lacking in Go tutorials in any way, and you can use them to too. But in here, I want to share videos and playlists that have have helped me learn effectively as a beginner.
In terms of one-off tutorials, this Golang Tutorial goes a long way in covering some of the most important concepts such as handling user inputs, packages and imports, pointers, error-handling, generics, and more. The sequence in which they’re explained also matters and is well done.
This playlist on the other hand walks you through creating and creating deployment pipelines for microservices in Go. If you’ve never built one before, this one is a great intermediate-level tutorial on how to get started. Just be aware though that some of the syntactic conventions and package structures/modules have changed since this series was released, so you may have to do some extra work to get them right on your own. Just something to keep in mind.
And that’s it. This concludes my list of Go resources for learning the language effectively and efficiently. Happy learning!
Are you tired of handling social logins yourself?
Regular email and password login systems on web apps might go a long way but social logins are just as popular now and also prove more convenient for the users.
If you’re like me and have setup Google, GitHub or Apple logins in the past yourself, you must know how much of a pain it is to get everything right. From error handling to async issues, you get different problems with different login providers.
And no, you can’t skip the error handling if you’re building for production. ;)
Fortunately, there is a backend as a service model provided by Supabase that helps a lot with integrating social logins. It works just as desired, and with minimal overheads to development workflows.
The most perfect plug and play logins I’ve used from a single auth provider.
I recently wrote about integrating Google Login in a Web App through Supabase. You can read it here.
Here’s a quick poll that you can vote on:
If you enjoyed this issue, feel free to share it with a friend! See you in the next one!
Let me know your thoughts in the comments or on Twitter.