Golang

Language

Basics

  • [Golang Packages](Golang Packages)
  • [Golang Functions](Golang Functions)
  • [Golang variables](Golang variables)
  • [Golang flow control statements](Golang flow control statements)
  • [Tests in Golang](Tests in Golang)
  • [Golang tooling](Golang tooling)
  • [Golang Pointers](Golang Pointers)
  • [Golang Structs](Golang Structs)
  • [Golang Arrays](Golang Arrays)
  • [Golang slices](Golang slices)
  • [Golang maps](Golang maps)
  • [Golang methods](Golang methods)
  • [Golang interfaces](Golang interfaces)
  • [Golang Errors](Golang Errors)
  • Reflection
  • [Golang Context](Golang Context)
  • [Golang Embedding](Golang Embedding)

Concurrency

Sync

  • [Golang Mutex](Golang Mutex)
  • [Golang WaitGroup](Golang WaitGroup)

Misc

  • When to use sync.Mutex or a channel[fn:mutexorchannel]

Libraries you should probably know about

  • http[fn:http]

Books & tutorials

  • Go by Example[fn:gobyexample]
  • Learn Go with tests[fn:learngowithtests]

Footnotes

[fn:learngowithtests]https://quii.gitbook.io/learn-go-with-tests/

[fn:gobyexample]https://gobyexample.com/

[fn:http]https://golang.org/pkg/net/http/

[fn:mutexorchannel]https://faiface.github.io/post/context-should-go-away-go2/