Me vino a la cabeza uno de mis antiguos posts donde hablaba de cómo valorar a los miembros de un equipo. Pero esto es diferente, son tipos de programador. Así que intenté borrar el post de Jeff de mi mente, sobretodo la parte de hacerse famoso... y llegué a la conclusión de que sólo existen 3 tipos de programador:
- El primer tipo sería el programador que es capaz de aprender por sí mismo.
- El segundo tipo sería el programador que es capaz de aprender con la ayuda de otros.
- El tercer tipo es aquel que no es capaz de aprender ni por sí mismo ni por los demás.
Es así de sencillo. Actualmente nuestro mundo vive una evolución imparable y un programador debe vivir en un estado de contínuo aprendizaje que le permita reinventarse a sí mismo en caso necesario.
Por aprendizaje no me refiero a memorizar por memorizar. Aprender implica descubrir y comprender nuevos conceptos para ser capaz de relacionarlos con conocimientos previos de forma coherente. El conocimiento se aumenta con conocimiento.
El primer tipo es un programador superior porque no depende de nadie. Es capaz de buscar, encontrar y aprovechar las fuentes de conocimiento que necesita por sí mismo. Su propio código es una de ellas porque tiene un potente espiritu crítico. Pero sobretodo tiene una vocación y un talento natural. Disfruta realmente programando, resolviendo problemas y experimentando.
El segundo tipo es un programador que tiene la inteligencia necesaria para convertirse en un excelente profesional. Todo dependerá de su actitud, porque aunque es capaz de diferenciar entre lo bien y lo mal hecho, debe esforzarse en aprovechar las oportunidades que se le presenten para aprender. Principalmente, gracias a sus compañeros, pero también un libro, un artículo en internet o el código fuente de un proyecto open-source que utiliza.
El tercer tipo es un programador cuyas acciones no tienen un porqué. No razona porque no aprende, sólo memoriza una parte. Va a lo fácil, a sobrevivir. Necesita constante soporte y supervisión. Hoy hace bien una cosa y mañana la misma la hace mal. Su código es fuente de la mayoría de bugs totales. Daña la moral del equipo. Y a la larga, resta más que suma.
En definitiva -insisto- el programador capaz de aprender por sí mismo es superior, el que es capaz de aprender con la ayuda de otros es brillante y el que no es capaz de aprender ni por sí mismo ni con ayuda de otros es inútil.
Mmm, me parece un tanto sospecha esta calificación. Me parece que cómo estás en el primer grupo solo en esa medida te atrevez a juzgar.
¿En serio piensas que una profesion tan compleja sumada a la complejidad del ser humano se pueda clasificar en 3 categorías?
Incluso lo de los 8 tipos de programadores es absurdo.
Anónimo
18 de abril de 2009, 1:18@Anónimo: en general los sistemas humanos son complejos por nuestra incapacidad para hacer cosas simples correctas.
Aquí Julio toma el factor que considera fundamental en un programador, el aprendizaje, realiza la clasificación en función de él.
Es lo de siempre, no hay blancos y negros, pero en mi opinión es una clasificación bastante acertada.
juanignaciosl
18 de abril de 2009, 12:04Hola Julio:
Desde luego es una clasificación que comparto contigo pero habría que añadir otros factores como la motivación, etc...
Sobre lo que comentas de "restar más que sumar"....
http://www.manuelrecena.com/blog/archives/542
Manuel Jesús Recena Soto
18 de abril de 2009, 12:27Hola Julio, yo los resumo aún más:
El que termina de trabajar y no puede ver un ordenador porque le asquea y el que sale del trabajo pensando en dedicarle una par de horas (si las tiene) a su proyecto por hobby.
Incluso el del primer tipo puede ser en principio más productivo pero a la larga los del segundo tipo no tardan en rebasarlo.
David García
18 de abril de 2009, 23:01prefiero lo de los 5 tipos de desarrolladores, sobre todo el tipo que es capaz de diseñar y construir.
Anónimo
19 de abril de 2009, 21:42para mi me parece muy acertada la calificacion.
el resto de factores son excusas para que los mediocres puedan ocupar cargos superiores.
deus ex machina
20 de abril de 2009, 16:26Heiner Chale
23 de abril de 2009, 16:29No me parece que sea tan así, como para hacer clasificaciones.
Me parece que todos podemos ser en algún momento, cualquiera de los 3 tipos, o de los 8, o de los 'n'.
Creo que, como lo dices vos, todo está en la actitud para cualquier persona y para cualquier cosa.
Yo por ejemplo investigo, experimento y me gusta lo que hago, me encanta! Pero no voy a llegar un fin de semana
a usar la compu para trabajar en un proyecto ( si no es necesario). Si la usara sería para ver
películas, jugar o ver porno.
Heiner Chale
23 de abril de 2009, 16:44