- Setup Go https://golang.org/dl/
- VSCode Setup https://code.visualstudio.com/docs/languages/go
- Signup for https://gophercises.com/
- Hello World
- Values
- Variables, Constants
- For
- If/Else
- Switch
- Arrays
- Slices
- Maps
- Range
- Go through gobyexample.com. Same applies for rest of sections below.
- Functions
- Named return
- Multiple Return Values
- Closures
- Recursion
- Structs
- Interfaces
- Methods
- Embedded Types
- Findout type of error in Go and how it is defined?
- Goroutines
- Channels
- Channel Buffering
- Channel Synchronization
- Channel Directions
- Select
- Timeouts
- Non-Blocking Channel Operations
- Closing Channels
- Range over Channels
- Timers
- Tickers
- Worker Pools
- WaitGroups
- Rate Limiting
- Atomic Counters
- Mutexes
- Stateful Goroutines
- Sorting
- Sorting By Functions
- Panic
- Defer
- Collection Functions
- String Functions
- String Formatting
- Regular Expressions
- JSON Marshal/Unmarshal
- JSON struct tags
- Time
- Epoch
- Time Formatting / Parsing
- Random Numbers
- Number Parsing
- URL Parsing
- SHA1 Hashes
- Base64 Encoding
- Reading Files
- Writing Files
- Line Filters
- File Paths
- Directories
- Temporary Files and Directories
- Command-Line Arguments
- Command-Line Flags
- Command-Line Subcommands
- Environment Variables
- HTTP Clients
- HTTP Servers
- Spawning Processes
- Exec'ing Processes
- Signals
- Exit
- https://gophercises.com/exercises/urlshort
- https://gophercises.com/exercises/phone
- https://gophercises.com/exercises/secret
- Using ORM
- Routers
- Controllers & Views
- Templates
- Explore Mux
- Explore Gin
- Write unit tests and functional/integration tests for microservices application you wrote.