Skip to content

Latest commit

 

History

History
115 lines (77 loc) · 5.93 KB

README.md

File metadata and controls

115 lines (77 loc) · 5.93 KB

Important Reading

There is a ton of links to extra reading and videos through out the material. Occasionally we run into material that we feel is important and don't have an exact place to put it. This is a section place for that material.

Books

Go In Action - Kennedy, Ketelsen, St. Martin
Learn Go - Nathan Youngman

Blogs

Going Go - William Kennedy
The acme of foolishness - Dave Cheney
The Go Blog - Language Team
Ukiah Smith - Ukiah Smith
Mechanical Sympathy - Martin Thompson
Go Documentation References - Language Team

Interviews

An Interview with Brian Kernighan
Interview with Dennis Ritchie, Bjarne Stroustrup, and James Gosling

History

The Evolution of Go - Robert Griesmer
Language Design in the Service of Software Engineering

A Very Brief History of Computing, 1948-2015
The Rise and Fall of Minicomputers
After Moore's Law - Economist
A Crash Course in Modern Hardware

Why Vendoring Is Important

How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript

Profiling and Debugging

Profiling & Optimizing in Go - Brad Fitzpatrick
Go Dynamic Tools - Dmitry Vyukov

Interfaces and Composition

Design Guidelines
Composition - William Kennedy
Interface Pollution - Burcu Dogan

Buffer Bloat - 2011

Bufferbloat: Dark Buffers in the Internet
Buffer Bloat Videos

Linux

The Definitive Guide to Linux System Calls
Linux Performance Analysis in 60,000 Milliseconds

Mechanical Sympathy

Much of this content can be found under arrays and data races. We feel this content is so important it has been moved out to this general materials page.

CPU Caches

Scott Meyers: CPU Caches and Why You Care - Video
Scott Meyers: CPU Caches and Why You Care - Deck
What Every Programmer Should Know About Memory
How CPU Caches Work and Why
Modern Microprocessors A 90 Minute Guide
Ulrich Drepper - Memory part 2: CPU caches
The Free Lunch Is Over
Dick Sites - "Data Center Computers: Modern Challenges in CPU Design
Wirth's Law

Data-Oriented Design

Data-Oriented Design and C++
Pitfalls of OOP
Why you should avoid Linked Lists

Runtime

This content can be found under pointers. We feel this content is so important it has been moved out to this general materials page.

Stacks

Contiguous Stack Proposal

Escape Analysis and Inlining

Go Escape Analysis Flaws
Compiler Optimizations

Garbage Collection

Tracing Garbage Collection
Go Blog - 1.5 GC
Rick Hudson GC Talk

Single Static Assignment Optimizations

GopherCon 2015: Ben Johnson - Static Code Analysis Using SSA
https://github.com/golang/go/blob/dev.ssa/src/cmd/compile/internal/ssa/compile.go#L83
https://godoc.org/golang.org/x/tools/go/ssa
Understanding Compiler Optimization

Release Notes

Go 1.6 Release Notes - 2016/02/17
Go 1.5 Release Notes - 2015/08/19
Go 1.4 Release Notes - 2014/12/10
Go 1.3 Release Notes - 2014/06/18
Go 1.2 Release Notes - 2013/12/01
Go 1.1 Release Notes - 2013/05/13
Go 1.0 Release Notes - 2012/03/28