Notes

Part 1: Good code

Part 2: Code design

Part 3: Efficiency