Here I share what I did and what I experienced while improve myself from rookie to master. It is a repository where I practice with multiple ways to gain hands-on Go
experience.
- Standard library
- Effective Go
- Go Wiki
- Go Code Review Comments
- Projects · golang/go Wiki
- SuccessStories
- Go Specification
- Frequently Asked Questions (FAQ)
- Release History
- Contribution Guide
- Go at Google
- Fuzzing Test
- SQL injection
- 50 Shades of Go
- Learn Go with Tests
- LearnErrorHandling
- LearnTesting
- LearnServerProgramming
- e2e testing with Golang
- Graceful Shutdown in Go
- Go Developer RoadMap
- Uber Go Style Guide
- Practical Go: Real world advice
- GOSAMPLES: Go (Golang) Tutorials & Examples
- GOTOpia
- concurency
- Concurrency Patterns: Golang. While my previous article covered the… | by Thejas Babu | Medium
- Stopping Goroutines. Goroutines are extremely powerful and… | by Mat Ryer | Medium
- Make Ctrl+C cancel the context.Context | by Mat Ryer | Medium
- How to correctly use context.Context in Go 1.7 | by Jack Lindamood | Medium
- Using contexts to avoid leaking goroutines · rakyll.org
- Go Concurrency Patterns: Pipelines and cancellation - The Go Programming Language
- Tutorial: Synchronizing State with Mutexes in Go
- Context and Cancellation of goroutines - http://dahernan.github.io
- Dancing with Go’s Mutexes | HackerNoon
- GoRoutines, Channels, and Proper Exits - Rabarar's Blog
- How to Block Forever in Go · Scott Mansfield
- Mutex profile · rakyll.org
- Sane Concurrency with Go | Mozilla Services
- Error handling patterns in Go
- Does the Go race detector catch all data race bugs? | by Val Deleplace | Medium
- nomad software | Interesting ways of using Go channels
- code-review-checklists/go-concurrency: Checklist for code reviews
- The Pros of Conds
- luk4z7/go-concurrency-guide: Practical concurrency guide in Go, communication by channels, patterns
- Advanced Go Concurrency Patterns - The Go Programming Language
- The X-Files: Avoiding Concurrency Boilerplate With golang.org/x/sync » Rodaine
- Golang lock-free values with atomic.Value
- Go Concurrency Patterns: Context - The Go Programming Language
- Go Concurrency Patterns: Timing out, moving on - The Go Programming Language
- Concurrency, Goroutines and GOMAXPROCS
- uber.com/blog/data-race-patterns-in-go/
- 6 Concurrent API Design - Effective Go
- Effective Go - The Go Programming Language
- Simulating a real-world system in Go - Sameer Ajmani at dotGo 2017
- The Go Programming Language Specification - The Go Programming Language
- A Tour of Go
- Frequently Asked Questions (FAQ) - The Go Programming Language
- Go by Example
- Go by Example: Goroutines
- Go by Example: Stateful Goroutines
- Go Concurrency Patterns
- GopherCon 2015: Richard Fliam - A Practical Guide to Preventing Deadlocks and Leaks in Go - YouTube
- Share Memory By Communicating - The Go Programming Language
- Codewalk: Share Memory By Communicating - The Go Programming Language
- Concurrency is not Parallelism
- Go Community Slides · golang/go Wiki
- sync package - sync - Go Packages
- Introducing the Go Race Detector - The Go Programming Language
- Go: code that grows with grace
- Mutexes and Semaphores Demystified
- Advanced Go Concurrency Patterns
- The Go Memory Model - The Go Programming Language
- atomic package - sync/atomic - Go Packages
- Principles of designing Go APIs with channels - inconshreveable
- Advanced Go Concurrency – Encore Blog
- GopherCon 2018: Kavya Joshi - The Scheduler Saga - YouTube
- The Scheduler Saga - Speaker Deck
- GopherCon 2017: Kavya Joshi - Understanding Channels - YouTube
- Understanding Channels - Speaker Deck
- Visualizing Concurrency in Go · divan's blog
- Learning Go’s Concurrency Through Illustrations | by Trevor Forrey | Medium
- Go’s append is not always thread safe | by Jack Lindamood | Medium
- go-workshop
- I'm officially a Go contributor! From proposal to merged code in the Go project - YouTube
- knowledge/docs/programming-languages/go/go.md at main · nikitavoloboev/knowledge · GitHub
- TannerGabriel/learning-go
- goworkshopdevops
- The Algorithms - Go
- Filenames, keywords, identifiers
- Operators, types, functions, and constants
- Pointers, structures, methods
- Maps, arrays, slices
- Go CLI
- Interface
- Error handling
- Goroutine, Channel, Buffer
- Panic, Defer, Error, Recover
- Go dependency management tools
- Semantic versioning
- Scripts and repositories
- Go standard library
- SQL fundamentals
- GIT
- Basic authentication
- HTTP/HTTPS
- Relational databases
- NoSQL databases
- Web frameworks and routers
- CLI
- design patterns
- Unit testing
- Integration testing
- Behavior testing
- E2E testing
- Building out a portfolio includes
Completing online courses on Go
Contributing to open source Go projects
Building Go projects from scratch
Implementing Go units in existing projects
Coding classic algorithm problems with Go
Completing courses on adjacent technologies (i.e. SQL)
- Some common questions include
What is a goroutine? How do you stop it?
How do can check variable type at runtime?
How do you format a string without printing?
How do you concatenate strings in Go?
What is Go 2?
How do you initialize a struct in Go?
- Conclusion and what next to learn
- Working with Websockets and Socket.IO
- Protocol Buffer
- WebAssembly Tutorial - Building a Calculator Tutorial
- Oauth2
- Face Recognition
- Encryption and Decryption using AES
- Building a Solid Continuous Integration Pipeline with TravisCI for Your Golang Projects
- Secure Coding - Input Validation
- Writing a Frontend Web Framework with WebAssembly And Go
- Securing Your REST APIs With JWTs
See CONTRIBUTING.md.
See LICENSE.