Ilya Strukov's site

Коаны в программировании

2012-08-25

У буддистов коан — это короткий рассказ или вопрос, призванный натолкнуть ученика на правильный путь и тем самым приблизить его к просветлению. У программистов есть своя интерпретация этого слова, пусть, более приземлённая, но, тем не менее, заслуживающая внимания.

Под коанами в программировании обычно понимают короткие упражнения, в которых надо дописать или исправить фрагменты программы таким образом, чтобы она проходила все тесты. Этот подход, по-моему, хорошо работает при изучении языков программирования, особенно, если изучаемый язык — не первый.

Ближе к делу. Понадобилось мне изучить питон. Я сначала листал какие-то книжки, пропуская большие куски текста, которые были для меня очевидны, и выискивая примеры кода. Это было неэффективно. Затем наткнулся на Python Koans, буквально за пару дней прошёл все уроки — и теперь могу писать код на питоне практически с тем же успехом, что на давно и хорошо известных мне языках.

Тут можно оговориться, ведь, отчасти, такой лёгкий и быстрый старт обусловлен простотой самого питона и близостью его к уже хорошо известным мне языкам. Однако, по субъективным ощущениям, этот подход действительно сильно упрощает обучение.

Помимо Python Koans, существуют ещё Ruby Koans (на которых первые и основаны), Clojure Koans. Ещё для Clojure есть 4clojure, со своим набором коанов для решения онлайн.