jueves, abril 17, 2008

Porqué un Ingeniero de Sistemas o Informático debe saber programar?

En numerosas ocasiones me he enfrentado a un cuestionamiento personal, siempre he considerado muy importante el hecho de que un ingeniero de sistemas debe salir al mundo laboral con fuertes bases de programación (y con fuertes bases me refiero a un plus sobre el conocimiento que se adquiere tipicamente en los cinco o más años de carrera); la pregunta es ¿por qué a un ingeniero o estudiante de ingenieria (de sistemas principalmente) debe considerar importante el desarrollo de software?. Lo que intentaré proponer aquí es una respuesta objetiva a esa pregunta y más arriesgado aún, ubicar como pilar del crecimiento laboral (al menos durante el tiempo de adquisición de experiencia) el desarrollo de aplicaciones -entendido como el sentarse a escribir código frente a una PC-.

Pues bien, como informático fanático de la tecnología he visto como numerosos informáticos y empresarios han surgido y crecido partiendo de la Universidad y en poco tiempo han logrado consagrar un éxito profesional reconocible; así mismo, he visto como otras tantas personas salen a enfrentarse al mundo laboral con resultados poco envidiables aún cuando en la Universidad no se lograba identificar ninguna diferencia significativa en cuanto a resultados académicos que dieran pié a tal brecha en el margen de éxito alcanzado a través del tiempo. De lo que se desprende que si no son los resultados académicos un punto definitivo que indique el grado de éxito que un ingeniero obtendrá en el futúro, entonces, que es?, qué condiciones mayormente coinciden con los perfiles del ingeniero exitoso?.

Después de divagar cierto tiempo al respeco, he llegado a una serie de conclusiones personales, que presentaré a continuación:



Para mi el ingeniero exitoso consigue adoptar algunas de las siguientes cualidades:
- Constancia: Consigue lo que quiere aún cuando las condiciones parezcan adversas, y se enfrenta a sus debilidades por conseguirlo.
- Ingeligencia: aunque definitivamente no es el aspecto mas importante, la inteligencia y el pensar rápido es lo que permite identificar una solución a los problemas comúnes en la vida laboral.
- Gusto por la programación: Acá es donde recibiré la mayor cantidad de inconformismos. -Y en sí es el el punto de fondo tras este post-. He notado como la gran mayoria (NO TODOS!!) de los ingenieros de sistemas exitosos tienen cierta afinidad con la programación. Es cierto, algunos ingenieros logran alcanzar un estatus superior al del programador en muy poco tiempo, quizas sin pasar por escribir una sola línea de código; estos afortunados, sin embargo, son pocos, y además de "buena suerte" cuentan en muchas ocasiones con factores externos que ayudan a que esta situación se genere; puede ser el haber estudiado algo superior al pregrado, la ayuda de alguien con influencia dentro de la empresa, la consecución por méritos a un trabajo de auditoria, dirección de un departamento de sistemas o administración de redes. Sin embargo, por estas condiciones, dichos trabajos tienen una oferta muy limitada con relación a la oferta que tiene el trabajo de programador.

De acá destaco el hecho de que quienes aún no tenemos la fortuna de poseer alguna de esas ventajas en la vinculación a un puesto laboral, tenemos el compromiso de especializarnos en algún tema (formalmente o por nuestros propios medios), bien sea, configuración y mantenimiento de redes, auditoria de sistemas (donde considero que el aprendizaje además de ser formal, depende en gran medida del hecho de saber programar), administrador de base de datos, o mi favorita, programación. Si bien, todas estas líneas de aprendizaje son muy buenas, y consiguen aceptación en el mercado laboral, además que si no se cuenta en cierto momento con la capacidad económica o temporal para adelantar una fase de aprendizaje formal, siempre tenemos la opción de estudiar por nuestros medios y certificarnos mediante un examen que avale internacionalmente nuestro conocimiento.

Pero y porqué no tuve en cuenta la gerencia de proyectos o sus afines?, esto es porque considero que un gerente de proyectos (de software) que no conoce como definir la arquitectura de una aplicación, que no puede determinar el tiempo que el desarrollo de cierto componente implica, no va a tener éxito en el ejercicio de su labor (al menos en principio).

Pero y entonces, teniendo esta diversidad de opciones, por qué la programación?. Mi respuesta a esta pregunta va dada principalmente por el mercado laboral, mientras que las estadísticas (2008 IT Skills and Salary Report), las conversaciones, y los diversos comentarios sobre el tema muestran que las principales ventajas de esta línea de aprendizaje son el sueldo que se puede lograr, la capacidad de crecimiento (cognitivo y laboral) que se puede alcanzar y la amplia oferta que existe para los desarrolladores de sistemas; yo complementaría diciendo que la oportunidad de llegar generar un Startup (empresa de tecnología con amplio crecimiento) está dada principalmente por ideas que surgen de la experiencia en programación. Eso, y el regocijo obtenido por el participar como autor en la invención de algo nuevo y propio me obligan a pensar que la programación de sistemas si bien no es el único cimiento sobre el cual se forja la ingenieria informática, si es el de mayor oportunidad para la inmensa oferta laboral, y el que (para mi) genera mayores beneficios.

7 comentarios:

  1. Hola..
    muy interesant lo q has escrito en tu blog.. en si me gusta la información...
    pero me gustaría saber para ti.. CUALES SON LAS VENTAJAS Y DESVENTAJAS DE SER INGENIERO..
    De antemano agradezco tu respuesta..
    F. Lore... xD xD xD...

    ResponderBorrar
  2. hola muy interesante tu blog
    pero mi pregunta si uno se va porel area de proramacion si va por el aria de datos
    sera que uno pueda alcanzar el mismo nivel qu en programacion

    ResponderBorrar
  3. hola, primero, gracias por comentar, respecto a tu pregunta y basado en mi experiencia, creo que si, puedes alcanzar el mismo "nivel laboral", o más, o tal vez menos;
    Me explico, todo depende de tu talento y tu constancia. Un DBA (Administrador de Base de Datos) certificado en Oracle seguramente ganará más que un programador certificado en .Net o Java; esto es por la poca cantidad de profesionales certificados y por la delicadeza de su labor (un error en la base de datos puede implicar demandas millonarias o perdida de información valiosa, por tanto es una responsabilidad muy grande).
    En definitiva, si quieres llegar muy lejos sea cual sea tu área, debes especializarte y ser muy bueno en algo comparado con los demás.
    Saludos.

    ResponderBorrar
  4. gracias estas interesante porque habeces hay Ing. de sistema que ni siquiera sabes cuales son los conocimiento que deben tener para afrontar un trabajo... Jose Eliseo Guevara desde Cajamarca- Perú

    ResponderBorrar
  5. la verdad es muy interesante este anuncio, pero ya paso a tercer semestre de sistemas y la programacion no es mi fuerte y eso hace q le coja a veces como peresa a la carrera. de pronto no sabe como aprender a programar de una manera facil o que le de a uno animos? porq este tema segun tengo entendido es de lo mas importante en esta area.

    ResponderBorrar
  6. Hola
    Por una parte como dice en el post no es totalmente necesario saber programar, puedes buscar otra profundización en la que te sientas mas fuerte: telemática, geomática, bases de datos, auditoria, o la parte administrativa.
    Eso si, definitivamente debes buscar lo que te gusta e ir profundizando un poco, pues hay mucho por aprender y mucho por innovar y el mercado esta cada vez más lleno de personas mejores, así que la competencia no es sencilla.
    Si de verdad quieres aprender a programar y quieres hacerlo de una forma fácil puedes empezar por algo relativamente sencillo pero innovador.. estoy seguro que haz escuchado de Android.. un lenguaje basado en Java pero mucho mas reducido y bastante bien documentado y al que le puedes ver el beneficio económico en poco tiempo. Pues así seas estudiante de tercer semestre puedes empezar un proyecto nuevo que te obligue a aprender. Si no te gustan los móviles, mira lo que se puede hacer con juegos, puedes aprender con algo gráfico como Unity 3D http://www.niubie.com/2009/11/aprende-a-desarrollar-juegos-con-unity3d/ y http://www.aprendizdeilusiones.com/2010/03/06/unity/unity3d/
    Lamentablemente en las universidades a veces cierran las posibilidades a uno o dos lenguajes; pero existe mucho que aprender y que tiene bastante salida.

    En resumen, encuentra tu motivación, no abandones la carrera, si te motiva el dinero mira posibilidades por ese lado, si te gustan los juegos, igual, si te gusta la XBox mira como puedes programar algo.
    Mucha suerte!!!

    ResponderBorrar
  7. hola me gusto mucho tu blog , pues curso el tercer año y la verdad me quiero enfocar a una area de carrera , pero quisiera que me ayudaras , elegir , cual seria la mejor opcion , cual es lo requiere mas el mercado y dime si es verdad eso del tercio superior , q solo ellos no mas tendran trabajo

    ResponderBorrar