5 tipos de programadores
Publicado el Sábado, 5 de febrero de 2011Otra lista sobre los "tipos de programadores". Ya en los principios del blog comenté al respecto, traduciendo parte del artículo de Jeff Atwood sobre los dos tipos de programador. También publiqué un webcomic con los tipos de programadores, que incluye una lista bastante extensa. Y si buscan, hay muchas listas más en internet sobre el tema, agrupando a los programadores en distintos grupos...
En esta ocasión se trata de una lista que tiene ya unos meses, algunos tal vez ya la hayan leído, pero surgió nuevamente en Reddit recientemente. El autor es Steven Benner y su post: The 5 types of programmer (licencia CC).
Programador cinta pato
Puede que el código no sea lindo, pero maldición, ¡funciona!
Este tipo es la base de tu empresa. Cuando algo falla, él lo arreglará rápido y de manera que no volverá a romperse. Por supuesto no le importa cómo se vea, la facilidad de uso, ni ningún otra de esas preocupaciones triviales, pero lo hará pasar, sin mucha chara o tonterías que hagan perder el tiempo. La mejor forma de usar esta persona es apuntarlo a un problema y alejarse.
Creo que todos en algún momento asumimos el rol del programador "cinta pato". Cuando subimos algo a producción, y nos acordamos a último momento de algo, o un usuario nos reporta un bug, generalmente entramos en el modo "cinta pato", y lo importante es ir y solucionar el problema. Ya habrá tiempo de mejorarlo más tarde (ese "más tarde" raras veces llega...), pero cuando el tiempo juega en contra, no queda otra opción que simplemente arreglar lo que está roto.
Programador perfeccionista obsesivo compulsivo
¿Que le querés hacer qué a mi código?
Es el tipo al que no le importan las fechas límite o presupuestos, eso es insignificante cuando se compara con la forma de arte que es la programación. Cuando finalmente recibes el producto terminado no tendrás otra opción que someterte a la impresionante gloria y radiante belleza del código perfectamente formateado, no, perfectamente bello, que es tan eficiente que cualquier cosa que quisieras hacerle no haría más que difamar una obra maestra. Es el único calificado para trabajar en su código.
Entiendo que existan programadores así, pero me suena a pedante. Sí está bien considerar un arte el código, y estar conforme con el código que uno escribió siguiendo buenas prácticas y demás. Pero creo que el desorden obsesivo compulsivo puede traer más problemas que soluciones. De todas formas en el mercado laboral las fechas límite y presupuestos, por más que odiemos escuchar sobre ellas, generalmente tienen peso en el desarrollo.
Programador anti-programación
Soy un programador, maldición. Yo no escribo código.
Su mundo tiene una simple verdad; escribir código es malo. Si tienes que escribir algo entonces lo estás haciendo mal. Alguien más ya ha hecho el trabajo así que simplemente utiliza su código. Te dirá cuánto mas rápida es su práctica de desarrollo, aunque le lleva tanto tiempo o más que a los demás programadores. Pero cuando obtengas el proyecto serán solo 20 líneas de código actual y será muy fácil de leer. Puede no ser muy rápido, eficiente, o compatible hacia adelante, pero estará hecho con el menor esfuerzo requerido.
Es un perfil que trataría de evitar. Pero no siempre, sí al extremo como se describe en este caso. Pero muchas veces reinventar la rueda nos complica y demora el desarrollo, y puede haber algún framework que nos facilite la tarea. De todas formas está el extremo de los que usan un framework para TODO, y al final el programa es puro código espagueti de configuraciones que intentan integrar framework mas framework, y el producto final termina siendo un bloatware enorme, sin quien logre entender lo que hace sin tener que estudiar 30 frameworks antes.
Programador a medias
¿Qué quieres? Funciona, ¿no?
El tipo al que no podría importarle menos la calidad, eso es trabajo de otra persona. Logra las tareas que le piden hacer, rápido. Puede no gustarte su trabajo, los otros programadores lo odian, pero la gerencia y los clientes lo aman. Por más dolor que te cause en el futuro, él sin ayuda es quien mantiene las fechas límites así que no puedes burlarte (no importa cuánto quieras hacerlo).
Conozco a algún programador de este tipo. Casualmente, tiene matices del programador "perfeccionista", pero no por buenas prácticas, sino por el hecho de que deja funcionando las cosas, y eso está perfecto, pronto. Cuando tengas que mantener su código o arreglar algo que hizo, vas a acordarte de su familia entera... pero hay varios así.
Programador teórico
Bueno, eso es una posibilidad, pero en la práctica esto puede ser una alternativa mejor.
Este tipo está mas interesado en las opiniones que en lo que se debería hacer. Pasará el 80% del tiempo mirando en blanco su computadora pensando maneras de lograr una tarea, 15% de su tiempo quejándose de fechas límite irrazonables, 4% de su tiempo refinando las opciones, y 1% de su tiempo escribiendo código. Cuando recibas el trabajo final siempre será acompañado por la frase "Si tuviera más tiempo podría haber hecho esto de la manera correcta".
Caigo un poco en este perfil también. Cuando encuentro una solución puedo darle muchas vueltas y "perder" mucho tiempo cuestionándome si la solución es la más perfecta. A veces puedo pasar tiempo ideando distintas soluciones y generalmente no llego a algo que me paresca "perfecto", sino "suficientemente bueno". Pero creo que eso es parte del supuesto que me queda muchísimo por aprender todavía, y siempre va a haber una "forma mejor de hacer las cosas" por aprender.
Tengo que admitir que últimamente he estado haciendo más que nada "cinta pato". Mucho del trabajo que he hecho recientemente consiste más que nada en corregir errores y agregar pequeñas características a alguna funcionalidad ya hecha. Pero a su vez, al arreglar algo, ya encuentro algún código que puedo refactorizar o corregir, y generalmente caigo en la "pérdida de tiempo" del programador teórico. De todas formas al entrar en el loop "teórico", tengo una condición de salida con uno de los programadores del equipo que insiste con "esto es suficientemente bueno para ahora, si volvemos a usarlo, lo mejoraremos más adelante".
Creo que la mayoría tenemos distintas características de cada uno de estos 5, y probablemente falten un montón más (basta con ver el webcomic). En fin, una lista más para la lista de listas... ¿Y ustedes en qué perfiles estarían?
37 comentarios en este post
Feed de comentarios-
Tweets that mention 5 tipos de programadores | Picando Código -- Topsy.com |
5 febrero. 2011 - 09:20
[…] This post was mentioned on Twitter by Kantor, Fernando. Fernando said: Post: 5 tipos de programadores http://ur1.ca/3480v […]
-
5 tipos de programadores |
5 febrero. 2011 - 15:31
[…] 5 tipos de programadores picandocodigo.net/2011/5-tipos-de-programadores/ por likiniano hace 16 segundos […]
-
Bitácora Soluciones MKA » Blog Archive » 5 tipos de programadores – htt… |
7 febrero. 2011 - 16:45
[…] tipos de programadores – https://picandocodigo.net/2011/5-tipos-de-programadores/ Posted in Soluciones MKA | No Comments » Leave a […]
-
Los diferentes tipos de programadores | Punto Geek |
5 febrero. 2013 - 12:00
[…] tipos de programadores en PicandoCódigo. Original por Steven […]
Gabriel Fernández 5 febrero. 2011 - 10:03
Indudablemente el uno… jajajaja
Skatox 5 febrero. 2011 - 12:06
Buenisimo, e identifico con varios de ellos.
Alejandro 5 febrero. 2011 - 15:32
^^, muy bueno. Conozco a varios programadores teóricos… 🙂
Maxi 5 febrero. 2011 - 16:03
Yo soy todos menos perfeccionista-obsesivo-compulsivo y anti-programación jaja.
willicab 5 febrero. 2011 - 17:37
Yo caigo an todas, claro, dependiendo de la ocasión XD
Frikisada 5 febrero. 2011 - 18:14
Buen post, pero creo que no eres consciente de que duct tape es cinta aislante, ya que pato es duck.
Fernando 5 febrero. 2011 - 18:30
No eres el primero que intenta “corregirme” lo de “cinta pato”. En Uruguay, donde yo vivo, la “cinta pato” es la cinta gris fuerte que se conoce en inglés como “duct tape”: http://en.wikipedia.org/wiki/File:Duct-tape.jpg
La cinta “aislante” o “aisladora” como se le conoce en mi país, es otra, y en inglés se denomina “electrical tape”: http://en.wikipedia.org/wiki/File:Electrical-tape_black.jpg
Saludos!
Rmn 5 febrero. 2011 - 18:34
Solamente aclararle al traductor que “Duct tape” es cinta para ductos (caños) y no “Duck tape” o cinta pato.
Fernando 5 febrero. 2011 - 18:44
La aclaración es incorrecta. En inglés “duct tape” y “duck tape” son equivalentes. Basta con leer un poco Wikipedia o si te ayuda este otro enlace Duct Tape vs. Duck Tape.
Gracias por comentar.
Saludos
Luciano Facchinelli 5 febrero. 2011 - 19:28
Y bienvenidos a otro episodio de Fernando vs the trolls
😛
Buen post btw
Fernando 7 febrero. 2011 - 22:27
Jaja, nah, la llevo tranquilo, ¡¡pero siguen aclarando que está mal traducido!!
Sebastián Moreno 5 febrero. 2011 - 19:35
jajajajja como joden con la cinta eh! Vamos a comentar el post que es muy bueno y dejarnos de bobadas trolls de porquería!
Muy bueno el post Fer!
Saludos
Fernando 7 febrero. 2011 - 22:29
Sí, esperaba más comentarios respecto al post en sí, y no tantos sobre la cinta 😛
Saludos!
Rmn 5 febrero. 2011 - 20:40
jaja entonces soy yo el desasnado ya ven que de algo sirvió. Nada de trolls, intentamos aprender cada día un poco más, o no? Ya ven, resulto beneficiado de esto. Saludos!
Fernando 7 febrero. 2011 - 22:30
¡Buenísimo! Una persona que haya aprendido algo nuevo ya compensa 😀
El tema es que recibí otros comentarios que tuve que moderar respecto a la traducción de la cinta. Por eso estaba un poco frustrado con el tema. Pero bueno, tendré que dedicar otro post a la cinta pato más adelante 😛
¡Saludos!
Daniel 6 febrero. 2011 - 13:11
Muy bueno jejeje. Yo me identifico con un par de ellos.
Guille 6 febrero. 2011 - 18:25
Muy buen post! en lo personal creo q caigo en la categoría de “programador teórico” cuando me estoy iniciando en alguna nueva metodología o lenguaje, por el hecho de q surgen dudas sobre cuál es la mejor forma de hacer las cosas. Pero a medida q pasa el tiempo y ganamos experiencia, todo se va haciendo mucho más facil y el análisis previo se agiliza.
Saludos!
Fernando 7 febrero. 2011 - 22:32
Claro, yo estoy igual ahora por ejemplo que estoy estudiando Ruby. No he programado nada relevante todavía, pero vengo estudiando la teoría del lenguaje a fondo..
Después ya entramos en los otros perfiles cuando estamos mas cómodos con la tecnología.
Gracias por comentar, saludos!
Coder 7 febrero. 2011 - 13:53
Bueno el articulo, el primero creo que la traducción esta mal “Duct Tape” es Cinta de Ductos! , sabes la cinta con que se hace remiendo a todo, Salu2
Fernando 7 febrero. 2011 - 22:39
No, no está mal ¬¬
Ya lo notaron en comentarios previos y ahí está la explicación.
Saludos!
Bruno Azzinnari 7 febrero. 2011 - 15:18
Muy bueno! xD
Creo que caería en un 70% de perfeccionista-obsesivo-compulsivo y 30% teórico ^^’
Marco 7 febrero. 2011 - 17:19
Jajaja yo me identifico con varios..
Rmn 7 febrero. 2011 - 22:36
Fernando me desuscribí a este artículo cuatro veces pero me siguen llenando la casilla, por favor. Y perdón por el comentario fuera de lugar
Fernando 7 febrero. 2011 - 22:45
Es posible que anduviera mal el plugin de suscripción. Ya eliminé tu suscripción a mano, espero que no te llegue más :S
No hay problema por el comentario, si hubiera estado fuera de lugar, lo hubiera moderado 😛
¡Saludos y gracias por leer el blog!
Rosina 8 febrero. 2011 - 11:47
Creo que está mal escrito lo de la cinta che.
Jajajajaja.
Alex 11 febrero. 2011 - 23:49
Yo soy el programador a medias y mi amigo me lo dijo ¬¬ , lo bueno es que me di cuenta que él es el perfeccionista obsesivo compulsivo jaja
Luis Toscano 15 marzo. 2011 - 12:42
Intereseante bueno yo soy como un Programador Obsesivo Compulsivo pero no tanto puesto que dejo que me colaboren porque sino no se sale adelante 😀
y ese boton de enviar comentario esta muy escondido jejejeje colocalo abajo es mejor.
Fernando 19 marzo. 2011 - 21:36
Es cierto lo del botón de Enviar. Hace tiempo que había notado eso y estaba por cambiarlo pero no lo había hecho hasta ahora 😛
¡Saludos y gracias por comentar!
Danko 29 septiembre. 2011 - 21:29
Soy perfeccionista y lo reconozco, no puedo evitarlo. De hecho constantemente pienso que el código se puede mejorar, me cuesta mucho quedar satisfecho. :S .
Fernando 29 septiembre. 2011 - 21:58
Creo que está bien saber que siempre se puede mejorar el código. El problema está cuando perdemos el equilibrio entre tiempos de entrega o productividad y calidad del código.
Juan 11 julio. 2012 - 04:33
ja!
bart 25 febrero. 2015 - 12:30
Teórico, lo cual me hacia sentir mal hasta que un día alguien me iluminó y me dijo.
Analizar 5 formas de hacer 1 cosa, aunque termines eligiendo la 1ra que se te ocurrio, solo por haberlas analizado tenes la certeza de que no hubieses elegido ninguna de las otras.
Si hubieses hecho de una la 1ra, no tendrias ni idea y no podrias sostener el porque algo se hizo de determinada manera.
era solo para alentarte a que si te sentis en el perfil teorico, creo que no se ‘pierde’ tiempo. Es justo en la mitad de camino de ser un programador con 5 años a uno con 20.
Axel Lopez 3 junio. 2019 - 10:18
Todos los tipos de programadores tienen puntos buenos como malos y pienso que un buen programador tiene que tomar en cuenta un poco de cada uno porque en alguna etapa de tu carrera como programador as pasado por alguna de las etapas.