De Programación
Domingo 28 de Octubre de 2007
Si hay algo para lo que sirve Internet (además de mirar porno), es para hablar con gente que sabe de qué habla, o que al menos lo parece.
En todos mis años de investigación aprendí mucho (creo) sobre programación (además de lenguajes). Es imposible listarlo todo, porque hay muchas opiniones contradictoria, pero en la mayoría de los grandes está de acuerdo en algunas cosas:
Hacelo porque te gusta
Programar es mucho de un arte, y como en las artes, lo más importante no es el saber dibujar/pintar/actuar/etc.; eso se aprende. Lo más importante es amar lo que se hace.
Yo podría aprender a usar AutoCAD como un maestro, y toda la teoría sobre ingeniería mecánica (o quizá ni eso porque no soportaría las clases), pero cualquier pieza que haga sería horrible porque no me gustaría hacerlo. Igualmente aquellos que se llaman programadores y diseñadores, y ‘aprenden’ HTML, PHP, Photoshop, y demás, terminan dando resultados pésimos.
Hacelo constantemente
Preguntale a un buen programador qué está haciendo, y seguramente te diga “programar”. Preguntáselo a un dibujante y te dirá “dibujar” (bueno, excepto por el hecho de que le duela la mano de pasarse todo el día… dibujando). Un buen programador siempre está haciendo algo nuevo, o mejorando algo viejo. Y si no está tocando código, estará leyendo sobre código. Si lo hacés porque te gusta, lo hacés constantemente, y no hay mejor forma de aprender que programando.
Asimismo, el programador “de 9 a 5″ sólo mira código cuando está trabajando, y sólo si es completamente necesario.
Lo más simple posible
Irónicamente, esta es una de las reglas más complicadas de explicar. Un programa tiene que ser lo más simple posible, pero no más (Sí, sí, lo parafraseo a Einstein ¿y qué?). C es un lenguaje de programación genial, y me encanta por muchas de sus virtudes; desgraciademente la simplicidad no es una de ellas. Sí, su estructura es reducida (no mínima; para eso está Brainfuck, u otros), pero esa simplicidad en el lenguaje hace que los programas se vuelva complejos. Sirve aprender un lenguaje como Python, que en su simplicidad engañan porque esconden su poder.
Hacer programas tan complejos e indescifrables que para entenderlos hay que hacerlos de nuevo sólo sirve para que consigamos una extensa librería de archivos que juntan bugs, porque cada vez que encontramos y arreglamos uno causamos siete nuevos.
Lo menos posible
Esta regla está extremadamente ligada a sistemas como Unix, con una potente línea de comandos. Los pipes de Unix permiten relacionar la salida de un programa con la entrada de otro, de manera que puedo tener un programa cuya única función sea imprimir en orden la entrada que se le da, así no necesitaría implementar una función de ordenación en cada programa en caso de que la necesite. Simplemente llamo al programa apropiado. Igualmente en un programa lo mejor es utilizar las funciones que ya estén implementadas en el lenguaje, en lugar de crear una nueva cada vez (a menos que las ventajas sean extremas). (Y no, esto no está en desacuerdo con la regla 2, programar constantemente; un programador inteligente hace cosas nuevas, en lugar de resolver problemas viejos.)
Otros sistemas obligan a diseñar monolitos que incluyen todas las funciones posibles en cada programa, simplemente porque es imposible hacer que los programas se comuniquen entre sí.
Lunes 29 de Octubre de 2007, 8:12 am
Vaya, quien diria que puede haber tanta sensibilidad en un programador? de no ser por el contenido cualquiera diria que esto era un post de un usuario de deviantArt n_n.
Gracias por tus aportes compañero
Martes 13 de Mayo de 2008, 9:40 pm
Completamente de acuerdo, el programar requiere de ganas y tener gusto por lo que se hace. Todos los artículos me parecen muy buenos. Gracias