Golang | Development
How to learn Golang — Updated for 2025
All the links and methods to learn Golang for your 2025 goals
This blog is a direct guide to learning golang. It contains direct links to resources , no big paragraphs just a very short blog.
More than 90% of the resources are free and a next learning guide using projects.
Table of Contents
· Learning the Basics
∘ Learning through videos
∘ Self Learning
∘ Golang Repositories
· Concurrency
∘ Channels
∘ Wait Groups
∘ Mutex
· API Development in Golang
∘ Basic API Development
· Deeper Concepts
· Projects to Build
∘ Beginner
∘ Intermediate
∘ Advanced
· YouTube Channels to Follow
Learning the Basics
Learning through videos
Tech with Tim has a great playlist on learning golang which is useful.
Tech with Time YouTube — Starting out with Golang Playlist
However if you are willing to pay some money the below course is even better as Todd teaches in a story like fashion. It is comparatively longer though.
Udemy Course by Todd Mc Leod — How to Code: Google’s Go
Self Learning
If you do not want to depend on videos and want an environment to learn go the tour of go is a good place to start.
Then as you complete each part look through the go by example tabs of that concept to understand the complete usage.
Tour of Golang — Self learning about Golang
Go By Example — Exhaustive list of using Golang
Golang Repositories
This should be your last stop since learning through videos or the self learning tab should be good enough to develop golang skills.
The below resources are just extras for getting a wider view of golang.
- Tanner Gabriel Learning Go — Learning Golang
- Karan Pratap Singh — Learning Golang
Concurrency
Concurrency is one of the most important aspects of golang. Developing the skills to use channels , mutexes and wait groups will help you level up for systems programming in golang.
The below video demonstrates using channels and mutexes along with wait groups.
Channels
- A good video explanation — Go basic Channels tutorial
- Blog on using channels — Handling Golang Concurrency
Wait Groups
- Go video sync Wait Groups Basics — Go basics of wait groups
Mutex
- A video on using mutexes — Golang Mutex Tutorial
API Development in Golang
There are three popular backend frameworks for golang to start out with
- Gorilla — good for starting with
- Fiber — High Performance and Concurrency
- Gin — Fast and Efficient Routing , High Performance
Basic API Development
Deeper Concepts
How to use RPC in Golang — RPC in Golang
Playlist by Todd McLeod — Very deep understanding of http and api development
Projects to Learn — Gophercises Projects
Projects to Build
Beginner
- Build a basic TODO CLI using cobra
- A URL shortener
- Simple web app
Intermediate
- Integrate a third part API like weather API or reddit API.
- File upload and download using concurrency
- Full fledged backend API for a restaurant service
- Integrate a queue system to a backend API.
Advanced
- Upgrade the restaurant backend to microservices with an API gateway
- Implement 2 phase commit with all corner cases.
- Develop the bully leader election algorithm also with corner cases and tests.
- A simple task distribution service where a large computation is broken and distributed to different servers and results returned after comparison
YouTube Channels to Follow
Tiago — https://www.youtube.com/@TiagoTaquelim
Akhil Sharma — https://www.youtube.com/@AkhilSharmaTech
Anthony GG- https://www.youtube.com/@anthonygg_
Traversy Media — https://www.youtube.com/@TraversyMedia
Nic Jackson — https://www.youtube.com/@NicJackson
Daily Code Buffer — https://www.youtube.com/@DailyCodeBuffer
Mario Carrion — https://www.youtube.com/@MarioCarrion