The Art of Readable Code

Chapter 1 — Code Should Be Easy to Understand
Part I: Surface-Level Improvements
Chapter 2 — Packing Information into Names
Chapter 3 — Names That Can't Be Misconstrued
Chapter 4 — Aesthetics
Chapter 5 — Knowing What to Comment
Chapter 6 — Making Comments Precise and Compact
Part II: Simplifying Loops and Logic
Chapter 7 — Making Control Flow Easy to Read
Chapter 8 — Breaking Down Giant Expressions
Chapter 9 — Variables and Readability
Part III: Reorganizing Your Code
Chapter 10 — Extracting Unrelated Subproblems
Chapter 11 — One Task at a Time
Chapter 12 — Turning Thoughts into Code
Chapter 13 — Writing Less Code
Part IV: Selected Topics
Chapter 14 — Testing and Readability
Chapter 15 — Designing and Implementing a “MinuteHour Counter”