Learning Resources
This module is populated from the local chunked books in library/raw/semester-00-orientation/books. Use this page as a source map, not as a reading dump.
Source Stack
| Book | Role | How to use it in this module |
|---|---|---|
| Clean Code | Primary teaching support | Default escalation for naming, functions, comments, tests, class design, refactoring, and review heuristics |
| Grokking Algorithms | Not used directly here | Use your earlier module artifacts only as refactor targets if you want practice on familiar code |
| Computer Science Distilled | Not used directly here | Save for Module 2 review rather than clean-code reading |
Resource Map by Cluster
Cluster 1: Readable Code Foundations
| Need | Best local chunk | Why |
|---|---|---|
| why code quality affects cost | Chapter 1: Bad Code to The Grand Redesign in the Sky | Best first framing for clean code as an economic decision |
| names that reveal intent | Chapter 2: Introduction to Make Meaningful Distinctions and Chapter 2: Interfaces and Implementations to Use Problem Domain Names | Best first support for naming as design |
| comments vs clearer code | Chapter 4: Comments Do Not Make Up for Bad Code to Explanation of Intent | Best for deciding whether a comment should survive |
| formatting as communication | Chapter 5: The Purpose of Formatting to Vertical Density | Best first pass on readable layout |
Cluster 2: Function Design
| Need | Best local chunk | Why |
|---|---|---|
| function size and single purpose | Chapter 3: Small! to Blocks and Indenting and Chapter 3: Do One Thing to The Stepdown Rule | Best for one-thing and stepdown flow |
| arguments and side effects | Chapter 3: Have No Side Effects to The Error.java Dependency Magnet | Best support for function honesty |
| boundaries and errors | Chapter 7: Use Exceptions Rather Than Return Codes to Use Unchecked Exceptions and Chapter 8: Exploring and Learning Boundaries to Using Code That Does Not Yet Exist | Best for keeping intent visible through failure paths and third-party edges |
Cluster 3: Tests and Emergent Design
| Need | Best local chunk | Why |
|---|---|---|
| why tests enable change | Chapter 9: Keeping Tests Clean to Tests Enable the -ilities | Best central argument for tests as design support |
| readable tests | Chapter 9: Clean Tests to Domain-Specific Testing Language and F.I.R.S.T. to Chapter 10: Classes | Best support for expressive tests |
| simplicity through cleanup | Chapter 12: No Duplication to Bibliography | Best for the emergent-design idea |
Cluster 4: Objects, Classes, and Systems
| Need | Best local chunk | Why |
|---|---|---|
| objects vs data structures | Chapter 6: Data/Object Anti-Symmetry to Hybrids | Best first framing for encapsulation choices |
| class size and cohesion | Chapter 10: Class Organization to Classes Should Be Small! and Chapter 10: The Single Responsibility Principle to Cohesion | Best support for reasons-to-change thinking |
| seams and system boundaries | Chapter 11: How Would You Build a City? to Dependency Injection | Best beginner bridge from local design to system seams |
Cluster 5: Refinement and Review
| Need | Best local chunk | Why |
|---|---|---|
| successive refinement mindset | Chapter 14: Args Implementation to How Did I Do This? and First, Make It Work | Best for incremental cleanup thinking |
| review heuristics and smell vocabulary | Chapter 17: C1 to G4 and Chapter 17: G5 to G11 | Best for actionable review language |
Exercise Support Chunks
Use these when the concept pages are understood but your refactoring judgment is still weak:
- Chapter 3: Do One Thing to The Stepdown Rule
- Chapter 9: Clean Tests to Domain-Specific Testing Language
- Chapter 10: The Single Responsibility Principle to Cohesion
- Chapter 17: C1 to G4
Use Rules
- If you are stuck on one concrete smell, open the one chunk that names it.
- If you want practice, refactor a real file before reading more theory.
- If a book chunk feels too case-study-heavy, return to the guide and extract the transferable rule.