The Programmers’ Stone

Hi, and welcome to The Programmers’ Stone. The purpose of this publication is to recapture, explore, and celebrate the art of computer programming. The aim is practical. Help you become a better programmer, help experienced programmers understand what newer programmers are struggling with, and help teams communicate more effectively about design and code.

The original version of this page was written decades ago as part of the Reciprocality Project. The core idea still holds. Programming is a craft, and the biggest gains often come from how you think, how you structure work, and how you review and communicate, not from chasing the latest tooling cycle.

This material was originally structured as an eight-day course delivered over four weeks. Each “chapter” corresponded to one day of course notes, with the final day intended for discussion rather than prepared notes. We are updating the site for modern readers and will publish standalone pages for each section below. This page acts as the index.

If you are reading this today, treat the chapter headings as a map. You can jump straight to what you need now, then come back later and read it as a full sequence.


Chapter 1 – Thinking about Thinking

  • Roots of the Approach
  • Mapping and Software Engineering
  • Mapping and TQM
  • Mandate Yourself!
  • The Undiscovered Country
  • Knowledge Packets, Daydreams, Maps and Understanding
  • Mappers and Packers
  • How to Regain Mapping
  • The Ways of Mappers and Packers
  • Packing as a Self-Sustaining Condition
  • The Mapper/Packer Communication Barrier

Chapter 2 – Thinking about Programming

  • What is Software Engineering For?
  • Software Engineering is Distributed Programming
  • What is Programming?
  • Programming is a Mapper’s Game
  • General Tips on Mapping
  • Mapping and the Process
  • Angels, Dragons and the Philosophers’ Stone
  • Literary Criticism and Design Patterns
  • Cognitive Atoms
  • The Quality Plateau
  • Knowledge, Not KLOCS
  • Good Composition and Exponential Benefits

Chapter 3 – The Programmer at Work

  • Approaches, Methodologies, Languages
  • How to Write Documents
  • The Knight’s Fork
  • The Personal Layered Process
  • To See the World in a Line of Code
  • Conceptual Integrity
  • Mood Control
  • Situation Rehearsals

Chapter 4 – Customs and Practices

  • The Codeface Leads
  • Who Stole My Vole?
  • Reviews and Previews
  • Code Inspections and Step Checks
  • Coding Standards and Style Guides
  • Meaningful Metrics
  • Attitude to Tools
  • Software Structures are Problem Structures
  • Root Cause Analysis
  • Complexity Matching and Incremental Boildown
  • The Infinite Regress of ‘Software Architectures’
  • The Quality Audit

Chapter 5 – Design Principles

  • Simple and Robust Environments
  • System Types
  • Error Handling – a Program’s Lymphatic System
  • Modalism and Combinatorical Explosion
  • Avoid Representative Redundancy
  • Look at the State of That!
  • The Reality of the System as an Object
  • Memory Leak Detectors
  • Timeouts
  • Design for Test
  • Dates, Money, Units and the Year 2000
  • Security

Chapter 6 – Prudence and Safety

  • Brain Overload
  • Brain Overrun
  • Overwork
  • Cultural Interface Management
  • Individual Responsibility and Leadership
  • The False Goal of Deskilling
  • Escape Roads
  • New Member Integration

Chapter 7 – Some Weird Stuff…

  • Richard Feynman
  • George Spencer-Brown
  • Physics Textbook as Cultural Construct
  • Are Electrons Conscious?
  • Teilhard de Chardin and Vernor Vinge
  • Society of Mind
  • Mapping and Mysticism
  • Mapping and ADHD
  • How The Approach Developed
  • Complexity Cosmology
  • The Prisoners’ Dilemma, Freeware and Trust
  • Predeterminism

Appendix

  • Stoned! Sites
  • User Reports
  • Additional Materials
  • Links
  • References

Originally written in the late 1990s with Alan G. Carter as primary author and refreshed for publication in 2026. Modern companion pages for each section will expand the examples and update the technical references.