Verdades y mentiras sobre un Ingeniero en Informática

Me voy a llevar palos. Sé que me los voy a llevar. Pero lo voy a decir, jamás me ha echado para atrás por miedo a las posibles críticas que pudiera recibir. Lo importante es que hablen de uno, aunque sea mal, ¿no? Bueno, tampoco es cuestión de montar escándalos para hacerse uno famoso… eso se lo dejamos para los que salen en la prensa rosa, sean ellos quienes sean.

Esto me viene por algunos comentarios que he oído a informáticos y no informáticos: que si somos tal o cual, a veces cosas buenas, a veces cosas malas y otras veces cosas que simplemente no son ciertas. Que conste que esto es una opinión muy personal, la opinión personal de un Ingeniero en Informática que no lleva más de 9 años metido en este mundillo y 4 años licenciado como Ingeniero Superior en Informática.

Qué (es) debería ser un Ingeniero en Informática

  • El profesional más indicado para realizar labores relacionadas con la informática. Esto parece de perogrullo, pero creo que es necesario dejarlo bien claro. No quiero ofender a ingenieros de otras especialidades, pero es que esto es así. No estoy hablando (únicamente) de programación. También me refiero a gestión de proyectos, análisis, diseño, testing y por supuesto programación. Durante la carrera hemos tenido un montón de asignaturas que cubren todo el desarrollo del software como para dejar estas importantes tareas en manos menos formadas o inexpertas. Por el mismo motivo, un ingeniero informático no puede estudiar señales, transmisión de datos o estudiar el rendimiento de un motor.
  • El más indicado para programar. Insisto: la persona más indicada para programar es un ingeniero informático. Durante su formación habrá estudiado programación a fondo en varias asignaturas, por lo tanto tiene la base más completa. Pero no nos equivoquemos: un recién licenciado en informática apenas sabe programar bien. En ocasiones deberá olvidar muchas cosas que le enseñaron durante la carrera y re-aprender cosas. Una de las primeras cosas que deducimos cuando nos licenciamos es que la programación no es para ingenieros informáticos. Despreciamos esa labor porque pensamos que es una tarea de bajo nivel. Nada más lejos de la realidad: la programación es una actividad intelectual compleja y que requiere de práctica, experiencia y una buena base.
  • Un ingeniero que está en continuo aprendizaje y proceso de mejora profesional. El que piense que una vez tiene el título en la mano ya puede dedicarse a trabajar, ganar dinero y tirarse en el sofá cuando llegue a casa lo tiene claro. Sabemos cómo cambia el mundo de las tecnologías, y la obsolescencia es nuestro mayor enemigo. Aprende nuevos lenguajes de programación, adquiere nuevas técnicas, patrones, estrategias… y sobre todo: lee mucho. Aprende de los que más saben de esto: Martin Fowler, Robert Martin, Kent Beck, Steve McConnell… por nombrar unos pocos.
  • Una persona que habla y escribe correctamente. Como cualquier persona que ame su tierra y su lengua. Ningún licenciado superior debería mirarse al espejo cada mañana sabiendo que comete faltas de ortografía al escribir.
  • Una persona que domina perfectamente el inglés (al menos). Nuestro campo de trabajo está principalmente liderado por el inglés. Es nuestro lenguaje de modelado y programación más importante. Debemos ser capaces de dominarlo por lo menos a nivel de negocio y técnico.
  • Una persona que está al día de todo lo que se mueve en su mundo, a rasgos generales. En menor medida, es importante que un ingeniero en informática sepa lo que es Android, Google+, saber la diferencia entre SOAP y REST o conocer qué es Objective-C, aunque no sepa programar en dicho lenguaje.
  • Alguien que sabe venderse de cara al público, que sabe sacar partido de su carrera profesional. No estoy hablando de mentir, hablo de saber explicar las capacidades de uno mismo. Muchas veces los ingenieros no sabemos contar nuestra experiencia laboral en una entrevista, nos apocamos con una humildad que no debería ser tal: uno debe estar orgulloso del camino recorrido hasta la fecha, y si domina una tecnología, técnica o habilidad debería decirlo.

Qué NO es un Ingeniero en Informática

  • Una persona culta. Para mí una persona culta es un médico, un físico, un historiador, un escritor o un psicólogo. Si uno quiere ser culto, debe leer libros que NO estén relacionados con la informática. No nos creamos sabios: no lo somos. Somos ingenieros: eso significa que aplicamos el ingenio, la perspicacia y la inteligencia para resolver puzzles, dar soluciones a problemas. Eso significa que tenemos una mente creativa, analítica y capaz de resolver problemas. Pero eso no significa que seamos cultos. Una persona culta sabe de cosas de la vida, cosas que le ayudan a comprender el mundo que le rodea. La informática no es un fin, amigos, es un medio, y como tal no es un Campo del Saber. Ni mucho menos. Esto lo quería dejar bien claro para aquellos informáticos que se creen más de lo que son. Un poco de humildad, por favor.
  • El chico que arregla ordenadores. Eso es un técnico, que seguramente sepa mucho más de eso que nosotros. Un ingeniero en informática tiene conocimientos ingenieriles sobre producción de software: análisis, diseño, implementación, pruebas, mantenimiento, gestión, etc. Pedir a un ingeniero en informática que arregle tu ordenador es como pedirle a un ingeniero de la escudería Ferrari de F1 que te cambie el aceite de tu Ford Fiesta. Puede saber hacerlo o no, por cuestiones de hobbys y como reto personal, pero en todo caso no tiene por qué saberlo hacer y seguro que un mecánico te lo hará mejor.
  • Alguien que hace su trabajo gratis. Puesto que cuando haces una consulta a un abogado te cobra una pasta, cuando llamas al fontanero te cobra una pasta, a un cerrajero lo mismo, no digamos de electricistas, pequeños “apaños”, arreglos y chapuzas varias… un informático no hace su trabajo gratis, sea de la índole que sea. Ante todo es un profesional, y como profesional que es cobra por su trabajo. No hacerlo es un insulto a la profesión y rebajarse uno mismo a la posición de amateur. Yo no puedo cobrarle a alguien por cambiar una estantería, porque no me dedico a ello y el que me lo pida sabe que puedo hacerlo bien o mal, con sus consecuencias. Pero sí puedo pedirle que me pague por arreglarle su ordenador o hacerle un programa de tal o cual naturaleza, configurarle su router, su red o su Linux o desbloquearle lo que sea.

Un último apunte

Si eres ingeniero en informática y no lo sabes ya, te lo cuento: no todos los problemas a los que te enfrentarás en tu vida laboral serán satisfactorios, productivos y de los cuales aprenderás algo. En muchas ocasiones te enfrentarás a problemas estúpidos, complicados de solucionar y que cuando consigas, por fin, solucionarlos (horas, días, semanas después), pensarás: “he estado perdiendo el tiempo con algo que no me aporta absolutamente nada productivo“. Ejemplo: problemas de dependencias al instalar cosas en Linux. Puedes perder un tiempo valiosísimo reduciendo tu productividad a -100. Cuando por fin consigas instalar el software que pretendías pensarás: “vale, ya sé hacerlo, lo he documentado y todo (porque habrás escrito en algún sitio lo que has ido haciendo, ¿verdad?). Y estoy seguro de que la próxima vez que lo vuelva a intentar las dependencias serán diferentes, los sistemas habrán cambiado, en vez de apt-get será yum u otra cosa y volveré a perder un porcentaje importante de mi vida tratando de atravesar paredes con una cucharilla de café”.

Ante estas situaciones, amigo, te recomiendo: quítate estos marrones de encima cuanto antes. Replantéate cuanto antes si hay una solución más fácil a tu problema: una máquina virtual descargable con el software preinstalado, un becario, otra plataforma, un manual, un software que te detecte dependencias y autoinstale… lo que sea. Es tiempo NO productivo, y no te engañes: estas cosas no te hacen más experimentado ni más listo. Simplemente te hacen perder tiempo. Y si no te queda más remedio… pues paciencia.


Bibliografía interesante:

The Clean Coder, Robert Martin.

Este libro explica cómo debe comportarse un auténtico profesional de la Informática, orientado a aquellas personas que trabajan en equipo para el desarrollo de un proyecto software.

11 pensamientos en “Verdades y mentiras sobre un Ingeniero en Informática

  1. Muy bueno Luis!

    No sé si un físico o un médico, sin más, son cultos… Supongo que para ser culto tienes que saber algo de historia, de música, de geografía, de política, de arte… Saber matemáticas por supuesto que también lo es, pero no lo que se conoce como “cultura” de forma amplia… creo yo. Así que efectivamente, estudiar una ingeniería no te hace más culto pero, ojo!, tampoco te hace menos!

    Coincido contigo, lo hemos hablado muchas veces, en lo importante que es la programación. Mi artículo favorito es el famoso “The Code is the Design” the Jack W. Reeves, en el que dice que el código son los “planos formales” (más formales que los de cualquier otra disciplina) del sistema, y que todo lo que hace un desarrollador de software es *diseño* porque la “fabricación” (convertir los planos en el resultado) es automático desde que se inventaron los compiladores hace décadas.

    Coincido también en las fuertes bases que un ingeniero en informática debe tener. No discrimino por eso a otras personas, mi argumento es muy sencillo:

    * Los grandes genios de cualquier disciplina muchas veces no tienen ni educación formal en la materia. En nuestro caso ni Torvalds, ni Simonyi, ni otros muchos grandes nombres eran “ingenieros en informática”, ni falta que les hizo.

    * Pero cuando la sociedad necesita profesionales de una materia concreta, monta mecanismos para formarlos. No puede depender sólo de un pequeño porcentaje de genios autodidactas. Por eso para formar ingenieros, o arquitectos, o abogados hay universidades. Por supuesto que habrá genios que no lo necesiten, pero el común de los mortales necesitamos pasar por un sistema que nos ayude a aprender.

    * Y por supuesto que 5 años de carrera no son perfectos, pero lo que está claro es que no te hacen peor. Por eso cuando alguien dice “es que en la carrera no te enseñan y fulanito o menganito no han estudiado y saben mucho y blah, blah” volvemos a los porcentajes: fulanito y menganito quizá son mejores que todos los demás, pero para un individuo normal, “n” años de formación siempre producirán mejor resultado que 0.

    Sobre los “marrones”: me parece una visión muy “práctica” pero creo que el truco está en siempre aprender. Siempre un problema supone una oportunidad de aprender, y la diferencia que puedes marcar es precísamente en sacar partido de la situación. 10 años de experiencia, o 20, o 30, no son nada si no has sacado partido de gran parte de esas situaciones, y esas situaciones te han hecho mejor, y la próxima vez que te enfrentes a ellas serás más rápido y controlarás más. Sea configurar unos paquetes, mirar la lista de procesos en un Solaris, saber la diferencia entre los threads en linux o en windows, o añadir un usuario a un directorio activo.
    🙂

  2. Tampoco tan polemico hombre, las cosas que dices son bastante sensatas o incluso obvias. Enfatizaria lo de hablar y escribir correctamente (disculpas por mi teclado sin tildes), que a demasiada gente se le olvida. Redaccion es una asignatura de septimo de EGB.

    Con lo unico que no estoy de acuerdo es con la cultura. Un medico o un escritor no tienen por que ser mas cultos, tienen los mismos conocimientos sobre su campo de ejercicio que un ingeniero. Aplicar el ingenio para resolver puzzles es tambien lo que hacen psicologos, cirujanos, poetas, …

    • Bueno, si tú venías de la EGB vas bien, a mí ya me pilló la ESO, fui de los primeros conejillos de indias… y mi hermana siempre se cachondeaba de eso.

      En cuanto a lo que digo de saber más o menos no me refiero a que un médico sepa más de medicina que un ingeniero en informática de informática. Lo que quiero decir es que la medicina es un campo del saber, es una ciencia natural que te ayuda a comprender el mundo en el que vives (en este caso, tu cuerpo); no es así con la informática; por tanto para mí la informática no es un “campo del saber”, por muchísimo que uno sepa de informática.

      Y que quede claro que no quiero decir que los ingenieros somos tontos: somos “genios”, tenemos unas aptitudes que otros no tienen; únicamente me refiero a lo que tiene que ver con “el saber”.

      • Yo hice EGB, BUP y COU, pero la verdad es que no comparto la idea extendida de que los alumnos de LOGSE vienen menos preparados. Encuentro gente igual de brillante y, ademas, creo que se manejan mejor en otros idiomas.

        Volviendo a lo de la cultura, sigo sin estar de acuerdo🙂 . La ingenieria informatica es un campo muy amplio, con muchas ramas “del saber”, principalmente Matematica Discreta, Estadistica y Algebra. Y otras colaterales como economia o gestion de proyectos me parecen tan humanas como la urologia.

        Releyendo el ultimo apunte que escribiste, pienso que eso es lo que define realmente a un buen ingeniero. No solo poseer un conocimiento, sino gestionar correctamente el que no se tiene. Ser productivo para que el proyecto vaya lo mas lejos posible bajo las restricciones de tiempo, coste y alcance.

      • Sí, ¿pero realmente quién trabaja como informático y necesita aplicar conocimientos de matemáticas o estadística? La inmensa mayoría se pelea con sistemas o gestión y eso no tiene mucho de “científico” o “natural” o “humanidades”… hay casos que por el ramo al que sirve tu trabajo pues necesitas conocer el dominio del negocio, pero no son tantos los casos.


      • Sí, ¿pero realmente quién trabaja como informático y necesita aplicar conocimientos de matemáticas o estadística?

        Todo el mundo en mi opinion🙂 . Cuando uno programa tiene que aplicar sus conocimientos matematicos continuamente, independientemente del negocio. La algoritmia es una rama muy importante de las matematicas. El diseno de software tiene mucho de matematica: criterios como cohesion, acoplamiento, encapsulamiento tienen su base en la teoria de conjuntos y teoria de grafos. La integracion de sistemas se apoya en gran medida en la teoria de colas, etc…

      • Lógicamente, pero decir que el principio de cohesión es cercano a las matemáticas es como decir que la base de los servicios web están basados en la teoría cuántica de Einstein. Hombre, lógico, pero de lo uno a lo otro hay millones de capas de abstracción y cuando uno aplica el principio de máxima cohesión o el de mínimo acoplamiento o el de inversion de dependencias no piensa en la estadística, pero vamos: ni remotamente, o sea que no estoy en absoluto de aucerdo con eso. ¿Cuando programas un ERP o trabajas como consultor piensas en las características del silicio que lo hacen idóneo como material para fabricar circuitos? ¡Venga ya! ¿Tú piensas en quién inventó la escritura cuando programas? ¿O en el que inventó la imprenta?

  3. Lo único que no me parece bien es que ese “marrón” que no te quieres comer, y que NO son productivos (como tu enfatizas), se los sueltes a un becario.

    Pocos marrones te habrán pasado en tu época de becario como para que ahora te atrevas a sugerir eso. Y no me vengas con que es para aprenda, porque lo que aprenderá es a quitárselos de encima igual que tu has hecho.

    Gran articulo, pese a ese único detalle.

    • Ah, era un poco de coña lo del becario… todos nos hemos peleado con problemas de sistemas, configuración e instalación, y llega un momento que tienes el “culo pelado” y o bien lo haces con mayor facilidad o bien sería mejor que un novato aprendiera esas cosas y tú te dediques a cosas más productivas, dado que él no puede hacer tu trabajo por falta de experiencia… nada más.

      En todo caso coincido en que es la parte más polémica del artículo y bueno, es una opinión muy personal y controvertida. Gracias por el apunte en todo caso🙂.

  4. Hola a todos escribo esto por si alguien tras su experiencia me puede ayudar y aconsejar, la verdad estoy bastante angustiada mi hijo a estudiado ingeniero informático de grado en la politécnica de Madrid esta en 4 de carrera (el último año)y le quedan 6 asignaturas para acabar tiene 23 años y esta amargado, dice que no sabe nada que no sabe programar y que no le gusta, alguna vez en segundo me dijo de dejar la carrera yo pensé que era un bajón y le anime a continuar, ahora me dice que la culpa de su situación es mía.
    Dice de estudiar otra cosa el año que viene pero esta perdido y decepcionado , se esta aislando encima en los trabajos de practicas nadie quiere hacerlos con el por que no sabe programar es agobiante yo no entiendo mucho pero como ha llegado hasta 4 de carrera y ahora que futuro puede buscar en su vida
    A lo mejor este no es el lugar pero estoy desesperada
    Gracias

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s