---
id: 3e8fc539-e90c-4278-a233-6158dbca89e4
title: Golang
---

# Language

## Basics

-   [Packages](20200826142755-packages)
-   [Functions](20200826151337-functions)
-   [Variables](20200826151514-variables)
-   [Flow control statements](20200826151846-flow_control_statements)
-   [Tests](20200826191127-tests)
-   [Tooling](20200826191508-tooling)
-   [Pointers](20200828180957-pointers)
-   [Structs](20200828181259-structs)
-   [Arrays](20200828182327-arrays)
-   [Slices](20200828182546-slices)
-   [Maps](20200828192034-maps)
-   [Methods](20200831155304-methods)
-   [Interfaces](20200831171822-interfaces)
-   [Errors](20200909202454-errors)
-   [Reflection](20200917155644-reflection)
-   [Context](20200921154246-context)
-   [Embedding](20200928193245-embedding)

## Concurrency

-   [Goroutines](20200901141141-goroutines)

### Sync

-   [Mutex](20200918173820-mutex)
-   [WaitGroup](20200918174548-waitgroup)

### Misc

-   When to use sync.Mutex or a channel[^1]

## Libraries you should probably know about

-   http[^2]

## Books & tutorials

-   Go by Example[^3]
-   Learn Go with tests[^4]

# Footnotes

[^1]: <https://faiface.github.io/post/context-should-go-away-go2/>

[^2]: <https://golang.org/pkg/net/http/>

[^3]: <https://gobyexample.com/>

[^4]: <https://quii.gitbook.io/learn-go-with-tests/>