La Practica de la Programación
Una vez escuche que Knuth colocaba en su tarjeta de presentación:
“Donald Knuth - Programmer”
Pero con el tiempo tuvo que cambiarla, porque poner en una tarjeta de presentación “Programador”, como “profesión”, no era muy bien visto. Hoy en día se coloca cualquier cosa en las tarjetas de presentación de mis colegas, desde Analista de Sistemas, a Arquitecto de Información, pasando por supuesto, por Ingeniero de Software.
Parece que decir que uno es un programador es algo vergonzoso, siendo que programar es a lo mejor que se pueda dedicar una persona.
Recientemente Enrique Dans escribe:
“El turbio pasado ha convertido la profesión de programador en algo que, aparentemente, poca gente quiere ejercer. La ha rodeado de una leyenda negra, casi de un escaso prestigio social, cuando en realidad, hablamos de los arquitectos de la nueva economía, de una habilidad de alta intensidad intelectual que podría considerarse equivalente al dominio de un idioma, una tarea compleja que permite a la persona interactuar y entenderse directamente con la máquina. Ser programador es un trabajo creativo, un papel indispensable en la economía de hoy que merece muchísimo respeto y que genera un elevado valor. Sin embargo, ¿dónde están los programadores? ¿Por qué no salen de las universidades, dispuestos a convertir esa hiperabundancia actual de ideas en código y a participar en esa revolución consistente en crear tantas actividades en el seno de la red? ¿Qué profesionales están generando las carreras de Informática o algunas Ingenierías, y por qué tienden a rechazar la idea de programar como si fuera un estigma o algo típico de obreros especializados?”
Practica y Disciplina
Programar es lo que más me gusta hacer. No pasa un día sin que programe algunas lineas de código.
Tal como piensa Knuth, programar es un arte, y como tal requiere de “práctica y disciplina”.
Probablemente es por eso que hay tan pocos programadores, o que los jóvenes no quieran ser programadores, porque la práctica y la disciplina no son muy populares hoy en día.
Pero en la formación también hay problemas.
Kernighan y Pike explican que la práctica de la programación se compone de simplicidad, claridad y generalidad.
Muchos de los curricula de estudio de los “ingenieros informáticos” tienen de todo, menos de estos tres elementos.
No puedes transmitir la simplicidad si la base del currículum es Java, o peor aún, la programación orientada a objetos. La razón porque XML sea usado para todo hoy en día es porque nuestros ingenieros han sido formados para resolver sólo los problemas dificiles, no son capaces de abordar los temas paso a paso, o dividir un problema grande en pequeños problemas abordables.
He tenido a mi cargo a muchos jóvenes egresados de universidades, chicos brillantes, con buenas notas, e inteligentes, pero incapaces de expresarse correctamente. Pero lo que más me sorprende es que son incapaces de comunicarse con los usuarios. Les falta claridad para pensar, claridad para expresarse, claridad en lo que entregan como producto final.
Un buen programador siempre piensa en lo que viene, pero no se vuelve loco por generalizarlo todo, sabe generalizar lo que realmente vale la pena generalizar. Pero falta formación en cuanto al diseño, al uso de patrones, y como arquitecturar soluciones.
Las universidades deben darse cuenta que lo que necesitemos nos programadores java, son buenos programadores, profesionales que tengan disciplina y práctica, y que observen los pilares de la práctica de la programación: simplicidad, claridad y generalidad.