Mi nombre es Fernando Briano y soy programador.

5 tipos de programadores

Otra 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).

Duct Tape

Duct Tape

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.

Perfection

Perfection

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.

Anti-programming

Anti-programming

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.

Half assed

Half assed

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í.

Theoretical

Theoretical

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?

Feed de comentarios | Url para Trackbacks | Suscribirse a los posts por correo electrónico

36 comentarios en este post

  1. Avatar Gabriel Fernández 5 Febrero. 2011 - 10:03 am Firefox 3.6.13 Ubuntu 64 bits

    Indudablemente el uno… jajajaja

  2. Avatar Skatox 5 Febrero. 2011 - 12:06 pm Safari 533.1 Android

    Buenisimo, e identifico con varios de ellos.

  3. Avatar Alejandro 5 Febrero. 2011 - 3:32 pm Google Chrome 8.0.552.237 Ubuntu 64 bits

    ^^, muy bueno. Conozco a varios programadores teóricos… 🙂

  4. Avatar Maxi 5 Febrero. 2011 - 4:03 pm Firefox 3.6.13 GNU/Linux

    Yo soy todos menos perfeccionista-obsesivo-compulsivo y anti-programación jaja.

  5. Avatar willicab 5 Febrero. 2011 - 5:37 pm Firefox 4.0b12pre GNU/Linux

    Yo caigo an todas, claro, dependiendo de la ocasión XD

  6. Avatar Frikisada 5 Febrero. 2011 - 6:14 pm Firefox 3.6.3 Ubuntu

    Buen post, pero creo que no eres consciente de que duct tape es cinta aislante, ya que pato es duck.

  7. Avatar Rmn 5 Febrero. 2011 - 6:34 pm Google Chrome 6.0.472.63 GNU/Linux

    Solamente aclararle al traductor que “Duct tape” es cinta para ductos (caños) y no “Duck tape” o cinta pato.

  8. Avatar Luciano Facchinelli 5 Febrero. 2011 - 7:28 pm Mozilla Compatible 5.0 Ubuntu

    Y bienvenidos a otro episodio de Fernando vs the trolls

    😛

    Buen post btw

  9. Avatar Sebastián Moreno 5 Febrero. 2011 - 7:35 pm Mozilla Compatible 5.0 GNU/Linux 64 bits

    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

  10. Avatar Rmn 5 Febrero. 2011 - 8:40 pm Firefox 4.0b10 Windows 7

    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!

    • Avatar Fernando 7 Febrero. 2011 - 10:30 pm GNU IceCat 3.6.13 GNU/Linux 64 bits

      ¡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!

  11. Avatar Daniel 6 Febrero. 2011 - 1:11 pm Google Chrome 8.0.552.237 Windows 7

    Muy bueno jejeje. Yo me identifico con un par de ellos.

  12. Avatar Guille 6 Febrero. 2011 - 6:25 pm Firefox 3.6.13 Windows Vista

    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!

    • Avatar Fernando 7 Febrero. 2011 - 10:32 pm GNU IceCat 3.6.13 GNU/Linux 64 bits

      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!

  13. Avatar Coder 7 Febrero. 2011 - 1:53 pm Google Chrome 8.0.552.237 Windows 7

    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

  14. Avatar Bruno Azzinnari 7 Febrero. 2011 - 3:18 pm Google Chrome 9.0.597.84 Windows 7

    Muy bueno! xD

    Creo que caería en un 70% de perfeccionista-obsesivo-compulsivo y 30% teórico ^^’

  15. Avatar Marco 7 Febrero. 2011 - 5:19 pm Internet Explorer 8.0 Windows 7

    Jajaja yo me identifico con varios..

  16. Avatar Rmn 7 Febrero. 2011 - 10:36 pm Google Chrome 6.0.472.63 GNU/Linux

    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

    • Avatar Fernando 7 Febrero. 2011 - 10:45 pm GNU IceCat 3.6.13 GNU/Linux 64 bits

      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!

  17. Avatar Rosina 8 Febrero. 2011 - 11:47 am Firefox 3.6.13 Ubuntu

    Creo que está mal escrito lo de la cinta che.

    Jajajajaja.

  18. Avatar Alex 11 Febrero. 2011 - 11:49 pm Google Chrome 9.0.597.94 Windows 7

    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

  19. Avatar Luis Toscano 15 Marzo. 2011 - 12:42 pm Google Chrome 10.0.648.133 Windows Vista

    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.

  20. Avatar Danko 29 Septiembre. 2011 - 9:29 pm Google Chrome 12.0.742.122 Windows XP

    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 .

  21. Avatar Juan 11 Julio. 2012 - 4:33 am Google Chrome 22.0.1202.0 Mac OS

    ja!

  22. Avatar bart 25 Febrero. 2015 - 12:30 pm Google Chrome 40.0.2214.115 Windows NT

    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.

  1. Unknown Tweets that mention 5 tipos de programadores | Picando Código -- Topsy.com | 5 Febrero. 2011 - 9:20 am

    […] This post was mentioned on Twitter by Kantor, Fernando. Fernando said: Post: 5 tipos de programadores http://ur1.ca/3480v […]

  2. Meneame 5 tipos de programadores | 5 Febrero. 2011 - 3:31 pm

    […] 5 tipos de programadores   picandocodigo.net/2011/5-tipos-de-programadores/  por likiniano hace 16 segundos […]

  3. WordPress Bitácora Soluciones MKA » Blog Archive » 5 tipos de programadores – htt… | 7 Febrero. 2011 - 4:45 pm

    […] tipos de programadores – http://picandocodigo.net/2011/5-tipos-de-programadores/ Posted in Soluciones MKA | No Comments » Leave a […]

  4. WordPress Los diferentes tipos de programadores | Punto Geek | 5 Febrero. 2013 - 12:00 pm

    […] tipos de programadores en PicandoCódigo. Original por Steven […]

Dejar un comentario

Toasty!