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.
- Soy un programador 'C' con más de 15 años de experiencia en programación en Kernel / Embedded Systems. Sin embargo, encuentro la asamblea intimidante. ¿Eso es normal?
- ¿Cuáles son los pros y los contras de ICE (emuladores en circuito) versus ICD (depuradores en circuito)?
- Cómo aprender incrustado en C ++
- ¿Cuál es el trabajo de un ingeniero integrado?
- ¿Cómo seleccionamos un IDE para el desarrollo de software integrado? ¿Debería basarse en RTOS planificado o procesador?