El arte de programar
Estamos acostumbrados a pensar por comparación y a aprender con parábolas. Esto a menudo es de gran ayuda, pero a la larga nos impide dar el salto cualitativo del aprendiz al maestro. En informática esta advertencia tiene un profundo significado. Tendemos a comparar los ordenadores con personas o con máquinas, luego aplicamos estas comparaciones para intentar comprender lo que es un ordenador, pero un ordenador no es ni una cosa ni otra y no podremos entenderlo (y por tanto dominarlo) hasta que no dejemos de lado esas comparaciones, esas muletas que nos ayudan a aprender.
Quien escribe esto se haya muy al principio de ese camino de aprendizaje, a veces he tenido un vislumbre de la magia de un algoritmo o de la potencia de un paradigma informático, en esos momentos se queda uno asombrado ante la elegancia y la simplicidad que subyacen en un simple fragmento de código. Pero pronto me ofusco de nuevo y tengo que volver a las comparaciones y las parábolas para seguir avanzando. En estas páginas uso muchas comparaciones, pero no quedaros con ellas, no penséis que todo puede ser aprendido así, tampoco penséis que vosotros no podréis aprenderlo, si nos lo proponemos en firme y actuamos en consecuencia algún día daremos ese salto. Entonces dominaremos el arte de programar.
Algunos consejos rápidos
- Aprende bien el lenguaje: no te quedes con las cuatro estructuras que conoces y las veinte funciones que manejas, hay mucho más hay dentro, cada estructura tiene su lugar, de cada función puedes aprender algo. Intenta aprender algo nuevo cada día.
- Lee mucho código. ¿Te imaginas un novelista que nunca leyera libros? Lee código, mejor si es bueno, pero hasta del malo se aprende. Intenta entenderlo, pregúntate porqué está hecho así. Una buena fuente de código son los frameworks abiertos.
- No dejes de practicar: entre proyecto y proyecto practica con piezas pequeñas, crea pequeños algoritmos o programas que hagan esto o aquello. Un buena idea es ir creando tus propias herramientas. Primero algo modesto, que resuelva pequeñas tareas tediosas, pero no tienes porqué quedarte ahí, puedes crearte tu propio editor, o, quien sabe, algún día tu propio lenguaje, al fin y al cabo así suelen empezar la mayoría de los proyectos de código abierto.
- Aprende y aplica nuevos conceptos: no hagas siempre lo mismo, te quedarás atrás y te aburrirás.
- Conoce y utiliza nuevas herramientas: no digo que cambies de editor cada día, pero, ¿sabes lo que es un gestor de versiones?¿te suenan de algo los tests unitarios?¿usas alguna herramienta para validar html o css?
- Aprende más de un lenguaje: esto es algo más a largo plazo, pero no lo pierdas de vista. Sólo manejando varios lenguajes llegarás algún día al fondo de la cuestión.
Enlaces recomendados
- Sobre la crueldad de verdaderamente enseñar ciencias de la computación- Edsger W Dijkstra
- Code Reading: The Open Source Perspective – Un libro sobre como leer código ajeno.

