better than monkeys

It seems [1] that humans have no more working memory than monkeys. Four items, that’s all we can think about at once. We gain our advantage not with raw size, but with strategy: group those four items into one somehow, and then they fit into one item. Build hierarchies of these groupings to fit more items, indirectly. Daniel Bor calls this “chunking.” I call it “abstraction.”

It’s the same thing we do with our code when we group expressions into functions, function calls into methods, methods into classes, classes into modules. At each level we must keep the abstraction clean enough that we don’t have to peek inside it, because that will use up our working memory.

Abstraction is how we get smarter than monkeys. It is also how our programs get smarter than what one person can hold in his head. It is the key skill both for intelligence and for software design.

A programmer who does not practice good abstraction – that’s a code monkey.

[1] Review of “The Ravenous Brain”