«

»

Imprimir esta Post

Documentación a lo Colombo (I)

¿Recordamos todos como el caballero Peter Falk nos deslumbraba al final de cada capítulo de Colombo con algo que sólo él había alcanzado a observar y que le daba sentido a todo? Al igual que Jessica Fletcher, House o Holmes. Al final, todo cobraba sentido, pero sólo al final. En un caso de misterio, esta narrativa es genial, pero en un entorno formativo, comunicativo o de documentación en general, lo que yo llamo Efecto Colombo es totalmente contraproducente.

Me he dedicado mucho tiempo a programar y ahora hago juegos de mesa, por lo que el contexto que comentaré brevemente es el de la programación y el de la documentación de juegos de mesa, también conocida como manuales (en la siguiente entrada de la serie). Ya tuve algún enfrentamiento en algún foro con cierto profesor de la escuela de ingenieros, que se tomó muy personalmente cierta crítica sobre la manera de enseñar ingeniería.

Metodo Colombo

Colombo recomienda hacer copy-paste de código. Ya luego entenderás por qué. O no.

Important!

Es un clásico el comenzar la formación en cualquier lenguaje con lo que se conoce como “Hello, world!”. Normalmente consiste en un pequeño trozo (a veces no tan pequeño) de código que ejemplifica como escribir esa frase en la salida estándar; normalmente y hoy en día, por pantalla. Aquí comienza el Efecto Colombo al aprender programación y, creedme: es terrible.

Nos convencen en distintas carreras universitarias de que nos enseñan a programar y nos lo creemos. Por fortuna en mi escuela de ingeniería nadie cree saber programar al salir (lo cual sólo evita el mal trago de asumir que sabes hacer algo que no sabes y no disculpa el hecho de que un ingeniero no sepa nada de programación), pero está muy extendido el mito de que los ingenieros saben programar. Y está extendido el mito de que los ingenieros informáticos también saben. Y está más extendido el mito de que puedes aprender a programar por tu cuenta, “con el Internet”.

Colombo en la programación

Programar es arreglar problemas. Aparte tiene otros aspectos lúdicos, formativos, filosóficos, etc., pero no se puede olvidar que su sentido es arreglar un problema. Puede ser un problema irresoluble por un humano, un problema que requeriría demasiados recursos de otra manera o un problema sobre problemas, lo que uno quiera; pero es arreglar problemas. Es por ello que, si se quiere arreglar un problema, habrá que tener un problema. Y es por ello que, para aprender a arreglar problemas, deben plantearse problemas. ¿Qué problema se pretende resolver con un “Hello, World”?

La respuesta es sencilla: no lo hay. Y claro que sólo es un ejemplo sencillo para tener una toma de contacto con la sintaxis, el entorno y el espíritu incólume de Ritchie. El problema es que esa mentalidad se mantiene durante todo el tiempo en el que uno se intenta formar, supuestamente, en un lenguaje de programación.

Warning!

Metodo Colombo para enseñar un lenguaje de programación:

  • Ejemplo “Hello, World”
  • Ejemplo de estructuras y tipos de datos (variables, constantes, objetos…)
  • Como instalar un entorno de desarrollo (si eres afortunado)
  • Ejemplo de estructuras de control (bucles, if…else, etc.)
  • Ejemplo de funciones/clases
  • Truquitos
Y tal y como te explican el último aspecto sintáctico, estético o interno del lenguaje de programación te dicen que sabes programar. Ole.

Así que pones en tu curriculum que sabes programar en S+++ Ultramegaplus, te cogen en la empresa porque les enseñas tu código y los dejas alucinados a todos. Luego llega un cliente, se plantea un problema para resolver y tú eres el experto. Luego picas el código, lo compilas/interpretas, lo enseñas en tu portátil y es magnífico. Pasan un par de semanas de pruebas y tu jefe te dice que vayas a instalarlo en el cliente. Entonces llega el sudor frío, el mal rato y el “es que funciona en mi equipo”.

¿Y esto por qué? Pues porque nadie se ha molestado en decirte (ni tú en preverlo) que eso que programas, deberá usarlo alguien que no eres tú, en un equipo que no es el tuyo,… Y esa primera vez aprendes una palabra que no habías oído en tu vida: despliegue. O deploy.

Ese día comprendes que el método Colombo no vale: hay que pensar primero en el final de la historia y contarlo. Una vez que sepamos el final de la historia, ya veremos si queremos leerla. Porque esto no va de demostrar quien es el más listo, ni de vender una moto, ni de leer una historia emocionante: va de arreglar problemas.

(Continuará…)

Acerca del autor

Dani Ramírez

Artesano del conocimiento, del software y los juegos de mesa. También Ex-CEO de una empresa que nunca dio beneficios, Ex-programador a tiempo completo, Ex-estudiante de ingeniería... Knowledge, software and board game craftsman. Also, Ex-CEO-of-a-company-which-never-had-profits, Ex-full-time-programmer, Ex-engineering-student, ...

Enlace permanente a este artículo: http://danibishop.com/documentacion-lo-colombo/

  • Pingback: Documentación y educación a lo Colombo

  • M. Ramon Lopez

    El problema de la Uni es que se quiere enseñar a los ingenieros no informáticos a programar en un cuatrimestre. Y no se puede. En cuatro meses te enseño la sintaxis y poco más. Al resolver problemas aprendes solo resolviendo problemas y pelándote los buevos/chichi.

Pinterest