Use Koans to learn a new programming language

Posted by on September 29, 2014

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

Ruby Koans

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


R Koans


MongoDB Koans


Ruby on Rails Koans

Other technical tools

Git Koans
Vim Koans


If you need more, search the word “Koan” in or