viernes, 13 de julio de 2007

Presentación

¿Cómo te enseñan a programar?

Me ha pasado en la facultad que han tratado de enseñarme a programar mediante un método particularmente cruel:

Un docente explica las reglas de sintaxis de un lenguaje de programación, sobre vuela sobre el modelo de ejecución que tendrá ese programa cuando lo tome el intérprete o compilador y luego me entrega un enunciado de un problema para resolver.

O sea, se espera que escriba un programa de computadora que resuelva el problema planteado en el enunciado.

En el mejor de los casos, el docente muestra unos ejemplos triviales de uso de las primitivas que estuvo explicando; sino, a buscar en la referencia del lenguaje. De cualquier manera, los problemas casi nunca están escogidos de modo que con las primitivas explicadas alcance para resolverlos: a buscar entonces la referencia. Peor caso todavía, y no poco probable: el docente no usa el lenguaje de programación que enseña, más que para dar clases, así que él/ella tampoco lo conoce, y por lo tanto ni sabe cuáles primitivas sería muy útiles conocer, y algunas de las cosas que sabe, er..., bueno, están equivocadas, o son pésimas prácticas de programación en dicho lenguaje.

¿Cómo ganar en la lucha por escribir el código elegante, correcto para ese problema? Código que no solamente sirva para aprobar una asignatura en la facultad, sino que sirva para alterar mi red neuronal de tal manera que mis sesos generen programas elegantes y correctos?

La verdad es que nadie sabe cómo lograr eso.

Escribir y leer: el yin/yang de la programación

Yo tengo una corazonada, y es que para aprender a escribir programas, se debe aprender a leer programas. Claro que hay aquí un caso más del huevo y la gallina. ¿Cómo leer si nada se ha escrito? ¿Y si leo lo que escribí, cómo aprender?

La paradoja es superficial. Ya existen muy buenos ejemplos de programas escritos. Mucho software libre es una fuente de aprendizaje (y ése es uno de los objetivos del software libre). También es cierto que mucho software (libre o privativo) es horripilante, auch.

Así que nos queda sólo un escollo: el discernimiento. ¿Quién determina cuándo una pieza de código es una obra de arte digna de ser imitada o un adefesio del cual huir a campo traviesa? La respuesta aquí no es trivial, pero podemos empezar por una simple: veamos el código público de gente que tiene reconocimiento de sus pares.

La lectura sola de código puede hacer mucho para mejorar o ayudarnos a encontrar nuestro estilo, pero sería una medida incompleta para hacernos escritores de programas. También debemos escribir programas. Muchos sitios en la Internet tienen ayudas y recursos para los que desean escribir, así que nuestra necesidad de escribir puede ser satisfecha de momento. Algo de eso también recomendaremos.

Lo que hará muestro blog distintivo es que pondremos énfasis en la lectura de buen código.

Bienvenida, bienvenido.