This repository is a student-friendly Go learning path. It is arranged like a class roadmap so learners can study one topic at a time and slowly build confidence.
If you are new to Go, begin with these files and folders in order:
After that, continue through the rest of the learning order below.
- It starts from the very first Go program
- It moves in a clean order from easy to advanced topics
- It gives practice folders that match the lessons
- It helps students revise before exams, interviews, or projects
- It gives direct links to folders and files for quick navigation
- First program
- Variables and types
- Packages and imports
- var and short declaration
- If and else
- Loops
- Switch
- Arrays
- Slices
range- Maps
- Functions
- Error handling
- Closures
- Pointers
- Structs
- Methods
- Interfaces
- Enums
- Generics
- Goroutines
- WaitGroup
- Channels
- Mutex
- Files
- Select
- Context
- Panic and recover
- Reflection
- Modules
- JWT and RBAC
- HTTP server basics
- Multiple routes
- HTTP GET example
- Module demo app
- Email dispatcher
- REST API notes CRUD
- Students CRUD API
- Todo API
- JWT and RBAC API
- Go module entry file
- Email dispatcher producer
- Email dispatcher consumer
- API server router
- API routes
- Note handler
- Database config
- JWT auth helper
- Auth middleware
- Role middleware
- User handler
If you are learning Go for the first time, this is a simple path:
- Learn the syntax
- Understand variables, types, and control flow
- Practice arrays, slices, and maps
- Learn functions, structs, and methods
- Understand interfaces and packages
- Study concurrency with goroutines and channels
- Learn files, modules, and advanced features
- Build small projects and APIs
- Practice auth flows with JWT and RBAC
- Read one topic folder
- Run the code if possible
- Change the code and see what happens
- Write the same example on your own
- Move to the next topic only after the current one feels clear
- Keep revisiting earlier folders while learning new concepts
- Understand the idea before memorizing syntax
- Practice writing code by hand
- Learn from compiler errors
- Keep old examples for revision
- Revisit concurrency more than once
- Try building small tasks after every few lessons
- Learn how each topic connects to the previous one
You are ready for the next topic when you can:
- Explain the topic in simple words
- Write a basic example without copying too much
- Fix small mistakes on your own
- Connect the topic with previous lessons
- Explain where that topic is used in real projects
The goal of this repository is to guide students from beginner level to confident Go programming with a clear, practical roadmap.
Small contributions are welcome, such as:
- Better examples
- More practice programs
- Short notes for students
- Small fixes and improvements
- Cleaner explanations
- Extra file links for quick access
This project is licensed under the MIT License.