In 2011, Daniel Kahneman launched a book called Thinking Fast and Slow. It summarized decades of research and presented one core thesis.
Within our brains is two “systems” – “System 1” is fast, pattern-matching, driven by instinct and past experience, emotionally driven. “System 2” is slow, reasoning, deliberate, logical.
As a species, we have evolved and honed these two systems. System 1 gets us out of danger, fast. Some folks like to call it the Lizard Brain.
System 2 represents all that is civilized about mankind. Governance. Scientific research. Philosophy.
Most of the time, we are teaching System 2 how to code. We work through problems, learn a programming language’s syntax and ecosystem, learn techniques and patterns.
We would like to do all our coding with System 2 primarily engaged.
But then life takes over. Crisis hits. Deadlines loom. Pressure builds.
System 1 takes over, and unless you’ve taught it SOMETHING about coding, wicked code starts shooting out your fingers. Quick hack. Monkeypatch here. Rushed commit there. Kaboom, things get worse.
You can’t teach System 1 how to code by reading books, taking courses, building new things all the time.
You teach System 1 with kata.
You do the same exercises, over and over, teaching your Lizard Brain the muscle patterns, through repetition, the right way, the way you want to code.
What have you taught your System 1 about writing software?