Those Zen Buddhists have a word for everything!
From Wikipedia, a "koan" is "a story, dialogue, question, or statement, which is used in Zen practice to provoke the "great doubt" and "test a student's progress in Zen practice."
What, pray tell, do koans have to do with anything in the development world?
The answer: a lot.
Koans in Technology
The concept has been transferred—indeed, translated—to the world of technology in the form of incremental, digestible tutorials that have the student start with fundamental concepts that build on each other towards bigger and more challenging, open-ended questions.
The first time I was exposed to this concept was while learning how to code against the various APIs for the Neo4j graph database several years ago. (Side note: These koans have a Doctor Who theme thanks to Neo's Chief Scientist, Jim Webber, and you can check out these koans in this GitHub repo.)
I was quickly enthralled by the process and found myself thoroughly enjoying it. In fact, I went through the whole series in 1-2 days because I just could not put it down.
It is that kind of experience that makes people want to learn, and applied to brand new subject matter, it can be a godsend.
Koan and Get It!
It would seem that other authors have adopted this technique, which makes this author very happy.
I had originally started this article with the intention of discussing learning Clojure and Clojurescript, two very powerful languages, both of which can be intimidating. However, as someone who has not touched many languages that employ the "prefix notation" paradigm since university, I was not necessarily looking forward to it.
Then, it came to me in a flash (flashback?): Koans.
Does Clojure or Clojurescript have any koan-based learning materials?
The answer, thankfully, is yes!
So to you, dear reader, I present a list of koans that will hopefully be useful as you start your journey down the path of some new language. From there, perhaps you can find other koans that you feel are useful. Feel free to share them in the comments should you find any!