¿Los ingenieros electrónicos suelen ser muy buenos programadores porque hacen desarrollo integrado?

En primer lugar, la mayoría de los EE no son programadores integrados, es una habilidad especializada. EE es un grado muy amplio: algunos EE tienen chips, otros láser o software MEMS o EDA o unidades de disco. Algunas personas realizan tanto el diseño de circuitos como el desarrollo de firmware, pero es raro que alguien se destaque en ambos.

Y aun así, el desarrollo de firmware lo hace muy bueno en algunas cosas: eficiencia de memoria, programación concurrente, programación en tiempo real, protocolos de red de bajo nivel, pero probablemente significa que tiene relativamente poca experiencia con conceptos de lenguaje más abstractos de alto nivel o con un alto cálculo y memoria Temas intensivos como el aprendizaje automático o en general la construcción de sistemas distribuidos a gran escala o incluso sitios web escalables. Por lo general, son mejores para analizar el multiplicador constante en sus algoritmos en lugar de su complejidad O (n).

Hubo un momento en que la programación era programación, y los desarrolladores integrados eran simplemente mejores porque entendíamos lo que estaba sucediendo bajo la superficie. Pero hoy, cuando las bibliotecas y las abstracciones son tan poderosas que un equipo de 5 personas puede crear un servicio que admita a decenas de millones de usuarios, existe una gran distinción entre lo que funciona en un entorno informático distribuido de grandes servidores paralelos y lo que funciona en el entorno integrado. mundo.

No. La mayoría de los ingenieros electrónicos nunca realizan ningún desarrollo de software. Hay bastante electrónica para diseñar. La programación integrada es una disciplina completamente diferente. Un SOC grande típico, el tipo de cosa que encuentras en tu teléfono, tomará alrededor de 2 años para que las personas que son todos ingenieros de hardware lleguen desde la concepción hasta la fabricación. Luego tomará un grupo de ingenieros de software otros 2 años, algunos de los cuales se ejecutan en paralelo usando la emulación, para poner en funcionamiento el paquete de software.

Sus dos trabajos completamente diferentes.

Los ingenieros electrónicos generalmente escriben firmware (software de ensamblaje). Donde tienen memoria limitada y CPU. Necesitan administrar la complejidad de la api de h / w, la comunicación en serie, etc. Y la mayoría de las veces terminan con código complejo, propenso a errores, repetitivo y no estructurado.

Escribir un programa complejo no te convierte en un buen programador. Escribir una solución de manera simple, reutilizable y bien organizada para un problema dado lo convierte en un BUEN PROGRAMADOR.

More Interesting

Cómo ser perfecto para practicar la programación en C en los próximos 2 meses

¿Cuál es el alcance del sistema embebido en inteligencia artificial?

Cómo construir mi propio sistema integrado para un quad-copter y cuál es el mejor lenguaje de programación para usar

¿Cuál es la diferencia entre sistema embebido y sistema informático?

¿Qué es el temporizador de vigilancia en el sistema integrado?

¿Dónde comienza un principiante con conocimientos mínimos de programación y microcontroladores a aprender sobre los sistemas integrados?

¿Qué carrera es mejor para comenzar, incrustado o desarrollador Java?

¿Qué sucede dentro de un microcontrolador cuando grabo un programa en él?

Cómo comenzar con RTOS

¿Qué es push pull en microcontroladores?

¿Cuáles son los temas de investigación en el campo de los sistemas integrados hoy en día?

¿Qué tan importante es el lenguaje ensamblador para un estudiante de ECE? ¿De dónde debería aprenderlo mejor, si es significativo?

¿Cuáles son algunos proyectos que podría hacer en 8 meses que podrían aumentar mis posibilidades de conseguir un buen trabajo en sistemas integrados?

¿Cuál es el siguiente paso para una persona que está interesada en los sistemas embebidos después de trabajar en placas ATmega, MSP430 o Arduino y construyó pocos proyectos de hardware decentes? ¿Qué hay de trabajar en Linux embebido?

¿Cuál es una buena declaración de problema para un proyecto en el dominio de sistemas integrados?