A Koan is a Buddhist idea. A Koan presents a situation, dialog, statement, story or question that must be thought about. Many of these questions cannot be answered outright, having multiple interpretations.
The goal of a Koan
is not the answer, but thinking about the question.
Now, regarding to learning a new programming language.
Koans
premise is that there are set of broken tests and it is your mission to repair them. Along the way, the tests are fixed by utilizing the language, syntax and culture of Test Driven Development (TDD). Learning the culture is one of the coolest parts of the Koans.
The goal is to learn the language, syntax, structure, and some common functions and libraries. The goal is not to speed through or skip around, but take your time and add more tests, break and fix again. You have to fill in that missing piece in order to move on to the next Koan. These Koans are thinking exercises, you have to understand how the language feature works before you can move on.
I like a lot the idea around Koans, because i think the real learn happens by DOING
and no other way.
I think Koans
are a great way to learn a new language, they won’t teach you the intricate in’s and out of the language, neither will they teach you the pro’s and con’ nor the real life use of the language, but, i think is a good way to get you confident up and running, your knowledge of the syntax differences and the general feel of a language.
With That said, I can only add a list of available Koans
repositories for different languages.
The original
See also
Python Koans
Java Koans
Go Koans
Scala Koans
Clojure Koans
Lisp Koans
Perl Koans
Haskell Koans
Erlang Koans
ColdFusion Koans
Bash Koans
.Net Koans
C++ Koans
Lua Koans
Groovy Koans
Objective C Koans
Front-end languages
JavaScript Koans
CoffeeScript Koans
Statistics
Databases
Frameworks
Other technical tools
Source: http://www.lauradhamilton.com/learn-a-new-programming-language-today-with-koans
If you need more, search the word “Koan” in https://github.com/ or https://bitbucket.org/