The Concept Map
Ideas do not live in isolation. They form webs of meaning, each concept touching many others. This book has a suggested order---the sequence of chapters you see in the table of contents---but that is only one path through a richer landscape.
This chapter presents a map of that landscape. Use it to:
- See how concepts connect before you encounter them
- Find your way back when you feel lost
- Choose alternative paths based on your interests
- Understand why certain ideas keep reappearing
The Territory
At the highest level, programming is about systems---things that have state, respond to events, and follow rules. Everything else is a way of thinking about, organizing, or implementing systems.
From this foundation, two philosophies of change emerge:
The Three Paradigms
Three ways of organizing thought have emerged in programming's history. They are not competitors but lenses---different ways of seeing the same problems.
The Building Blocks
Beneath the paradigms lie universal building blocks---patterns of thought that appear in all programming:
The Full Map
Here is the complete landscape of concepts. Solid lines show "builds upon" relationships; dashed lines show "relates to" connections.
Reading Paths
The table of contents suggests one journey. Here are others:
The Linear Path
Read the book in order, from Part I to Part XII. This path builds concepts systematically, never using an idea before it's introduced. Recommended for those new to programming.
The Functional Path
If you want to think in transformations:
- Part I: The Nature of Systems (foundation)
- Chapter: Derivation (the functional philosophy)
- Chapter: The Functional Mind (Part III)
- Part V: Naming and Abstraction (functions as values)
- Part VII: Boundaries (Maybe, Result---functional error handling)
- Part VIII: Time and Memory (immutable history)
- Return to fill gaps as needed
The Object Path
If you're coming from object-oriented experience:
- Part I: The Nature of Systems (new vocabulary for familiar ideas)
- Chapter: The Object Mind (Part III---your home base)
- Part IV: Building Blocks (see OOP patterns emerging)
- Part X: Patterns and Forms (design patterns, polymorphism)
- Part IX: Concurrent Worlds (objects in parallel)
- Return to Parts II, V--VIII for functional perspective
The Builder's Path
If you want to build something now:
- Part I: The Nature of Systems (just enough theory)
- Part III: Three Ways of Thinking (skim all three paradigms)
- Part VII: Boundaries and Impossibility (real programs fail)
- Part VIII: Time and Memory (real programs remember)
- Part IX: Concurrent Worlds (real programs wait)
- Return for deeper understanding when you hit walls
The Philosophy Path
If you care about the why:
- Read only the chapter openings and margin notes
- Follow the "Reading Companions" to literature and philosophy
- Chapter: The River and the Stone (Heraclitus, change)
- Part VIII: Time and Memory (Borges, branching paths)
- Part XIII: The LLM Era (what remains human)
- Read the code sections only when curiosity demands
Whichever path you choose, remember: you can always return to this map. The territory doesn't change, but your understanding of it will.
Now, let us begin.