¿Qué lenguaje de programación es imprescindible para la ingeniería electrónica?

Referencia: Respuesta del usuario de Quora a ¿Qué cantidad de programación hay en ingeniería electrónica y de comunicación?

MATLAB para modelado matemático, diseño y análisis de sistemas / filtros, y la simulación se utiliza en ingeniería de control, procesamiento de señales, procesamiento de imágenes, diseño de antenas y muchas áreas de ECE.

Diseño de circuito integrado (IC) analógico / RF y de señal mixta: SPICE, SystemC-AMS, Verilog-AMS, Verilog-A, VHDL-AMS, Tcl, Perl, Python, scripts de shell UNIX

Diseño VLSI: Verilog (principalmente en los EE. UU.; De lo contrario, VHDL), SPICE, SystemC-RTL y SystemC-TLM, SystemVerilog, C / C ++, Tcl, Perl, Python, scripts de shell UNIX y UML

LaTeX (+ BibTeX) para documentación

Opcional: MetaPost y TikZ para dibujar

Scripts de shell de UNIX: para trabajar de manera eficiente y efectiva en un sistema operativo similar a UNIX; saber usar expresiones regulares.

C, C ++, FORTRAN: para clases que involucran métodos numéricos, como diseño de antena, interferencia electromagnética y capacidad (EMI / EMC).

C, C ++, Verilog-A: para modelado de dispositivos / compactos.

LabVIEW: ingeniería de energía; diseño, modelado y análisis de máquinas eléctricas; diseño de red inteligente

Lenguajes de programación de ensamblaje, C, C ++ y SystemC-TLM para sistemas embebidos

Según yo, los siguientes idiomas son necesarios para los ingenieros electrónicos:

  1. PROGRAMACIÓN C ( más primitiva y esencial idioma para todos los ingenieros )
  2. MATLAB ( Especialmente para Señal procesamiento )
  3. LENGUAJE DE ENSAMBLAJE ( Útil, si desea programar microcontroladores como MSP430 de TI, Arduino, etc. y programación de microprocesador etc )
  4. Python ( código abierto y útil para la interfaz de múltiples dispositivos).
  5. Diseño del sistema digital: Verilog , VHDL.

Con todo esto, los BASES FUERTES de ELECTRONICS son IMPRESCINDIBLES.

Comience ahora (en el orden mencionado anteriormente).

TODO LO MEJOR 😉

Como se señala en algunas respuestas aquí, es altamente específico de disciplina. Intentaré ofrecer una imagen consolidada.
1) Sistemas integrados y tal C.

2) Diseño del sistema digital: Verilog , VHDL .

3) Ingeniería de control, sistemas de comunicación: MATLAB es extremadamente versátil con sus innumerables cajas de herramientas. MATLAB también es muy bueno para la informática científica de uso general.

4) Python es un buen sustituto de código abierto para MATLAB en algunas aplicaciones.

5) Lenguaje ensamblador : siempre es bueno saber al menos uno para comprender cómo se ejecutan los programas en los procesadores. Existe una variedad de lenguajes de ensamblaje basados ​​en la arquitectura del microprocesador y es posible que no se necesite un conocimiento riguroso ya que los conjuntos de instrucciones estarán disponibles. Pero es una buena idea codificar al menos uno de esos idiomas (personalmente, me pareció un ejercicio bastante agradable en cualquier cosa rudimentaria que hubiera codificado en los cursos).

6) Procesamiento de imágenes: biblioteca OpenCV / MATLAB / Python.

7) Computación en paralelo: CUDA (restringido a GPU NVidia) / OpenCL (compatible con casi cualquier arquitectura).

8) Olvidé por completo agregar este (un deber) – LATEX . Para escribir documentos, trabajos de tesis, etc.

(Entradas de Dheeraj M Nagaraj)

Depende de su interés:

  1. Sistemas embebidos: C / ensamblador
  2. Computación científica: Python / Julia / Scilab / GNU Octave / MATLAB

Python está comenzando a usarse en microcontroladores (ver Micro Python – Python para microcontroladores). Al ser un lenguaje de propósito general, es mucho más versátil que Julia / Scilab / GNU Octave / MATLAB. Está a la zaga de C y Julia en velocidad de ejecución, pero puedes solucionarlo con Cython / Numba. Las aplicaciones se pueden desarrollar para dispositivos de escritorio, web o portátiles.

Scilab y MATLAB tienen una herramienta de simulación dinámica del sistema que puede resultar útil para los ingenieros eléctricos.

Incluso si la descripción de su trabajo como ingeniero en cualquier campo, no solo EE, no incluye el desarrollo de software, debe aprender Python. Es casi indispensable para scripts pequeños, pero potencialmente también útil para aplicaciones más complejas. Su ventaja más importante es la gran selección de bibliotecas de código abierto. Independientemente de lo que quiera hacer con él, es probable que alguien ya haya hecho una parte importante, o incluso la mayoría, de lo que desea hacer. Basta con mirar a PyPI: el índice del paquete Python.

Solo un ejemplo de mi trabajo para mostrar por qué Python es tan útil: hace unos años, mi equipo encontró un problema con nuestro proyecto actual en nuestro software de gestión de requisitos. Básicamente cometimos el mismo error en varios cientos de elementos de trabajo. Un elemento de trabajo podría ser, por ejemplo, un requisito, un caso de prueba o un resultado de prueba. Varios cientos de casos de prueba y requisitos podrían haberse visto afectados. La función de edición masiva del software de gestión de requisitos no podría ayudarnos en ese caso específico. La solución normal habría sido abrir cada uno de los casos de prueba potencialmente afectados y, si fuera necesario, corregir este caso de prueba y los requisitos vinculados a este caso de prueba. Esto habría tomado al menos 5 días-persona, y existía la posibilidad de pasar por alto instancias del error o introducir nuevos errores.

Entonces me pregunté si podría resolver el problema con un script de Python. Descubrí que el software de gestión de requisitos almacena cada elemento de trabajo en un archivo XML separado en nuestro repositorio SVN. Después de mirar varios de estos archivos y buscar “XML” en el índice del paquete Python, estaba seguro de que podría escribir un script para corregir los elementos de trabajo. Después de obtener el permiso de mi jefe, escribí el guión y lo probé en una copia local de los archivos del proyecto, mientras mis colegas seguían trabajando en el proyecto. Cuando mi guión funcionó, mi equipo detuvo el trabajo en todos los elementos de trabajo. Saqué una copia nueva del directorio del proyecto del repositorio SVN, hice una copia de seguridad de la copia por si acaso y dejé que mi script hiciera el trabajo. Luego puse el directorio del proyecto procesado en el repositorio SVN. Verificamos manualmente una selección de elementos de trabajo y descubrimos que el problema estaba resuelto. Después de una interrupción de quizás una hora, todo el equipo volvió a trabajar en los elementos de trabajo corregidos.

Esto me llevó alrededor de un día y medio, y probablemente fue el script de Python más complejo que había escrito hasta entonces. Además, casi no tenía conocimiento previo sobre XML.

Los ingenieros eléctricos a menudo se involucran en la construcción de sistemas integrados, que generalmente contienen un microcontrolador junto con un montón de dispositivos electrónicos periféricos (teclado, pantalla, sensores, inalámbrico, control de motores, etc.). En casi todos los casos, estos microcontroladores están programados en C, y en muchos casos estará programando en el “metal desnudo”, es decir, sin un sistema operativo (aunque puede haber un HAL – Capa de abstracción de hardware – que facilita el acceso al hardware a través de los muchos protocolos disponibles: SPI, I2C, UART, USB, etc.) C ++ a veces se usa en sistemas integrados más grandes.

Si está modelando circuitos, es posible que desee aprender MATLAB.

Si va a realizar secuencias de comandos, por ejemplo, controlando algunas pruebas automatizadas, es posible que desee utilizar Python.

Para el trabajo de microcontrolador incorporado que también es aplicable para portar dentro y fuera de una PC, o comunicarse con otros programas, el lenguaje más valioso para conocer es “C”.
NO C +, no C ++, no C &. Sólo C”. ANSI “C” es el mejor, pero son variaciones sutiles que pueden resultar útiles.
Por cierto: la broma es que “C” significa “Cryptic” No muy lejos de la verdad.

Para establecerse bien en el campo central de ECE, debe dominar algunos de estos cursos.

VHDL, Verilog, Matlab (nivel intermedio), VLSI, sistemas integrados, C integrado, ASIC, Spice, ModelSim, diseño de chips y algunos más.

Debe – Lenguaje C para implementar el sistema de control en tiempo real.

Matlab para resolver simulaciones matemáticas

Python para resolver problemas eléctricos simples.

Java Script para aplicaciones de control basadas en web.

Aunque he enumerado 4 idiomas, si un ingeniero eléctrico practica la programación en C, aprenderá todos los demás idiomas fácilmente.

Si desea hacer una carrera en sistemas embebidos y desarrollo de firmware, le sugiero que aprenda C y C ++. Además de aprender C, se aclararán sus fundamentos y podrá aprender cualquier otro idioma muy fácilmente.

  1. C incrustado
  2. Algún lenguaje de alto nivel para la programación de la interfaz de usuario (utilicé las bibliotecas VBasic y C ++ plus GTK)
  3. En este momento (la era de Internet de las cosas) es muy importante un lenguaje de script (como javascript, JQuery) para integrar dispositivos con interacción web y de red.

Eso depende totalmente de lo que intentes hacer. La electrónica es un campo muy amplio. Si estás en sistemas embebidos. entonces estarías haciendo, incrustado c, pic, o incluso ARM cualquier lenguaje que use. Si te gustan los sistemas de control, podrías estar trabajando en MATLAB, etc.
Como se señaló anteriormente, uno debe aprender c / c ++ para adaptarse fácilmente a cualquiera de los otros idiomas.

La ingeniería electrónica tiene muchos campos y en mis 15 años en el campo he conocido a algunos grandes ingenieros que no conocían un solo lenguaje de programación, así que, en mi humilde opinión, no hay un lenguaje “imprescindible”.
Aparte de eso, vea la respuesta de Elad Ben-Tzedeff a ¿Qué lenguaje de programación es más adecuado para un ingeniero electrónico?

Para describir la electrónica, diría Verilog-AMS. Casi todo lo que puedes hacer en C ++.

No use SystemC (las abstracciones y la implementación son malas). VHDL sigue lentamente el camino del Dodo (a menos que la comunidad de código abierto lo guarde). SystemVerilog tiene muchas cosas, pero solo es compatible con algunas compañías EDA (comercialmente).

Ninguno de los HDL (o C ++) realmente funciona correctamente para hacer sistemas electrónicos, por lo que tiende a haber muchas cosas extravagantes para hacer que las cosas funcionen en la práctica. Pasar a código abierto debería ayudar con eso, así que animo a las personas en el nivel SPICE a usar Xyce.

Bueno, depende de dónde te veas en los próximos 5 años.

1. Si está dispuesto a trabajar en un sistema embebido y aprender robóticamente programación de microcontroladores y matlab, pruebe también la estimulación por circuito ..

2. Si está dispuesto a unirse a una TI en el futuro, aprenda lenguajes básicos como C y Java, sea cual sea su interés.

¡¡Gracias!!

Según su interés, si está interesado en

empresas de fabricación de chips: Verilog / VHDL es muy importante.

Ingeniero de sistemas integrados: Keil, Arduino es importante.

Ingeniero de comunicación: MATLAB.

Pero, sea cual sea la empresa que sea, núcleo / software, debe ser fuerte en lenguaje C y también en estructuras de datos.

La electrónica es un vasto campo. Depende únicamente de dónde quieras vivir.
Pero como para cualquier ingeniero, el lenguaje de programación C es imprescindible. Pasar a lenguajes descriptivos de hardware Se requiere VHDL. Para resolver problemas matemáticos … MATLAB viene al rescate.
Pero para sobrevivir como ingeniero electrónico, C & C ++ haría su apuesta.

C seguro.
Matlab si quieres aprender sistemas de control, pero no es difícil si conoces C y tienes una mente básica en programación.
Realmente no recomiendo el lenguaje ensamblador, ya que es diferente para diferentes procesadores, y la mayoría de los procesadores tienen un entorno brillante para el desarrollo de C.

Depende de qué tema elegiste ya que se especializará en años posteriores. Por ejemplo, si elige sistemas de comunicación, entonces MATLAB es imprescindible. Los sistemas integrados solicitan lenguajes de programación específicos utilizados para programar microcontroladores PIC.

1. Universal: lenguaje C

2. Lenguaje de secuencias de comandos: Cualquiera de Perl / Tcl / csh

3. Lenguaje de descripción de hardware: Verlog / VHDL

Conceptos básicos de oops.

Personalmente, creo que son muy importantes para ingresar a la industria VLSI