Skip to main content

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

BookRoleHow to use it in this module
Clean CodePrimary teaching supportDefault escalation for naming, functions, comments, tests, class design, refactoring, and review heuristics
Grokking AlgorithmsNot used directly hereUse your earlier module artifacts only as refactor targets if you want practice on familiar code
Computer Science DistilledNot used directly hereSave for Module 2 review rather than clean-code reading

Resource Map by Cluster

Cluster 1: Readable Code Foundations

NeedBest local chunkWhy
why code quality affects costChapter 1: Bad Code to The Grand Redesign in the SkyBest first framing for clean code as an economic decision
names that reveal intentChapter 2: Introduction to Make Meaningful Distinctions and Chapter 2: Interfaces and Implementations to Use Problem Domain NamesBest first support for naming as design
comments vs clearer codeChapter 4: Comments Do Not Make Up for Bad Code to Explanation of IntentBest for deciding whether a comment should survive
formatting as communicationChapter 5: The Purpose of Formatting to Vertical DensityBest first pass on readable layout

Cluster 2: Function Design

NeedBest local chunkWhy
function size and single purposeChapter 3: Small! to Blocks and Indenting and Chapter 3: Do One Thing to The Stepdown RuleBest for one-thing and stepdown flow
arguments and side effectsChapter 3: Have No Side Effects to The Error.java Dependency MagnetBest support for function honesty
boundaries and errorsChapter 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 ExistBest for keeping intent visible through failure paths and third-party edges

Cluster 3: Tests and Emergent Design

NeedBest local chunkWhy
why tests enable changeChapter 9: Keeping Tests Clean to Tests Enable the -ilitiesBest central argument for tests as design support
readable testsChapter 9: Clean Tests to Domain-Specific Testing Language and F.I.R.S.T. to Chapter 10: ClassesBest support for expressive tests
simplicity through cleanupChapter 12: No Duplication to BibliographyBest for the emergent-design idea

Cluster 4: Objects, Classes, and Systems

NeedBest local chunkWhy
objects vs data structuresChapter 6: Data/Object Anti-Symmetry to HybridsBest first framing for encapsulation choices
class size and cohesionChapter 10: Class Organization to Classes Should Be Small! and Chapter 10: The Single Responsibility Principle to CohesionBest support for reasons-to-change thinking
seams and system boundariesChapter 11: How Would You Build a City? to Dependency InjectionBest beginner bridge from local design to system seams

Cluster 5: Refinement and Review

NeedBest local chunkWhy
successive refinement mindsetChapter 14: Args Implementation to How Did I Do This? and First, Make It WorkBest for incremental cleanup thinking
review heuristics and smell vocabularyChapter 17: C1 to G4 and Chapter 17: G5 to G11Best for actionable review language

Exercise Support Chunks

Use these when the concept pages are understood but your refactoring judgment is still weak:

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.