¿Qué tipo de trabajo obtiene un ingeniero informático?

Honestamente, la diferencia entre un EE y un Comp. Ingeniero (CE) en el nivel de pregrado es quizás el 20% de sus clases difieren. No es mucho y para muchos trabajos, cualquiera tendría el conjunto de habilidades correcto. Aquí expondré el papel de un CE. Todo esto se trata de personas recién salidas de la escuela, sin otra experiencia.

En primer lugar, todos los EE toman algo de programación de computadora. En la actualidad, casi todos los estudiantes de ingeniería lo hacen. Es una habilidad demasiado útil, incluso en pequeñas cantidades. Los EE a menudo hacen un poco más. No tanto como los CE, y mucho menos que CS, pero aún más que la mayoría.

En segundo lugar, la mayoría de las especialidades de CS no saben mucho acerca de la informática integrada. La educación en CS se trata principalmente de estructuras de datos, compiladores de algoritmos, etc. y la Ingeniería de Software se trata principalmente de bases de datos, desarrollo de aplicaciones y redes. No es que estos tipos no puedan ponerse al día con el software incorporado, pero normalmente no es su especialidad.

Los EE tienden a centrarse más en circuitos analógicos. Saben que los transistores funcionan. Los usan para construir amplificadores, fuentes de alimentación, sensores, circuitos de control, radios y muchas otras cosas útiles. Habrán estudiado algo de electrónica digital, y muchos EE terminan trabajando en digital, pero estudian una amplia gama de temas y tienden a tener menos profundidad en digital que los especialistas en CE. En general, un EE recién salido de la escuela probablemente habría tomado clases donde usaron transistores para construir una puerta lógica, pero probablemente no habrían aprendido a ensamblar esas puertas en un microprocesador. Es posible que hayan estudiado el proceso de fabricación de chips, pero el diseño de la lógica necesaria para construir registros de memoria y unidades lógicas aritméticas y tales no habría sido un enfoque para la mayoría de los EE. Tendrán una experiencia limitada pero no extensa con código incrustado, pero probablemente muy poca experiencia en código de ensamblaje.

Los informáticos y los ingenieros de software comienzan en el sistema operativo y trabajan. En mi experiencia, pasan muy, muy poco tiempo, aprendiendo cómo funcionan las computadoras a nivel de hardware. No sabrán cómo funcionan los transistores e incluso los circuitos eléctricos básicos no están en el plan de estudios en la mayoría de las escuelas. Lo más probable es que no hayan escrito mucho código en lenguaje ensamblador, pero sabrán que existe. Habrán aprendido a construir proyectos de software grandes y complejos, y comprenderán estructuras de datos y algoritmos sofisticados. CS mayores habrán estudiado el diseño del compilador y los protocolos de red y el modelo OSI. Los SE conocerán las redes y las comunicaciones IP, junto con algunas tecnologías de “big data” con toda probabilidad.

Mire cuidadosamente esas descripciones. ¿Notaste algo? Hay una brecha. El EE puede construir puertas, pero no ha estudiado el microprocesador o el firmware del microcódigo para que funcione. Conocen algo de programación básica, pero no mucho código de ensamblaje o software integrado. La gente de CS y SE conoce los sistemas operativos y los sistemas operativos, pero no los ensambla y los desactiva, y definitivamente no pudieron construir un procesador. Ahí es donde entran los CE.

Donde los ingenieros informáticos realmente brillan es cuando necesitas INTEGRAR el hardware y el software. Entendemos los transistores, por qué y cómo funcionan a nivel de semiconductores, cómo convertir esos transistores en puertas lógicas digitales, cómo ensamblar la lógica digital en microprocesadores y memoria, cómo funciona el firmware de bajo nivel que hace que esos microprocesadores funcionen, y cómo escribir software incrustado. También estudiamos el procesamiento de señales digitales, la teoría de control y las estadísticas para asegurarnos de que el software que creamos responda correctamente. Tenemos todas las habilidades para crear una computadora que funcione y pueda ejecutar software de control básico. Solo los CE tienen ese conjunto de habilidades completo “listo para usar”.

Por supuesto, un EE podría aprender el lado digital y el CS principal podría tomar clases de diseño de hardware. Un CE puede expandir sus habilidades a analógico o aprender más programación, pero ese no es el punto. La razón por la cual los empleadores contratan CE es que necesitan a alguien que pueda reunir hardware y software para hacer algo útil.

Es un conjunto de habilidades que he tenido mucha demanda en mis más o menos 15 años como ingeniero.