Coding Koan - La (no tan misteriosa) senda del programador Zen

viernes, 11 de febrero de 2011

Recientemente en una nota en Code&Beyond se hablabla sobre Koans para programadores.
Los Koans son una especie secuencias de ejercicios, pensados para guiar la meditación Zen.

http://www.codeandbeyond.org/2011/02/meditacion-programatica-koans.html

Algunas personas están trasladando este concepto a la programación, estos Koans para programadores son una batería de tests unitarios inicialmente fallidos,
Un software asiste al aprendiz (un framework de unit testing, más algun plugin o pieza de software específica) para hacer pasar los tests uno por uno.
Cada test obliga a aprender algo nuevo, es una forma de aprendizaje excelente.

"Me lo contaron y lo olvidé; lo vi y lo entendí; lo hice y lo aprendí". Confucio

Los hay sobre diversos temas, y sobre diferentes lenguajes de programación en la nota hay links para varios de ellos, me pareció interesante el de JavaScript. Es un lenguaje con mala fama, y parte de eso se debe a que es muy utilizado esporádicamente por desarrolladores web, y no siempre con atención a las "buenas prácticas".

JavaScript Koans

Existe todo un movimiento por tomar JavaScript "en serio", como una serie de buenas prácticas que suelen englobarse con el nombre de "Unobstrusive Javascript".
Esto combinado algunos proyectos recientes que hacen pensar que JavaScript sea quizás el único lenguaje necesario: V8, Node.js (que tiene ahora un versión para .Net , Node.Net), Rhino, etc.
(Esto es tema para otro post!)

https://github.com/liammclennan/JavaScript-Koans#readme

Primeros pasos

Se baja el zip (Download), y después de descomprimirlo al abrir jskoans.htm se ve lo siguiente:


Nota: como vemos este Koan usa QUnit, un framework de Unit Testing para JavaScript, es por ej. el utilizado por jQuery.

Siguiendo la sugerencia, abrimos 'topics/about_asserts.js' y hacemos algunas correciones:



Actualizamos la página ...


















Exito!, vemos el resultado positivo de los tests modificados, y ahora que aprendimos lo básico sobre los Asserts, se nos presenta el próximo desafío ("About Equality"), el Koan continúa asi sucesivamente. Éste consta de 14 tópicos, algunos que a veces sorprenden como closures o prototypal inheritance.

Una forma muy efectiva y entretenida (después de todo, ambas cosas van de la mano) de aprender y enseñar. Además los koans por estar basados en Unit Tests son mucho más fáciles de mantener actualizados, lo que resulta un problema frecuente en materiales didácticos, al menos en esta industria.