¿Por qué tantos EE Majors trabajan como programadores?

En primer lugar, su pregunta es fatalmente defectuosa. Una especialización de EE, “al mismo nivel” que una especialización de CS representa un nivel comparable de trabajo, educación y desarrollo profesional (al menos debería).

En segundo lugar, una gran cantidad de programas de Ciencias de la Computación dan como resultado un título en Ingeniería Eléctrica, o del departamento de Ingeniería Eléctrica de una escuela. Por ejemplo, los grados de informática del MIT son una licenciatura en “Ingeniería eléctrica y ciencias de la computación” o “Ciencias de la computación e ingeniería” o “Ciencias de la computación y biología molecular” del Departamento de Ingeniería Eléctrica y Ciencias de la computación. Y, si su interés es el hardware de la computadora, su título podría optar por “Ciencia e Ingeniería Eléctrica”, en el mismo departamento. Es igualmente legítimo que los graduados se describan a sí mismos como EE o informáticos.

Más allá de eso, no está del todo claro que “muchas especialidades de EE trabajen como programadores”. Mucho hacen algo de programación, sin lugar a dudas; En estos días, es bastante difícil evitar el software en cualquier campo de ingeniería (ya sea herramientas de análisis y diseño, o el software de control para un dispositivo o sistema). Y ciertamente muchos EE trabajan como ingenieros de software, pero ingenieros >> programación e ingeniero >> programador (en términos de educación y experiencia esperadas, alcance del trabajo, título, salario, prospectos, etc.). Pero dudo que haya muchas EE (o mayores de CS, para el caso) que tengan el título de “programador” o que hayan pasado gran parte de sus vidas “programando”.

Eso sí, después de 45 años en el campo, todavía no entiendo qué hacen los “programadores”. La programación es una habilidad, que solo tiene sentido en el contexto de una actividad de diseño y desarrollo más amplia, y pensé que ya habíamos pasado los días en que los “analistas de sistemas” se encargaban de resolver y diseñar todos los problemas, y los “programadores” eran monos de código, haciendo el equivalente a un técnico en electrónica convirtiendo el esquema de un ingeniero en un prototipo. En la actualidad, los “desarrolladores” generalmente combinan la resolución de problemas, el diseño y la codificación para cosas más simples, mientras que los ingenieros (de software) hacen la resolución de problemas y diseñan para problemas y sistemas más grandes, mientras que los ingenieros y desarrolladores menos avanzados hacen la implementación. En muchos años, todavía tengo que trabajar con alguien cuyo título sea “programador”.

No me queda claro cuáles son las implicaciones del calificador “tantos” en la pregunta. A menudo me parece que casi nadie termina haciendo exactamente lo que estudió y entrenó para hacer durante sus años de universidad (o escuela profesional), ya sea que la capacitación fuera o no EE.

Es el caso de que un nuevo producto o servicio que requiere diseño de EE en la actualidad casi siempre necesita algún soporte de firmware o software, y los EE que (ya) entienden la parte del hardware a menudo son completamente capaces de ejecutar suficiente ingeniería y programación de software para proporcionar software para menos el primer corte rudimentario que se requiere para poner en funcionamiento el producto (o servicio).

Y en mi experiencia, el software es un medio tan manejable y receptivo que es fácil dejarse seducir por el lado ligero de la fuerza y ​​gravitar para hacer más y más de la parte de diseño de programación / software, y (tal vez) progresivamente menos de la parte central del hardware EE.

Gracias Sr. Anónimo por el A2A sobre esta pregunta.

  1. El número de programas que se escribirán es un orden de magnitud o mayor que el número de dispositivos únicos que se diseñarán (por ejemplo: número de modelos de iPhone frente a número de aplicaciones de iPhone en la App Store)
  2. Los dispositivos eléctricos y electrónicos que no están controlados por una CPU / DSP / controlador programable son relativamente raros

Mi primer año de trabajo después de obtener mi título de EE fue diseño de circuito electrónico real, análisis de tiempo, simulación, diseño de placa de circuito, etc.

Mi segundo año de trabajo después de obtener mi título de EE fue escribir controladores de dispositivos, núcleos del sistema operativo y conjuntos de pruebas para el microprocesador integrado en el producto.

Desde ese segundo año, los únicos circuitos que he analizado o diseñado han sido para pequeños contratos secundarios; La mayor parte de mi trabajo de colaborador individual desde entonces ha sido programación y arquitectura de sistemas. El trabajo es relativamente abundante y paga bien.

Porque es más fácil enseñar programación esencial a EE que enseñar circuitos esenciales a graduados de CS.

Porque hay más demanda y oportunidades de trabajo en software que en electricidad, electrónica, telecomunicaciones.