What are koans and how can they help level up your dev game?

A koan is a story, dialogue, question, or statement which is used in Zen practice to provoke the “great doubt” and to practice or test a student’s progress in Zen.  In the Zen school of Rinzai, the use of koans (often a paradoxical statement) is used to initiate the internal socratic method in the students, to break down prior deeply held notions that hold them back from Enlightenment.  An example of a koan is the question “What do you call the world?”

So, what does this have to do with application development?  There are technology-specific koans out there like Ruby Koans, ColdFusion Koans, Python Koans, and a number of different versions of JavaScript Koans.  The goals of each project is to teach the particular technology through testing.  A test runner like Jasmine, QUnit, or MXUnit is usually used.  With koans, you need to run the tests and see them fail, make the tests pass, and then take a moment to reflect upon the test to see what it is teaching you.  In doing this, the hope is that you will become a better coder.

 

[ Cover photo by Sean Stratton on Unsplash ]

Leave a Reply

Your email address will not be published.