tl;dr:(1) Don't communicate by sharing memory, share memory by communicating. (2) Concurrency is not parallelism. (3) Channels orchestrate; mutexes serialize. (4) The bigger the interface, the weaker the abstraction. (5) Make the zero value useful. And more.