The Programmer’s Stone is a theory and training course on how to think as an effective computer programmer. Alan Carter and Colston Sanger wrote the guide with the aim to explore, recapture and celebrate the programming art form.
The reader is positioned to become a better programmer, understand the struggles confronting inexperienced programmers, and communicate well with experienced programmers.
Here is a summary of themes.
Mapping versus Packing
Mappers apply the cognitive strategy of populating and integrating mental maps, then reading off the solution to any specific problem. They find methods for achieving objectives by consulting internal mental maps.
Packers are practised at retaining large numbers of knowledge packets. They aim to perform the ‘correct’ action in any given situation. Their strategies for dealing with ambiguous circumstances, where there is no satisfactory correct action, are ad hoc.
Mappers experience learning as an internal process which adapts to external and self-generated stimuli. Packers experience learning a task to be performed using appropriate methods. Efficient mapper learning uses intuition to explore conceptual relationships and recognize truth. Efficient packer learning relies on memorization.
A trait of packer thinking that frustrates mappers is that packers appear to have no interest in finding the flaws in their own logic. Worse still, they may be happy to accept flaws when they are pointed out to them on the basis of convenience – so what? The evidence that is tangibly before them is less important than behavior ingrained through repetition.