https://github.com/halkyon/go-resources
A collection of links to various articles and resources on the Go programming language I find useful.
https://github.com/halkyon/go-resources
collection go golang programming-language resources
Last synced: 9 months ago
JSON representation
A collection of links to various articles and resources on the Go programming language I find useful.
- Host: GitHub
- URL: https://github.com/halkyon/go-resources
- Owner: halkyon
- Created: 2020-02-22T08:07:08.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-07-21T01:25:04.000Z (over 5 years ago)
- Last Synced: 2025-03-05T23:42:11.992Z (11 months ago)
- Topics: collection, go, golang, programming-language, resources
- Homepage:
- Size: 53.7 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Go resources
A collection of links to various resources (articles, blogs, etc) on the Go programming language I find useful.
## Other lists
* [Ardan Labs Go Training reading](https://github.com/ardanlabs/gotraining/tree/master/reading)
* [Awesome Go](https://awesome-go.com/)
## Blogs
* [Ardan Labs](https://www.ardanlabs.com/blog/)
* [Dave Cheney](https://dave.cheney.net/category/golang)
* [Go, the unwritten parts](https://rakyll.org/)
* [Jon Calhoun](https://www.calhoun.io/)
## Newsletters
* [Golang Weekly](https://www.golangweekly.com/)
## Books
* [Go in Action](https://www.manning.com/books/go-in-action), [source code for examples from book](https://github.com/goinaction/code)
* [Go 101](https://go101.org/article/101.html)
* [Concurrency in Go](https://www.amazon.com/Concurrency-Go-Tools-Techniques-Developers/dp/1491941197)
* [Writing an Interpreter in Go](https://interpreterbook.com/)
## Podcasts
* [Gotime](https://changelog.com/gotime)
## Training
* [Ardan Labs Go Training](https://www.ardanlabs.com/training/) [training class material](https://github.com/ardanlabs/gotraining)
* [Gophercises](https://gophercises.com/#signup)
* [JustForFunc](https://www.youtube.com/channel/UC_BzFbxG2za3bp5NRRRXJSw)
* [Learn Go with Tests](https://quii.gitbook.io/learn-go-with-tests/)
## Algorithms
* [Let's Learn Algorithms](https://www.calhoun.io/lets-learn-algorithms/)
* [Ardan Lab's Go Training](https://github.com/ardanlabs/gotraining/tree/master/topics/go/algorithms)
## Best practises
* [SOLID Go Design](https://www.youtube.com/watch?v=zzAdEt3xZ1M)
* [Context Package Semantics in Go](https://www.ardanlabs.com/blog/2019/09/context-package-semantics-in-go.html)
* [Cancellation, Context, and Plumbing by Sameer Ajmani](https://vimeo.com/115309491)
* [Practical Go](https://dave.cheney.net/practical-go)
* [Go for Cloud](https://rakyll.org/go-cloud/)
* [Why you shouldn't use func main in Go](https://pace.dev/blog/2020/02/12/why-you-shouldnt-use-func-main-in-golang-by-mat-ryer)
* [Code: Align the happy path to the left edge](https://medium.com/@matryer/line-of-sight-in-code-186dd7cdea88)
* [The Zen of Go](https://dave.cheney.net/2020/02/23/the-zen-of-go)
## Misc
* [SliceTricks](https://github.com/golang/go/wiki/SliceTricks)
## Performance
* [go-perfbook](https://github.com/dgryski/go-perfbook)
* [Inlining optimisations in Go](https://dave.cheney.net/2020/04/25/inlining-optimisations-in-go)
* [Mid-stack inlining in Go](https://dave.cheney.net/2020/05/02/mid-stack-inlining-in-go)
## First class functions
* [Do not fear first class functions](https://www.youtube.com/watch?v=5buaPyJ0XeQ)
## Interfaces
* [Go Data Structures: Interfaces](https://research.swtch.com/interfaces)
* [How to use interfaces in Go](https://jordanorelli.com/post/32665860244/how-to-use-interfaces-in-go)
* [Methods, Interfaces and Embedded Types in Go](https://www.ardanlabs.com/blog/2014/05/methods-interfaces-and-embedded-types.html)
* [Type Embedding](https://go101.org/article/type-embedding.html)
## Concurrency
* [GopherCon 2017: Kavya Joshi - Understanding Channels](https://www.youtube.com/watch?v=KBZlN0izeiY)
* [Achieving concurrency in Go](https://medium.com/rungo/achieving-concurrency-in-go-3f84cbf870ca)
* [Concurrency patterns from the Go in Action book](https://github.com/goinaction/code/tree/master/chapter7/patterns)
* [Rethinking Classical Concurrency Patterns](https://drive.google.com/file/d/1nPdvhB0PutEJzdCq5ms6UI58dp50fcAN/view)
* [Advanced Go Concurrency Patterns](https://www.youtube.com/watch?v=QDDwwePbDtw)
* [Go advanced concurrency patterns: part 1](https://blogtitle.github.io/go-advanced-concurrency-patterns-part-1/)
* [Go advanced concurrency patterns: part 2](https://blogtitle.github.io/go-advanced-concurrency-patterns-part-2-timers/)
* [Go advanced concurrency patterns: part 3](https://blogtitle.github.io/go-advanced-concurrency-patterns-part-3-channels/)
* [Scheduling in Go: Part III - Concurrency](https://www.ardanlabs.com/blog/2018/12/scheduling-in-go-part3.html)
* [The Behavior of Channels](https://www.ardanlabs.com/blog/2017/10/the-behavior-of-channels.html)
## Profiling
* [Profiling Go Programs](https://blog.golang.org/pprof)
* [Language Mechanics on Memory Profiling](https://www.ardanlabs.com/blog/2017/06/language-mechanics-on-memory-profiling.html)
## Internals, fundamentals
* [Go Slices: usage and internals](https://blog.golang.org/slices-intro)
* [Go maps in action](https://blog.golang.org/maps)
* [Error handling and Go](https://blog.golang.org/error-handling-and-go)
* [Working with Errors in Go 1.13](https://blog.golang.org/go1.13-errors)
* [Using Go Modules](https://blog.golang.org/using-go-modules)
* [The Go Programming Language Specification](https://golang.org/ref/spec)
* [Language Mechanics on Stacks and Pointers](https://www.ardanlabs.com/blog/2017/05/language-mechanics-on-stacks-and-pointers.html)
* [Language Mechnaics on Escape Analysis](https://www.ardanlabs.com/blog/2017/05/language-mechanics-on-escape-analysis.html)
* [Escape Analysis Flaws](https://www.ardanlabs.com/blog/2018/01/escape-analysis-flaws.html)
* [Scheduling in Go: Part I - OS Scheduler](https://www.ardanlabs.com/blog/2018/08/scheduling-in-go-part1.html)
* [Scheduling in Go: Part II - Go Scheduler](https://www.ardanlabs.com/blog/2018/08/scheduling-in-go-part2.html)
* [Garbage Collection in Go: Part I - Semantics](https://www.ardanlabs.com/blog/2018/12/garbage-collection-in-go-part1-semantics.html)
* [Garbage Collection in Go: Part II - GC Traces](https://www.ardanlabs.com/blog/2019/05/garbage-collection-in-go-part2-gctraces.html)
* [Garbage Collection in Go: Part III - GC Pacing](https://www.ardanlabs.com/blog/2019/07/garbage-collection-in-go-part3-gcpacing.html)
* [Go compiler instrinsics](https://dave.cheney.net/2019/08/20/go-compiler-intrinsics)
* [Go Assembly by Example](https://davidwong.fr/goasm/)
* [Go low-level calling convention on x86_64](https://dr-knz.net/go-calling-convention-x86-64.html)