Antiguo y abandonado blog de Ricardo Galli :-(

Monday 5/2/2007

A los programadores no les gusta programar

Filed under: Hackerdom — gallir @ 0:38

Como visión casi opuesta a mi apunte de ayer, Jonathan ‘Wolf’ Rentzsch asegura que a los programadores no ls gusta programar sino resolver problemas [que a menudo significa programar algo].

Pues sí y no.

Sí porque a todo el mundo le encanta resolver problemas, a los fontaneros, ingenieros y abogados, sólo faltaría que sólo a los programadores e informáticos nos gustase resolver problemas.

No porque pretender que sólo a los programadores les gusta resolver problema es de una soberbia insoportable: “somos la hostia, más que los demás, a nosotros sí nos gusta resolver problemas –a pesar que creamos muchos más de los que solucionamos–”. Supongo que no se lo pensó demasiado al escribir el artículo.

Muchas veces resolver problemas de fontanería o electricidad (cualquiera que se haya quedado sin luz o con una cañería atascada un viernes a la tarde lo puede atestiguar) puede ser más gratificante que resolver el problema de un dirección IP que se representa mal en enteros de 32 bits porque el lenguaje no puede trabajar con enteros sin signos.

Antes de ir a la universidad ya tenía el título de “técnico mecánico-electricista”. Durante mis años de estudio hacía trabajillos de electricidad y mecánica –de hecho casi patenté una herramienta muy simple que diseñé, fabricaba y vendía a buen precio para ajustar más fácilmente la correa del aire acondicionado de un modelo de Ford– y era divertido y ganaba bastante buena pasta cuando apenas tenía 16 años. Podría haber seguido así y quizás hoy estaría mucho más holgado económicamente… y vaya si eso sí era resolver problemas reales. La gente encantada.

Pero no, por suerte a muchos también les gusta resolver otro tipo de “problemas”, aunque sean muchos menos acuciantes para el mundo real y bastantes más complicado: primero hay que crear el problema (tener la idea de un programa, aunque éste solucione a otro es un problema en sí mismo) y luego además hay que resolverlo en un lenguaje matemático, estricto y completamente abstracto.

Para la mayoría de la gente –incluso para la mayoría de auto proclamados programadores– eso es un auténtico coñazo. Supongo que es lo que diferencia entre un programador mal, normal y uno que se sale de la escala.

Además supongo que lo mismo que es aplicable a programadores es aplicable a cualquier rama de los oficios y profesiones, sobre todo aquellos que exigen un alto nivel de trabajo intelectual. Yo sería incapaz de escribir un libro decente, o de analizar en profundidad la nueva Ley de Propiedad Intelectual, o de hacer complejas fórmulas matemáticas para demostrar oscuros teoremas que sólo podrían ser apreciados y valorados dentro de 50 años. Hay gente para todo, y seguramente ellos también se divierten con lo que hacen.

17 Comments

  1. Completamente de acuerdo.

    Aunque cada vez me encuentro más de los que llamo “informáticos teóricos”: buenos informáticos que encuentran soluciones asombrosas a problemas no triviales, pero les resulta imposible sentarse delante del eclipse (por ejemplo). I-M-P-O-S-I-B-L-E. La única conclusión a la que llego es que para ellos la meta es encontrar la solución, e implementar es la parte tediosa de la misma. Vamos, que una vez encontrada la solución, implementar es algo trivial (mis cojones!!) que no les motiva. O eso o son “señoritos” y creen que programar es ensuciarse las manos con algo que no está a su altura.

    Comment by Diego — Monday 5/2/2007 @ 3:10

  2. Estoy de acuerdo. Programar es resolver problemas, como tantas otras ciencias.
    Sin embargo, para mí, otras ciencias, no tienen “eso”, que te deja una (o varias) noches sin dormir picando código. Por simple gusto no podría estar tanto tiempo demostrando teoremas matemáticos, a lo Ramanujan, y sin embargo sí puedo hacer código por placer.
    Y “eso”, supongo, no existe, sino que está en cada uno.
    Mi comentario no añade nada al artículo, pero a veces también es bueno comentar para decir que algo te parece bien, qué cojones.
    Gracias y salud!

    Comment by kota — Monday 5/2/2007 @ 3:12

  3. A los programadores no les gusta programar

    Análisis de la entrevista a Jonathan ?Wolf? Rentzsch donde asegura que a los programadores no les gusta programar sino resolver problemas y donde se dan motivos por lo que la frase es en parte cierta y en parte no lo es.

    Trackback by meneame.net — Monday 5/2/2007 @ 8:09

  4. No me creo eso que cuentas de la mecánica, y la correa del ventilador, no me cuadra con lo de las lámparas del otro día ;DDD

    Comment by Marcos Ramírez — Monday 5/2/2007 @ 8:35

  5. Como absoluto profano, un simple usuario, tengo la sensación que desde determinado ámbitos de la industria informática se actúa como en la industria farmacéutica: se inventa el medicamento y luego se busca la enfermedad. Tenemos la solución y luego buscamos el problema.

    Comment by mint — Monday 5/2/2007 @ 13:35

  6. A los programadores nos gusta crear, disfrutamos empezando un proyecto desde cero. Y son pocos los que prefieren hacer mantenimiento o resolver incidencias.

    Comment by Snatch — Monday 5/2/2007 @ 15:50

  7. Bueno, yo no soy informático, sino físico, y eso que comentas en mi rama es lo más normal. Me explico, hay (simplificando muchísimo, que nadie se me mosquee) dos tipos de físicos, teóricos y experimentales, y generalmente tienen sus trabajos bien diferenciados. En principio los teóricos son los que se encarga de resolver los “problemas”, pero cuando hay que demostrar en el laboratorio si la teoría es cierta, surgen otros “problemas” ante los que un teórico no sabría como reaccionar (dónde coloco el medidor, cómo evito los ruidos, etc.). Es evidente que a todos los físicos les gusta resolver problemas, sólo que al ser una ciencia tan amplia debes especializarte en qué tipos de problemas resolver. Como en el resto de profesiones. Y si sabes resolver distintos tipos de problemas, pues mucho mejor. Es como si un fontanero además sabe algo de albañilería y electricidad. Se forra. Por mi humilde experiencia programando veo muy parecido el saber dónde colocar el medidor con qué tipo de lenguaje usar, o el eliminar ruidos con “en que for me he equivocado para que me de violación de segmento”. Si eso que decís está pasando en informática, quizás no sea más que un síntoma de la madurez de la profesión, y por tanto de la especialización.

    Comment by moren — Monday 5/2/2007 @ 15:56

  8. Cabria decir que la parte consistente en resolver el problema, encontrar la solucion es parte del trabajo de los analistas, mientras que un vez encontrada la solucion les toca a los programadores “picar” código.
    Aunque la mayoria de las veces es la misma persona la que hace de analista y programador a la hora de resolver un problema.

    Comment by Drogba — Monday 5/2/2007 @ 16:20

  9. Resolver el problema es la parte ingenieril. Programar la solución puede ser a su vez un problema a resolver si el objetivo es conseguir un programa eficiente. Por tanto tenemos dos problemas que nos gusta resolver :)

    Comment by Tribe — Monday 5/2/2007 @ 16:20

  10. “Programmers Don’t Like to Code” : “A los programadores no les gusta Codificar”. Entendiendo codificar como plasmar un algoritmo en un lenguaje(/plataforma) de programación específico.
    Entiendo que habla de programador como la persona que:
    1.Encuentra la solución a un problema a través de una o varias (buenas) ideas.
    2.Detalla esa solución creando un algoritmo (ya sea sólo en su mente o ‘en papel’).
    3.Codifica ese algoritmo. (el picacódigo)
    Creo que algunos entienden de ése artículo, que lo único que le gusta al programador es el primer paso; yo entiendo que se refiere a los 2 primeros, y el último es el que no le gusta.
    _Aunque lo ideal sería seguir esos tres pasos en ese orden, encontrar la solución completa a la primera no es fácil (o imposible según lo complejo del problema y de su solución), además el tiempo apremia, así que se entrelazan y repiten continuamente.
    Cómo programador, en mi caso eso se cumple a veces (sobre todo si el lenguaje es muy ‘ratonero’, qué es cuando pasas de tener que resolver el problema inicial -que proviene de una necesidad humana- a resolver los problemas que te provoca el lenguaje de programación, las funciones, el sistema… -que proviene de una necesidad (o limitación) técnica-).
    Otras veces, realmente me siento a gusto programando, o digo codificando. Siempre que codificar no supone una pelea contra el lenguaje/plataforma, o que voy resolviendo parte del algoritmo durante la propia codificación.

    PD: no se si he desbarrado demasiado o si he dicho algo con sentido. pero no lo pienso repasar ahora, así que ahí queda :P Seguro que alguien inteligente o un poco avispao puede corregirme lo suficiente para dar a entender claramente lo que quizás no supe expresar.

    Comment by p3k — Monday 5/2/2007 @ 17:19

  11. Yo también les había puesto nombre: informáticos con pies en la tierra y los que no.
    Los informáticos teóricos ,evidentemente, tienen su razón de ser, pero de estos no hacen falta muchos.
    El problema viene de denostar “trabajar con la manos” , es decir, llevar a la práctica. Eso lo hace cualquiera (mis cojones II), así que eres un don nadie picateclas.

    Lástima, porque perdemos el impulso real en las empresas que necesitan soluciones “fáciles” matemáticamente y perfectas en su funcionamiento.

    Comment by m&m — Monday 5/2/2007 @ 17:29

  12. Sin diferenciar entre analistas y picacodigos, estoy de acuerdo con lo dicho por Kota en el comentario 2. Muchos programadores nos “picamos” con un problema inutil y que no tiene nada que ver con nuestro curro y somos capaces de tirarnos noches sin dormir hasta que lo resolvemos. Y con esto quiero decir que si de repente se nos ocurre por ejemplo “¿en cuantas líneas de código soy capaz de hacer un programa que resuelva sudokus?” (o cualquier otra parida) pues nos ponemos a ello y no paramos hasta que nos sale un programa y nos quedamos contentos, o si vemos a un compañero atascado nos sentamos en su mesa y hasta le quitamos el teclado de las manos. Eso si, en lo que respecta a nuestro trabajo y nuestros programas, ahi le den que no nos apetece nunca.

    Bueno, esta es mi opinión, y yo no soy programador sino de sistemas.

    Comment by Baco — Monday 5/2/2007 @ 19:28

  13. También de acuerdo

    Pensar el algoritmo es sumamente gratificante, incluso implementar la parte compleja de él, o programar cómo resolver un sudoku, etc
    Pero hacer programas de gestión, buscar errores, programar la interficie gráfica ES UN COÑAZO que con los años quema a todos los programadores.

    Yo me cansé durante una temporada y me fui a trabajar de albañil 6 meses : trabajo físico sin tener que pensar demasiado, después de tantos años comiéndome el coco fue gratificante !

    Al final volví porque era muy duro y me gusta usar la cabeza, pero no me arrepiento del KitKat.

    ¿ Alguien más ha hecho algo parecido ?

    Comment by Jordi — Monday 5/2/2007 @ 23:29

  14. Yo soy tecnico superior de administracion de sistemas informaticos y tecnico de seguridad de sistemas, y si una conclusion he podido sacar clara (y por ello tome la decision de dedicarme a la administracion en vez de a la programacion) es que la programacion es un quebradero de cabeza constante…

    los analistas tienen que tener la cabeza tan abstraida que roza la paranoia en algunos casos… y los “picacodigos” o “machacateclados” tienen en ocasiones la mente tan estructurada y cuadriculada que es dificil sacarlos de sus metodologias o ideas aunque lleves razon.

    Sin embargo a pesar de decir esto, tengo que decir que me gusta la programacion. eso si, la programacion me gusta como hobby, para mi, para programarme mis herramientas solo cuando las neceisto, o para programarme un juego porque me apetece. Pero no tengo ninguna intencion de programar nada para otras personas salvo que sea por iniciativa mia (y eso que se me da bien la programacion).

    De todos modos un programador siempre tiene su problema y el algoritmo en su cabeza, no es un trabajo que llegues a casa, desconectas, te pones a ver la tele y duermes tranquilo… un programador siempre tiene su cabeza dandole vueltas al problema, buscando esa incognita que hay que despejar, esa variable que deberia funcionar, y ese bucle que se salta sin motivo aparente… todo eso lo lleva siempre en la cabeza… es como si no pudiese “descansar” de su problema, y eso es lo que no me gusta de la programacion como trabajo.

    eso es todo ;)

    Comment by Gotxi — Tuesday 6/2/2007 @ 0:26

  15. A mi me gusta reolver problemas. Y después programar la solución para verlo en el monitor. Y si la solución “se mueve” mejor. Claro que…también me gusta construir artilugos analógicos. No creo que la informática sea el tema. Depende, según mi punto de vista, de las aptitudes y orientación de cada uno.

    Comment by Santa Klaus — Tuesday 6/2/2007 @ 8:21

  16. Yo soy analista de sistemas y programo. Creo que todo buen analista debe programar …. una cosa es la pizarra y otra el mundo fisico.
    Las limitaciones del hw y del lenguaje de programacion hacen que una idea pase de ser fenomenal a una tremenda atrocidad.
    Muchos informaticos detestan programar ya que una idea sobre una pizarra raramente te explota en la cara, mientras que si programas ya te estas
    mojando y haciendote responsable de un posible error.
    Muchas horas de trabajo, soluciones geniales, implementaciones magistrales, tareas supercomplejas, dormirte pensando en como solucionar un error
    extraterrestre, …. todo para que el usuario se queje de la apariencia de un icono.
    Es un trabajo bastante desagradecido y rara vez la balanza se equilibra.

    Comment by Nacho — Tuesday 6/2/2007 @ 9:18

  17. From problems to programs

    Avui he anat a la biblioteca de l’Anselm Turmeda a veure si trobava un llibre que ens havien recomanat per l’assignatura d’Estructures de la informació. Es el “Data structure and Algorithms” de AHO, HOPCROFT, ULLMAN.
    L&#8…

    Trackback by Bitacolitis Aguda — Tuesday 27/2/2007 @ 20:52

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress