El problema es poner a un ing. inf. a programar, por mucho que a algunos les pese, es como poner a un arquitecto a pegar ladrillos.
Sí y no. He visto verdaderas aberraciones, como hacer búsquedas en una tabla hash recorriendo todos los elementos (además, con un bucle for y guardando luego la posición en lugar de usar un while), o ******s que mataban procesos "aleatoriamente" con un "ps | grep" mal hecho (con un "kill -9" para más inri), o integraciones de C++ con Oracle donde se hacían sistemáticamente hard parses a la base de datos, y luego todo el mundo pregúntandose por qué el sistema tenía tan mal rendimiento (ejemplo típico de cómo no se deben hacer consultas a una BBDD Oracle).
Creo que estas cosas pasan por tener equipos de gente mal formada, mal pagada, y muy poco o nada motivada. Poca cultura de hacer las cosas bien y ser "técnicamente bueno". Es decir, poco ingeniero técnicamente bueno (o con vocación de serlo) tirando código o, al menos, supervisando lo que hacen los demás. Me cansé de pelear día sí día también con este tipo de actitudes y situaciones. A la larga, no me compensaban tantos disgustos, y abandoné el trabajo técnico.
Respecto a lo otro que comentáis sobre código automático/no automático. Evidentemente, está muy bien que haya herramientas de generación automática de código, y de hecho en diseño de hardware son muy habituales y simplifican mucho las cosas. A nadie se le ocurre hoy en día ponerse a picar con el bloc de notas (aunque sigue habiéndo muchos fanáticos del vi), para algo existen los entornos de desarrollo.
Lo que quiero decir es que las herramientas de generación de código, los compiladores y demás no han caído del cielo, alguien los ha construido, y que si una persona tiene una vocación técnica muy fuerte debe buscar una empresa donde desarrolle "herramientas" o "productos" y
huir de las empresas de servicios informáticos/integradores de sistemas.
Por suerte o por desgracia, en España no abundan las empresas de productos sino las de servicios. Esto no es algo propio de la informática, pasa en muchísimos sectores y de hecho SNB (tan mencionado en este foro) lo ha dicho muchas veces: nuestra economía es intensiva en mano de obra y está muy poco capitalizada.
Mi consejo a un informático recién titulado o que esté cursando la carrera es que valore si su vocación está en el trabajo técnico o en ir a reuniones con clientes y redactar documentos de word. Si tiene un perfil técnico muy fuerte y le gusta programar (no hablo ya de diseñar hardware, que puede ser algo más propio de telecos), no debe entrar en empresas tipo coritel, accenture y demás que venden servicios e integraciones de productos de terceros, sino buscar una empresa donde lo que vaya a hacer sea
construir un producto. Es la diferencia entre ser "el que hace implantaciones de SAP" y "el que trabaja en SAP desarrollando el propio SAP". Claro que para hacer eso, quizás haya que emigrar. En España hay más bien poco (no diré que nada, pero sí poco).
Una crack programando no tiene mucho recorrido en la consultora típica española (sea cárnica o de las "glamurosas" que subcontratan a las cárnicas) porque en el largo plazo lo que se busca es la capacidad de interactuar con el cliente, no la excelencia técnica. Adaptar interfaces e implantar productos son cosas que recién titulados o gente con poca experiencia (o indios o argentinos deslocalizados) pueden hacer relativamente bien a bajo coste. Hacer ingeniería de productos sofisticados (como el gestor de base de datos Oracle o un sistema de control de versiones)... es harina de otro costal.
Como en nuestras insignes facultades no se explica cómo funciona esta industria ni qué opciones hay, luego ocurre lo inevitable: gente técnicamente muy buena termina muy quemada, frustrada y con sueldos bajos, porque esto nadie se lo explicó.
Yo tiré por otro camino, en parte por no haber sabido ver esto en su momento. Espero que mi experiencia y este post le puedan servir a alguien.
Disculpad el tocho-historieta del abuelo y un saludo.