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:

  1. Part I: The Nature of Systems (foundation)
  2. Chapter: Derivation (the functional philosophy)
  3. Chapter: The Functional Mind (Part III)
  4. Part V: Naming and Abstraction (functions as values)
  5. Part VII: Boundaries (Maybe, Result---functional error handling)
  6. Part VIII: Time and Memory (immutable history)
  7. Return to fill gaps as needed

The Object Path

If you're coming from object-oriented experience:

  1. Part I: The Nature of Systems (new vocabulary for familiar ideas)
  2. Chapter: The Object Mind (Part III---your home base)
  3. Part IV: Building Blocks (see OOP patterns emerging)
  4. Part X: Patterns and Forms (design patterns, polymorphism)
  5. Part IX: Concurrent Worlds (objects in parallel)
  6. Return to Parts II, V--VIII for functional perspective

The Builder's Path

If you want to build something now:

  1. Part I: The Nature of Systems (just enough theory)
  2. Part III: Three Ways of Thinking (skim all three paradigms)
  3. Part VII: Boundaries and Impossibility (real programs fail)
  4. Part VIII: Time and Memory (real programs remember)
  5. Part IX: Concurrent Worlds (real programs wait)
  6. Return for deeper understanding when you hit walls

The Philosophy Path

If you care about the why:

  1. Read only the chapter openings and margin notes
  2. Follow the "Reading Companions" to literature and philosophy
  3. Chapter: The River and the Stone (Heraclitus, change)
  4. Part VIII: Time and Memory (Borges, branching paths)
  5. Part XIII: The LLM Era (what remains human)
  6. 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.