There are two different ways to learn something according to the old-school neck-bearded Linux Hax04z. The two modalities of learning are referred to as Zenning and Grokking. While it’s not a highly sophisticated theory of pedagogy, I’ve found the distinction to be useful as I’ve thought about my own journey with computers.
Def: To Zen
To Zen something is to arrive at an intuitive understanding of something seemingly effortlessly. To be one with The Code in a way that is surprising even to one’s self. To “just get it” at first glance.
Zenning is rare, at least for me. Zenning is a flash of light on a mountaintop, a clap of thunder, slight smell of ozone, and all is made clear – a perfect, crystalline state of mind where everything makes sense.
Zenning is intuitive insight based on prior knowledge and understanding, frequently derived from prior experience. Zenning comes only after a lot of hard grokking has prepared the mind.
Def: To Grok
To Grok something is to come to a fill understanding after long, hard study. It’s our usual experience of learning where knowledge and ability is gained slowly through deliberate practice.
Trying to grok is the necessary work to gain ability with computers. One groks the documentation, groks some sample programs, groks the back-end system with the help of another Engineer, reads a bunch on Stack Overflow to grok a solution, and then pieces it all together.
Grokking isn’t always fun. Sometimes we have to force ourselves to do it. Sometimes we have to read the same code 7 times before we grok how it works. Sometimes we need to ask for help, and sometimes we fail a lot before we succeed.
But, grokking is the game. Grokking is how we get better. Grokking is putting one foot in front of the other and making progress as best we can. Grokking is the work of becoming a better programmer.
What are you grokking today?