Mucho … Si realmente quieres sobresalir en ingeniería eléctrica y electrónica (EEE), también conocida como ingeniería eléctrica (EE) en los EE. UU. También se puede conocer como ingeniería eléctrica e informática (ECE).
Estoy totalmente en desacuerdo con el usuario de Quora. Puedo estar equivocado, pero no parece tener una buena comprensión de la ECE, en términos de amplitud a través del alcance de la ECE o la profundidad en cualquier área de la ECE.
Mire el diario IEEE y los documentos de la conferencia. Hable con los docentes y estudiantes de posgrado (MS / Ph.D.) En ECE, así como con ingenieros superiores de I + D en ECE. Pregúnteles si pueden salirse con la suya con la programación y el modelado por computadora.
- ¿Sería imprudente tomar mi primer rol de desarrollador junior con un equipo que usa Smalltalk?
- Estoy obteniendo un 6 CGPA en la rama de informática de la Universidad KIIT. ¿Puedo conseguir una colocación en buenas compañías?
- ¿Cómo es estudiar en el noreste de la India para la informática en NIT?
- Soy un estudiante de tercer año de pregrado con especialización en Ciencias de la Computación en Vietnam. ¿Qué debo hacer para poder trabajar para Google?
- He trabajado como desarrollador de bases de datos durante 6.5 años. ¿En qué cursos de maestría debería centrarme para aprovechar mis habilidades?
La programación en MATLAB para modelado matemático, diseño y análisis de sistemas / filtros y simulación se utiliza en ingeniería de control, procesamiento de señales, diseño de antenas y muchas áreas de ECE. Solo echa un vistazo a las cajas de herramientas MATLAB y Simulink: productos y servicios. Las clases desafiantes y académicamente rigurosas, especialmente a nivel de posgrado, requerirán que implemente o incluso diseñe algoritmos para el control y el procesamiento de la señal. Entonces, sí, deberá comprender el análisis y el diseño de algoritmos. Piense en la complejidad del circuito en el circuito VLSI y el diseño del sistema. ¿No se parece mucho a la complejidad computacional? ¿El algoritmo se ejecuta en O (n ^ 3)? ¿Es la complejidad del circuito O (n * log n)?
Además, los sistemas de control modernos / avanzados son de entrada múltiple, salida múltiple, estocástico, adaptativo, digital, autónomo y / o no lineal. Los estudiantes de CS no querrán aprender sobre sistemas dinámicos no lineales. Créeme. Es por eso que la aplicación de la ingeniería de control en la computación autónoma tiene muy pocos interesados. ¿Por qué? Debes ser bueno en ECE y CS; es decir, EE + CS = EECS.
Muchos, si no la mayoría, los programas de informática (CS) no lo entrenan para diseñar circuitos integrados (IC) analógicos / RF y de señal mixta, y circuitos y sistemas VLSI. Por lo tanto, todo lo que se habla sobre el uso de lenguajes de descripción de hardware (HDL) para el diseño RTL de circuitos integrados que se implementan en placas FPGA o lógica de celda estándar no tiene sentido. Mire, si ni siquiera imparten clases de organización de computadoras que requieren que los estudiantes diseñen un procesador simple de 32 bits, ¿cree que pueden enseñar el diseño VLSI o la arquitectura de la computadora de manera efectiva? Diablos no! Modelado de comportamiento de circuitos y sistemas AMS / RF con SystemC-AMS, Verilog-AMS, Verilog-A y VHDL-AMS? ¡Olvídalo! Si desea diseñar circuitos integrados y sistemas VLSI, busque un MS / Ph.D. en ECE en una buena universidad de investigación (preferiblemente en los EE. UU.). Y sí, el diseño del sistema VLSI puede implicar modelar con UML, invocar patrones de diseño, usar redes de Petri y usar lógica formal / matemática para métodos formales y verificación formal. El diseño de VLSI también implica la programación en Perl, Tcl y Python (o scripts de shell de UNIX), además de C, C ++ y SystemC. Considero el modelado de comportamiento en SystemC, Verilog y VHDL como diseño VLSI, en lugar de programación. Está diseñando sistemas electrónicos e IC, no programando un procesador (como en el software del sistema, o el software de aplicación, desarrollo).
En lugar de utilizar un procesador de textos para la documentación, puede hacerlo con LaTeX y Doxygen (¡también funciona con VHDL!). ¿Quieres dibujar algo? ¡Use Graphics Layout Engine (GLE), asíntota (lenguaje de gráficos vectoriales), MetaPost y TikZ!
Use la automatización de compilación para compilar, sintetizar o ejecutar sus scripts / herramientas. O bien, escriba los archivos fuente de LaTeX. Por ejemplo, coloque un shebang UNIX en la línea superior de su lista de redes SPICE y ejecútelo como un script desde la línea de comandos.
Utilice el control de revisión para administrar diferentes versiones de sus archivos fuente: MATLAB (u Octave GNU), C ++, SystemC, Verilog, Python, Tcl, Perl, scripts de shell UNIX, archivos fuente LaTeX y SPICE (sí, puede escribir su propio SPICE netlists desde cero y simúlelos con una herramienta SPICE). Markdown funciona para GitHub, si lo usa para confirmar su código fuente para MATLAB, Verilog, VHDL, scripts, código C ++ y lo que no.
Para trabajar de manera efectiva en un sistema operativo tipo UNIX, saber cómo escribir scripts de shell UNIX simples lo ayuda a trabajar de manera eficiente y efectiva. Aprende a usar expresiones regulares.
Tome una clase de posgrado avanzada en diseño de antenas, y tendrá el “lujo” de implementar métodos numéricos complejos en C, C ++, FORTRAN o algún otro lenguaje de programación para modelar su antena, simular la propagación de ondas electromagnéticas y analizar el sistema en busca de electromagnetismo. interferencia y capacidad (EMI / EMC).
La ingeniería de dispositivos a nanoescala exigirá inevitablemente el modelado computacional y el cómputo numérico en C, C ++, Verilog-A u otros lenguajes utilizados para el modelado de dispositivos / compactos.
Los enfoques basados en ECE para la ingeniería de sistemas y la ingeniería de confiabilidad implicarán una gran cantidad de modelado y programación de computadoras.
La teoría de la información y la teoría de la comunicación se basan básicamente en las matemáticas y la informática teórica. Ser capaz de implementar sus ideas / métodos como un programa de computadora le permite probar sus ideas y verificarlas / validarlas. Piense en los métodos de codificación / decodificación, y en la detección y corrección de errores.
La ingeniería óptica y las telecomunicaciones le permiten explorar diferentes técnicas para transmitir información, que generalmente se modela en computadoras (¡piense en la programación, de nuevo!), Y examine todo, desde el rendimiento y el consumo de energía de los paquetes de datos de enrutamiento en una red o red de telecomunicaciones / informática. en chip (NoC). Sí, los NoC ópticos pueden usar conceptos de enrutamiento de paquetes similares a los de enrutamiento de paquetes en telecomunicaciones y redes de computadoras.
Otros aspectos de las telecomunicaciones: ¿compresión multimedia? Sí, puede implementarlos como software en C, C ++ o MATLAB, o como circuitos VLSI en SystemC, Verilog o VHDL.
¿Ingeniería de la Energía? El diseño, modelado y análisis de máquinas eléctricas implicaría modelar con LabVIEW, un lenguaje de computadora gráfico (o lenguaje de “programación” gráfico, si lo desea). ¿Diseño de red inteligente? Definitivamente una gran cantidad de modelos informáticos (léase: programación informática).
Ahora, ¿qué parte de ECE no involucra programación? Vea las Membresías de la Sociedad IEEE y los Consejos Técnicos de IEEE para conocer el alcance de ECE.
En pocas palabras: no puede escapar de la programación en ECE. Si lo odia, recuerde que se utiliza mucha programación y modelado por computadora en ingeniería financiera y finanzas computacionales. Entonces, si quiere ganar mucho dinero en la banca de inversión que explota sus habilidades de ECE, ¡piense de nuevo!
Apéndice:
[Lea la última parte para abordar la cuestión de si aceptar la oferta para estudiar EEE o tratar de cambiar (o unirse) a un programa de CS.]
Puede aprender muchas más habilidades e idiomas en buenas pasantías, donde se ve involucrado en proyectos del mundo real y se espera que rinda para justificar su cheque de pago de US $ 20 / hora – US $ 40 / hora. Desafortunadamente, las buenas pasantías donde realmente puedes desarrollar / diseñar cosas y aprender no son tan fáciles de conseguir en muchas áreas del mundo. Vea la respuesta del usuario de Quora a ¿Cuál es mejor estudiar para un curso de invierno a corto plazo, con la esperanza de una futura pasantía extranjera: sistemas integrados o diseño VLSI?
Muchas clases de pregrado en muchos programas de ECE pueden no involucrar programación. Todo depende de a dónde vayas a la universidad. Tuve que implementar algunos métodos numéricos para mis clases de matemáticas aplicadas / de ingeniería en cálculo vectorial y ecuaciones diferenciales. Pero tenía una variedad de lenguajes de programación para elegir. Muchas clases de matemáticas en otros programas no requieren que lo haga. Lo mismo ocurre con muchas clases de ECE de pregrado en máquinas eléctricas, diseño de circuitos analógicos y lo que no. Sin embargo, en buenos programas de posgrado en los Estados Unidos para MS / Ph.D. estudiantes, tendrán muchas oportunidades para aprender y programar, ya que tendrán muchos proyectos para completar (además de cualquier investigación para estudiantes de doctorado).
En general, no te hacen aprender algo sin ningún motivo. Si tiene que aprender un montón de idiomas y software para usar en sus proyectos de ingeniería, puede ser porque quieren exponerlo a diferentes pasos de diseño para esa área / subcampo en particular. Por lo tanto, no tiene que aprender tantas habilidades y lenguajes de computadora, si no lo desea.
Por ejemplo, para el diseño digital VLSI, aprendí Verilog para el diseño RTL, SPICE para la caracterización de células y la simulación de circuitos, y Tcl para manejar / personalizar herramientas EDA. Dicho esto, no pude aprender SystemVerilog ni lenguajes de verificación de hardware, como e y Vera. En la industria, para trabajos de nivel de entrada y pasantías en diseño VLSI, debe saber cómo trabajar en un entorno UNIX, programar en Perl o Tcl (y con suerte HABILIDAD de Cadence Design Systems) y usar Verilog (o VHDL) para RTL diseño. ¿Por qué? Porque eso es lo que se le pagará por hacer. Por lo tanto, las preguntas técnicas están destinadas a determinar si puede trabajar eficazmente en su trabajo, o si tienen que pasar una cantidad ridícula de tiempo capacitándolo. La capacitación de los empleados puede ser común en algunos lugares, como la India. En los EE. UU., Debe haber demostrado el uso de sus habilidades en proyectos de clase, proyectos de hardware / software de código abierto y experiencia laboral previa. Si su código fuente está en Open Cores y GitHub, evaluar su conjunto de habilidades es mucho más fácil.
Uso MATLAB tanto como sea posible, para no tener que usar R y lo que no.
Usar LaTeX me ayuda a escribir documentación mucho más fácil. Como estudiante de primer año, comencé a escribir documentos e informes con más de 40 referencias, que pueden ser difíciles de manejar en el estilo de citas / referencias basadas en números en Microsoft Word (en el pasado) … La noción de que la documentación ECE y los documentos de investigación no involucran las matemáticas (matemáticas discretas, análisis numérico o incluso álgebra abstracta), el modelado estocástico y el análisis estadístico no tienen sentido. Escribir ecuaciones matemáticas en LaTeX es mucho más fácil que con los procesadores de texto, especialmente si su entorno informático está bien configurado y tiene un buen proceso para la escritura técnica; pista: las macros y las plantillas ayudan mucho.
Solía odiar a UNIX, pero cuando vi a mis compañeros de clase destruyéndome en mis clases obligatorias de CS en sistemas informáticos (proyectos de programación de ensamblaje), estructuras de datos y algoritmos e ingeniería de software, tuve que adquirir más habilidades de ellos para poder ser efectivo en mis proyectos de clase. Trabajar en el laboratorio de computación en lugar de mi dormitorio me ayuda a interactuar con otros y a aprender a trabajar de manera más efectiva y eficiente. Sí, puede ser una distracción cuando otros te piden ayuda e intentan chatear contigo. Pero puedes aprender cómo los mejores estudiantes (posibles ingenieros / desarrolladores de rockstar) hacen algo en 3 horas que te lleva días hacerlo. Entonces, aprendes trucos que te ayudan a trabajar mejor. También se pueden aplicar cosas básicas como pruebas unitarias, automatización de pruebas, pruebas de regresión a proyectos de EE. Lo mismo ocurre con el aislamiento de fallas, el desacoplamiento de módulos (para reducir las dependencias) y lo que no. Este conjunto de habilidades se puede resumir como pensamiento computacional, que se puede aprender en cualquier especialidad académica y aplicarse a cualquier profesión. Vea el Pensamiento computacional y la respuesta de Pasquale Ferrara a ¿Qué habilidades tangibles no específicas de la plataforma adquieren los informáticos a través de su educación universitaria?
Parafraseando a Michael Jordan, recuerde que los fundamentos no cambian, y todo lo que cambia es su actitud / enfoque hacia ellos. Referencia: M. Jordan. No puedo aceptar no intentarlo: Michael Jordan en busca de la excelencia. Harper San Francisco, San Francisco, CA, 1994.
Básicamente, la programación, como el análisis matemático y el conocimiento de la física, son habilidades básicas (o “herramientas”) que se emplean para resolver problemas de ingeniería del mundo real. No use más herramientas / habilidades de las que necesita, ya que desea ahorrar tiempo y esfuerzo (y $$$). Pero, si no puede competir con sus competidores con su conjunto de habilidades o herramientas actuales, vuelva a usar herramientas y obtenga habilidades más avanzadas. La programación no es el principio o el fin de la ingeniería.
Las tecnologías van y vienen. Debe adquirir nuevas habilidades específicas de herramientas, plataformas, lenguajes informáticos y lo que no con el tiempo. Sin embargo, los fundamentos en diseño de ingeniería, verificación, validación y prueba no cambian. La modularidad es modularidad, y existe en arquitecturas de software, arquitecturas VLSI, sistemas embebidos, grandes sistemas de ingeniería, desde automóviles y aviones hasta sistemas de telecomunicaciones. Lo mismo ocurre con el aislamiento de fallas, los conceptos fundamentales en la propagación de ondas electromagnéticas y lo que no.
Sí, no ir a un buen programa de ingeniería para obtener su BS ECE (o equivalente) y un título avanzado (MS / Ph.D. ECE) afecta sus elecciones y oportunidades. Sin embargo, como se dio cuenta, hay muchos recursos de aprendizaje en línea para ayudarlo a comprender lo que se está perdiendo. Unirse a IEEE y ACM ayuda a exponerlo a lo que hacen sus compañeros en su tiempo libre, por diversión (p. Ej., Diseño de circuitos integrados y publicación de sus nuevos circuitos en una conferencia de investigación), y tomar clases de ECE de posgrado para MS / Ph.D. estudiantes mientras todavía eran estudiantes universitarios. Estudiar en universidades con buenos programas de pregrado, como los que mencioné en la respuesta de Pasquale Ferrara a la hora de contratar ingenieros de software / especialidades en informática para empresas estadounidenses, ¿qué universidades internacionales están a la par con MIT / Stanford ?, también ayuda mucho. Si no puedes estudiar en la Politehnica University of Bucharest, bien, pregúntale a tus amigos quién puede estar estudiando allí. Lo mismo ocurre con los otros programas de ingeniería superiores en su región o el mundo, como el Technion. Está bien si no puedes tener el 100% de las oportunidades que tienen algunos estudiantes. 70%, o incluso 30%, no es tan malo. Es mejor que 0%.
Como dije, preguntando a la gente en la industria y monitoreando los anuncios de trabajo a medida que avanzas en la universidad y la escuela de posgrado, descubrirás qué habilidades quieren los empleadores (o más bien, contratar gerentes).
En cuanto a por qué los buenos programas de ECE lo alientan a desarrollar una amplia base de habilidades que abarcan ECE (como se mencionó anteriormente), y aún más habilidades en áreas críticas, como redacción técnica, gestión técnica / de ingeniería y derecho de propiedad intelectual, bueno, es para permitir a los graduados de ECE explorar diferentes carreras profesionales. No tiene que estudiar en los EE. UU. Para darse cuenta de que un BA / BS (o equivalente) es un título básico en muchas profesiones (como medicina, derecho, ECE y CS). Algunas carreras pueden no requerir más que un BA / BS. Pero, si desea competir con otros, debe tener un conjunto de habilidades único que se pueda obtener en MS / Ph.D. programas
Con esto en mente, dado que no todo el mundo quiere ser un arquitecto de computadoras, encontrará graduados de ECE (como muchos otros graduados) incursionando en diferentes profesiones. Algunos atletas atletas de la División I de la NCAA que se gradúan con BS ECE pueden convertirse en atletas profesionales. Otros pueden entrar en consultoría de gestión. Algunos pueden optar por enseñar ciencias y matemáticas en las escuelas secundarias, mientras que otros pueden enseñar inglés a personas que no hablan inglés en Europa o Asia Oriental. Algunos van a la escuela de derecho y obtienen sus títulos de derecho (por ejemplo, JD o LL.B.), y se convierten en abogados en derecho de propiedad intelectual para empresas de alta tecnología. Algunos se convierten en empresarios emprendedores y / o capitalistas de riesgo. Aquí es donde la amplitud de habilidades es útil. Lo mismo para tener competencia intercultural. Además, esto le ayuda en la investigación interdisciplinaria, si la investigación es su taza de té.
Puedo estar terriblemente equivocado, pero creo que hay muchos más ingenieros de software y desarrolladores web poco calificados que los diseñadores de VLSI (léase: diseñadores de circuitos integrados digitales). Hay muchos más diseñadores VLSI que diseñadores AMS / RF IC. La proporción de ingenieros / desarrolladores de rockstar es muy pequeña. El número de desarrolladores de software altamente calificados también es muy pequeño, especialmente en temas específicos como visión por computadora integrada y automatización de diseño electrónico; Estas personas suelen tener MS / Ph.Ds en CS y / o ECE.
El número de programas BS / MS CS no tan buenos es enorme. Es muy difícil diferenciarse en muchos trabajos tradicionales de desarrollo de software, incluso para desarrolladores de pila completa. Desarrolladores front-end? Olvídalo. Elija algo que sepa que muchos, si no la mayoría de las personas, odian y son débiles / pobres pero a los que ama. Estará mucho mejor trabajando en ese punto óptimo, que le permitirá innovar en exceso a la gran cantidad de desarrolladores de software en América Latina, Europa, Asia del Sur (incluida India) y Asia Oriental (por ejemplo, China, Corea del Sur, Japón y Taiwán).
Además, las tendencias tecnológicas emergentes en big data, computación en la nube y sistemas ciberfísicos (que facilitan el Internet de las cosas) le permiten explotar las habilidades de ECE mejor que los graduados de CS. La mayoría de los graduados de CS son débiles en análisis numérico, física e ingeniería. No pueden manejar la ingeniería, el análisis estadístico, el modelado estocástico (alguna vez se supo de estudiantes de CS que se ofrecieron como voluntarios para tomar clases de ECE de posgrado en procesos aleatorios en MIT, Berkeley, Stanford y USC? Probablemente no.) sistemas físicos (CPS). Explota esto. Ahora, de todos modos, está recopilando tanta información en sus dispositivos CPS. ¿Qué deberías hacer con ellos? Gran análisis de datos! El análisis específico del dominio, ya sea para el baloncesto, el análisis financiero o la medicina, será el punto ideal para que aproveches tu sabiduría y conocimiento sobre tu pasión (lo que sea).
En pocas palabras: un título de ECE puede ayudarlo a separarse más fácilmente del paquete. Sin embargo, no es para todos.
P / S: Hagas lo que hagas, no escuches fanáticos como Razvan. No solo es antiamericano, anti-CS, sino también tonto y no tan inteligente.