¿Qué es una Kata y un Koan?

Koan

Definición literal:  en la tradición zen, un problema que el maestro plantea al alumno para comprobar sus progresos. Muchas veces el kōan parece un problema absurdo, ilógico o banal. Para resolverlo el novicio debe desligarse del pensamiento racional común para así entrar en un sentido racional más elevado y así aumentar su nivel de conciencia para intuir lo que en realidad le está preguntando el maestro. El koan mas famoso es:  “Este el sonido de dos manos, ¿cuál es el sonido de una sola mano?

Definición en informática:

Ejercicio con código que no funciona y hay que corregirlo o completar algún parámetro para que funcione.

 

La idea de un Koan de programación es descargar un conjunto de ejercicios creados para una primera inmersión en un nuevo lenguaje, con una idea nueva a la vez. Cada ejercicio se completa y permite descubrir conocimientos que te servirán para nuevos ejercicios.

 

Kata

Definición literal:  Viene de las artes marciales, es una palabra japonesa que describe lo que en un inicio se consideró una serie, forma o secuencia de movimientos establecidos que se pueden practicar tanto en solitario como en parejas.

Repetir un ejercicio completo a partir de un ejemplo o unas directrices.

 

Definición en la informática: Es un pequeño problema de programación que persigue resolver un problema en un tiempo finito de unos 30 o 40 minutos.

El objetivo de estas katas es, por un lado, desarrollar nuestros propios algoritmos para resolver la kata en ese corto espacio de tiempos, y por otro lado, ver la solución que le da otra gente a ese mismo problema.

Además, estas katas son independientes del lenguaje, con lo cual, cada uno puede solucionarlas en el lenguaje que mejor le parezca.

Y para añadirle un poco más de emoción, se pueden implementar utilizando “Extreme Programming” por parejas.

 

https://www.genbetadev.com/metodologias-de-programacion/que-es-un-coding-dojo

https://picodotdev.github.io/blog-bitix/2014/12/ejercicios-katas-para-mejorar-habilidades-de-programacion-practicando/

http://manzanamecanica.org/2011/08/koans_una_tecnica_para_aprender_nuevos_lenguajes_de_programacion.html

https://altenwald.org/2016/08/07/koans-katas-y-etudes/