Programador, no productor de código

Leyendo una entrada antigua de The Farm he encontrado un ensayo de Dijkstra de 1995 titulado “Why American Computing Science Seems Incurable” (por qué la ciencia de la computación americana parece incurable) en el que comenta, entre otras cosas, el tema sobre el que hablé hace un par de días.

Citando a The Farm:

Dijsktra argumenta que la presión de la industria está causando que la definición de buen programador esté cambiando de alguien que es “capaz de diseñar programas mas efectivos y fiables” y que sabe “como hacerlo eficientemente” a alguien que piensa en “‘la aceptación por parte de la industria’ como un criterio de calidad” (…) El programar, dice Dijkstra se está alejando cada vez mas de una rama de las matemáticas aplicadas para convertirse en una simple cuestión de mantener la industria de la alta tecnología a flote, un problema agravado por “la falta total de fé en el sistema de educación y una arraigada desconfianza hacia los intelectuales.”

Como ya dije, no es lo mismo poder programar que saber programar, igual que no es lo mismo poder escribir que ser escritor.

Comentarios
  1. Dijkstra es un crack, este si que es un matemático-informático-programador de los buenos y no otros…

    Responder

  2. Pues a mi el hombre este no me cae… imagino que manía que le pilla uno estudiando matemática discreta 🙁

    Yo no estoy del todo de acuerdo con tus apreciaciones sobre un posible colegio. Es cierto que poder programar no es saber programar… pero hasta donde yo sé, un ingeniero técnico en gestión (ni te hablo de sistemas, porque no tengo datos) ni mucho menos sabe programar cuando acaba la carrera… quizás puede programar.

    Soy más bien de esas personas que piensa que para cada cosa, lo que es necesario. Un ingeniero técnico, y ya un ingeniero superior te cuento, debe dedicarse a lo que su nivel le permite. Yo como analista/programador no puedo enfrentarme a los sistemas de información que puede manejar un analista (con experiencia, cosa que no te da la carrera :D) o un ingeniero del software.

    Responder

  3. hombre, juanjo… es que yo no quiero que obliguen a las empresas a contratar ingenieros superiores o técnicos en cualquier cosa que tenga que ver con la informatica aunque sea escribir cartas en word. que hagan un reparto de competencias justo y cada cual se dedique a lo suyo

    Responder

  4. Yo soy bastante pureta a la hora de programar, trato de seguir en la medida de lo posible los paradigmas de la programacion orientada a objetos, incluso cuando programo ActionScript :uch: pero un amigo mio dice que “lo perfecto es enemigo de lo bueno”. La industria de la informatica tiene que sobrevivir a base de resultados. Mientras programar no sea considerado un arte y los listados de codigo fuente se expongan en los museos, creo que hay que ser prácticos y hacer herramientas adecuadas y solidas con el tiempo y los medios que se nos proporcionan para ello. Lo demas es arte y si tienes un mecenas cojonudo, pero no es mi caso.
    🙄

    Responder

  5. El simil de escritores es buenisimo. Mas de lo que crees. Efectivamente todo el que saber escribir no escribe libros. Pero eso si, de igual forma que los escritores no tienen colegio y yo siempre veo libros en las librerias sigo sin verle el sentido al colegio de informaticos, ni al de pintores, ni al de fotografos, ni el de escultores…..

    Responder

  6. lo siento pero en ese sentido el simil no se adapta.
    la diferencia está en que esas profesiones que citas no están integradas dentro de una empresa, son ‘autónomos’. si a mi primo le da ahora por leer un libro sobre programación en Java, y solo con eso ponerse a escribir programas por su cuenta, si valdría el simil. si alguien que no sabe pintar se dedica a pintar lo peor que puede pasar es que a la gente no le guste sus cuadros y no los compre. lo peor que le podría pasar a mi primo es que a la gente no le guste sus programas y no los utilicen

    pero lo que discutimos se ajustaría mas a un trabajo de diseñador, por ejemplo. no tendría sentido el que contrataran a el hombre que no sabía pintar para hacer las campañas de publicidad de una gran empresa, porque así perjudicaría a la empresa. y en el caso de la informática contratar al que no sabía programar no solo perjudicaría a la empresa si no a sus clientes porque baja el nivel de calidad y a la larga el criterio de calidad

    si quieres pintar como afición, estas en tu derecho. igual que si quieres programar como afición estas en tu derecho. pero lo que no es de recibo es que se contrate un aficionado en una empresa y que los verdaderos profesionales le tengan que sacar las castañas del fuego

    Responder

  7. Define verdaderos profesionales. Verdaderos profesionales son los que estan o pueden estar colegiados?. Ay Raul….

    Responder

  8. no me refiero solo a los ingenieros. ya dije en la otra entrada que la solución ideal seria que se pudieran colegiar todos los que de verdad tuvieran los conocimientos necesarios.

    pero ‘los que de verdad tuvieran los conocimientos necesarios’ deja fuera a un 90% de los que no son ingenieros en informática (o fps de informática en algunos puestos). un biólogo no puede ser un buen programador (y desde luego no puede ser un buen ingeniero, que me da por encaminarlo todo al tema ‘programador’ ) por haber leido un par de libros. no se puede comparar con un tio que lleva cinco años estudiando.

    no se puede llamar programador a un tio que si le hablas de singleton cree que es un tipo de música de los años 30, hombre, por dios.

    el problema es que se está adaptando el criterio de calidad a la incompetencia del sector en lugar de mejorar el sector para tener un nivel de calidad medianamente aceptable

    similar a lo que pasaría si dejaran a cualquier aficionado ponerse a diseñar puentes. que se cae algún puente? bueno, es lo normal, no pasa nada. así que el criterio de calidad se sitúa en niveles vergonzosos y si una aplicación del que su coste de desarrollo ha sido de millones de pesetas falla mas que una escopeta de feria tampoco pasa nada.

    Responder

  9. resumiendo, para el que no quiera leer mucho 😛

    me gustaria que existeria un colegio de Informática, no un colegio de ingenieros informáticos. y que se asegurara de que cualquier inutil por haber leido un libro de ‘aprenda x en 24 horas’ no le pueda quitar el puesto a un tio que de verdad sabe lo que hace, sea ingeniero, fp, u horticultor.

    pero logicamente, como cada cual vela por sus intereses, si no es posible, porque el primer problema sería como medir esos conocimientos, preferiría un colegio para ingenieros informáticos aunque sea injusto con algunos antes que no tener nada

    Responder

  10. Sip, 100% de acuerdo 😉
    Aunque soy un “Aprenda x en 24 horas” xD

    PD: Normal, tengo 15 años xD

    Responder

  11. No creo que la solucion a la mejora de calidad sea el colegio de ingenieros informaticos. Simplemente porque se parte de un postulado totalmente erroneo. Un ingeniero informatico aporta la misma calidad que uno que no lo es. Y punto. Tal vez tu manera de ser y tu trayectoria estudio-profesional delimite en exceso tus premisas.

    Creo que un ingeniero que programa “con calidad” debe leer lo mismo o participar en el mismo master que un NO-ingeniero que quiera programar “con calidad”. La base teorico-practica a la larga acaba siendo la misma en ambos perfiles. Cuando el ingeniero no habilita esa capacidad porque se cree ingeniero, simplemente, se dan situaciones donde el no-ingeniero destaca sobre el ingeniero. Pero insisto, si ambos desean hacerlo “con calidad” terminaran en el mismo punto. Eso si, uno con papel (titulo) de antemano y otro sin el.
    Si este postulado es el cierto, porque dejar “verdaderos profesionales” fuera?. Tal vez porque los del papel no son capaces de comprender al resto??. Envidias? Dinero?.
    Evidentemente el “filtro” a la calidad en el desarrollo informatico no esta en los propios informaticos. El filtro lo marca el interesado. Y al interesado lo pueden engañar como en muchas otras areas.

    Del interesado depende si danone es mejor de yoplait (o como se escriba), porque comer eso y no eso otro etc etc.
    No hay un colegio de yoghurts ni de alimentacion.
    Ojala puedieras comprenderlo. Tal vez la experiencia con algunas personas o el vivir una trayectoria distinta te ayude.
    Que colegio me dice a mi si Microsoft tienes mas calidad que Apple o Apple que Microsoft?.
    El coste para la sociedad, o el desarrollo de la misma, que acarrea dejar “verdaderos profesionales” fuera es mas alto de lo que crees. O esa sensacion me da?.
    Y en la tele con todos los famosillos, que van ha hacer los famosos de verdad, crear un colegio de famoseo? de presentadores?.

    Me molaria invitarte a un cafe hombre….. 😉

    Responder

  12. que un ingeniero aporta la misma calidad que alguien que no lo es? 😯

    ejemplo. trabajas en rrhh y tienes dos candidatos a un puesto en el que se pide conocimientos de métrica versión 3, por poner un ejemplo. mientras el primer candidato ha tenido una asignatura en la que estudiaban métrica 3 y ha tenido que pasar un examen el segundo candidato afirma que es tan bueno como el ingeniero, pero no puede demostrarlo. ¿a quién contratamos?

    no me digas que un ingeniero aporta la misma calidad que alguien que no tenga ningún titulo porque eso no solo es completamente falso, si no que es un desprecio a cualquiera que halla estudiado o esté estudiando una ingeniería. si las ingenierias son tan sencillas y no se aprende nada en la carrera, la solución es sencilla. simplemente que todo el mundo haga la carrera de ingenieria informatica o la de gestion, o la de sistemas, o el módulo de fp, porque son tan sencillos que cualquiera las va a sacar con una matricula de honor aunque se pase los 5 años jugando al mus

    una cosa es que alguien que no tenga la carrera pueda tener el mismo nivel que alguien que si la tenga, nada mas salir de la carrera o en el futuro porque el ingeniero no se preocupe de aprender. otra muy distinta es que todo el mundo tenga la misma calidad o los mismos conocimientos que un ingeniero nada mas empezar por obra del espiritu santo

    enga, un java au lait? xD

    Responder

  13. jejejjejejeje….

    Es una lastima que no te lo haya sabido transmitir adecuadamente. Mi recomendacion es que vuelvas a leer el post de arriba por si consigues ver algo mas, porque lo hay. Aunque asumo mi culpa por lo dificil que lo pongo escribiendo.

    Bien, en cualquier caso, ha sido un placer….

    😛

    Responder

  14. relee mi comentario porque esta todo respondido ahi.

    1er párrafo. dices que es lo mismo un ingeniero que uno que no tenga título. respondido. claro que no lo es. ya puede venir mi vecino a decir que sabe física cuantica que si no tiene ninguna prueba (como el haber pasado un examen de fisica cuantica) yo no me lo creo. un 90% de los que se presentan sin credenciales a cualquier puesto de trabajo es porque no tienen esos conocimientos. igual que al pedir una secretaria le pedirán un titulo como que sabe escribir a maquina aqui tb hace falta acreditar los conocimientos. no vayamos de listos por la vida y queramos tener el mismo trabajo que otros que se han pasado 5 años puteados para poder acreditarlo. a mi tb me gustaria ejercer de fisioterapeuta que dicen que se cobra bastante sin tener que sacar una acreditacion de que tengo los conocimientos minimos necesarios, pero como es logico, no puedo. lo que pasa es que metido en la informatica hay mucho listo que no tiene ni puta idea y cuando ve que los fisios (los informaticos en este caso) le quieren cerrar el chiringuito, se queja. logico, yo tb me quejaria de los fisios y diria que se tanto como los fisios y mucho mas que alguno de ellos. palabreria en un 90% de los casos. si eso fuera verdad a mi no me costaria nada sacar fisioterapia ni a los cretinos que se dedican a jugar con punteros nulos sacarse la carrera o un titulo similar

    2º párrafo. dices que dos programadores de calidad acabarán con los mismos conocimientos tengan o no el título. cierto, pero poco tiene que ver con el tema. por cada uno de los que no tiene carrera que de verdad se preocupa por educarse hay 20 que no lo hacen y estan ahi solo para chupar del bote. y no me vale el decir que hay ingenieros que no se van a preocupar por formarse una vez que salgan de la carrera. los habra, pero muchisimo menos que los que no han pasado por la carrera o modulo o lo que sea. porque de principio, ya se han preocupado bastante mas de educarse que los que se han metido directamente en el mundo laboral sin pasar por estudios previos

    3er y ultimo parrafo. la comparacion del danone y el yoplait :uch: si un 90% de los yoplait fueran venenosos logicamente el cliente no compraria yoplait, y en el caso de que los quisiera comprar porque no estuviera informado, habria que hacer algo para que no se envenara. por ultimo, lo de el coste de echar a verdaderos profesionales del mercado… si te das cuenta ahora muchisimos informaticos muy preparados (con y sin el titulo) trabajando en otras cosas porque hay un quimico haciendo su trabajo (mal, para mas inri) asi que no manipulemos, que aqui las victimas no son los que se aprovechan del intrusismo. yo solo quiero lo que es justo, y eso es que el que mas se ha preparado y el que mas conocimientos tiene sea el que se lleve el puesto (tenga titulo o no, que me parece que no me has entendido aunque ya lo he dicho mas de una vez)

    Responder

  15. Perdona Raul….

    Yo en el primer parrafo no digo eso. Me remito al parrafo.

    En el segundo parrafo partes de un postulado estadistico que no es comprobable. Personalmente me parece inadmisible, no me sirve (a mi). Yo no se cuantos ingenieros hacen el vago de igual forma que tu no sabes cuantos no-ingenieros trabajan a tope. PAra cuando un ingeniero termina de estudiar un no-ingeniero puede llevar 7 años entre gente de mucha experiencia aprendiendo sin parar sobre todo. Este ejemplo no es bueno, pero ofrece una pequeña alternativa a una situacion unica que tu planteas.

    Tu tercer parrafo denota una prioridad del titulo por encima de la persona. Nunca defenderé eso, simplemente porque ante todo soy persona, tenga titulo o no.
    Partiendo de lo que te leo (de tus ideas iniciales), comprendo tu linea de pensamiento y tus conclusiones. Pero no creo que sean correctas y por supuesto no las comparto. Pero insisto, las puedo entender. Lastima no tengas mas angulos de vision.

    La intervencion en este post es por obligacion propia. Personalmente no creo en los colegios como solucion al problema que presentas. En cierto modo, me es indiferente tu manera de pensar pero creo en mi intervencion como alternativa a lo que dices para que los lectores entiendan ambos lados y no solo un unico, comprensible pero erroneo punto de vista.

    Por contra, de todo hay que llevarse algo positivo, tenemos un muy buen punto en comun ambos: lo importante es aprender sin parar 😉

    Responder

  16. 😕

    Pido mil perdones…. el parrafo que consideré tercero corresponde a un comentario anterior y no al ultimo. Es lo que tiene ocultar la ventana cuando viene el jefe.

    Se me perdona? 🙄

    Responder

  17. te remito al artículo de Dijkstra

    Dijsktra argumenta que la presión de la industria está causando que la definición de buen programador esté cambiando de alguien que es “capaz de diseñar programas mas efectivos y fiables” y que sabe “como hacerlo eficientemente” a alguien que piensa en “‘la aceptación por parte de la industria’ como un criterio de calidad” (…) El programar, dice Dijkstra se está alejando cada vez mas de una rama de las matemáticas aplicadas para convertirse en una simple cuestión de mantener la industria de la alta tecnología a flote, un problema agravado por “la falta total de fé en el sistema de educación y una arraigada desconfianza hacia los intelectuales.”

    me da igual que el no ingeniero conozca cuarenta lenguajes que doscientos. si solo ha estudiado eso no tiene las bases mínimas. conoce la herramienta (la sintaxis de un lenguaje) pero no sabe pensar ni resolver problemas como lo hace un ingeniero.

    basta con ver la definición de ingeniería del software: la disciplina que intenta aplicar los conceptos, términos y técnicas de la ingeniería al proceso de desarrollo de software. el desarrollo de software es un proceso de ingeniería. indiscutible a menos que no estés de acuerdo con la mitad de los padres fundadores de la informática y el 100% de los de la ingeniería del software. en cuyo caso simplemente desisto.

    lo digo yo, lo dice Dijkstra, Booch, Rumbaugh y Jacobson y lo dice el día a día. pero si te empeñas en seguir viendo todo el sector como un trabajo de cadena de montaje y no como una ingeniería es normal que llegues a las conclusiones a las que llegas, que cualquiera no especializado puede trabajar como informático

    y antes de que tergiverses, porque ya has llegado a esa conclusión tu solo aunque me he cuidado de añadir la coletilla ‘tenga o no título’ cada dos líneas escritas; no estoy diciendo que sea necesario un título de ingeniero para trabajar como programador o como analista o diseñador. lo que digo es que se necesita conocimientos de ingeniería y no simplemente saber programar y eso si lo soluciona un colegio. lee las bases de la ATI como ejemplo:

    2.1. ATI es una Asociación de carácter abierto, competente y competitivo

    Según su espíritu fundacional, ATI es una asociación “abierta a todos los informáticos”, que tiene como meta “ser útil a sus socios siendo a la vez útil a la sociedad en la que está inserta”. El artículo 1.2 de sus Estatutos dice literalmente que “desde su fundación en 1967 (ATI) ha estado abierta a todas las personas que, en cualquier nivel profesional y sector productivo, desarrollan su actividad como técnicos en el campo de las Tecnologías de la Información”. En ese mismo artículo se define como el segundo de los principios básicos de ATI la “promoción y defensa activa de los intereses de sus socios en el ámbito del desarrollo de su actividad técnica, evitando comportamientos excluyentes y corporativistas”. El artículo 2.1.2.a. dice, con esa práctica de 32 años y con la intención de asegurar que los socios de ATI son “profesionales informáticos”, que “podrán ser Socios de Número quienes satisfagan al menos uno de los requisitos siguientes:

    • Poseer una experiencia técnico-profesional documentalmente acreditable en el campo de las Tecnologías de la Información durante al menos tres años, que se reducirán a dos si el solicitante posee un título de grado superior o medio otorgado por un centro público o privado oficialmente reconocido.
    • Poseer un título académico de grado superior o medio relacionado con las Tecnologías de la Información, otorgado por un centro público o privado oficialmente reconocido.
    • Haber desarrollado estudios, trabajos o investigaciones relevantes en el campo de las Tecnologías de la Información, acreditables documentalmente.”

    no se donde le ves la pega a un colegio porque los únicos que no podrían estar interesados en un colegio son los inútiles a los que se les pegaría la patada del sector. un colegio no es sinónimo de corporativismo, caciquismo y prioridad para “los que tienen el papelito”. es simple justicia social. pero por supuesto respeto todas tus ideas aunque todas estén equivocadas

    Responder

  18. micmic

    Je je, me gustaría veos trabajando en banca…
    “El programar, dice Dijkstra se está alejando cada vez mas de una rama de las matemáticas aplicadas para convertirse en una simple cuestión de mantener la industria de la alta tecnología a flote”

    Traducido: ¿funciona? Sí: no lo toques; No: arreglalo en 1 hora, estima el impacto del error y si se lo podemos encargar a alguien.

    Triste: (: x

    Responder

  19. Mimic Dijkstra parte de las matematicas porque entre otros matices no era informatico sino matematico o fisico no recuerdo… vaya!….

    Bueno Raul…. expuestos nuestro argumentos y antes de que siga subiendo el tono 😉 yo me doy por satisfecho. Lei lo que tenia que leer y dije lo que tenia que decir….

    En cualquier caso, nada, que sepas que te leo :D. Cuanto menos es punto de agradecimiento por tu weblog…..

    Por supuesto, sino me quieres invitar al cafe… pasate por levante que yo te invitaré. Y hablamos…..

    Responder

  20. Kwin

    Dijkstra era matemático. La informática es una rama de las matemáticas. Y si no tenemos esto claro a estas alturas…

    Estoy totalmente a favor de un colegio de informáticos. Y estoy convencida de que las carreras de ingeniería informática (tanto la superior como las técnicas) tienen un planteamiento equivocado, no enseñan lo que tienen que enseñar, y deberían estar más especializadas (ingeniería del software por un lado, sistemas por otro, hardware por otro, las redes se las dejaría probablemente a los telecos… aunque todos tuvieran que saber un poco de todo). Creo que habría que hacer una revisión importante de los planes de estudios. En Ingeniería Técnica en informática de Sistemas lo que menos se estudia (al menos en mi universidad) son Sistemas, por ejemplo.
    Yo tampoco sé cómo haría los planes de estudios, pero sí sé que no son útiles como están ahora.
    Ah, y trabajo como “programador” (aunque programo poco, la verdad) en una consultora (sin comentarios), y la mayoría de mis compañeros son biólogos, o químicos, que no saben qué están haciendo, sólo saben picar en el lenguaje que aprendieron en la beca de 2 meses que se da a los candidatos (a mí me “enseñaron” C…).
    Respecto a la gente de otras carreras, por ejemplo un matemático probablemente será un buen programador / diseñador de algoritmos (al fin y al cabo, un algoritmo es un proceso matemático para solucionar un problema), pero no tiene nada que ver con el área de sistemas. Un físico puede dedicarse al tema del hardware o las redes, pero no tendrá la mente tan preparada para abstraer un algoritmo… en general, la gente que ha estudiado para algo concreto estará más preparada para hacer ese trabajo que la gente que no lo ha estudiado, y eso es de cajón. Si no, ¿para qué sirven los estudios?

    Responder

  21. amén kwin
    sobre el plan de estudios… pues no se como ira la cosa en otras universidades pero en la mia para la superior los tres primeros años se da un poco de todo y en los 2 ultimos años se puede uno especializar en ingenieria del software, inteligencia artificial o sistemas. no me desagrada demasiado como lo tienen montado

    Responder

  22. […] 29 Noviembre 2007 por Ricardo Pluss Fuente: mundogeek […]

    Responder

  23. Electra

    Siento decirte QuasaR que tu falta de cultura te impide comprender a las personas que se encuentran encima de tí. No entenderías nada por más razones lógicas que te dieran, es una lastima.

    Responder

  24. deivid

    Yo creo que está un poco idealizado el concepto de ingeniero, y en concreto creo que a los informáticos se nos queda un poco grande la palabra. La empresa es sabia, y sabe discriminar a la gente productiva de la que no lo es. Y desgraciadamente, para ser hoy productivo en este mundillo, creo que no hace falta ser ingeniero…

    Responder

Deja un comentario