¿Es bueno para un ingeniero informático especificar en un campo de software en lugar de un campo de hardware?

Soy tal persona Me gradué BSCE de UMich 1997. Tomé [no puedo recordar la mayoría de los números de curso y es probable que ahora sean diferentes de todos modos]

Pascal
FORTRAN
C
C ++ con estructuras de datos y algoritmos
Diseño de lógica digital
Circuitos análogos
Arquitecturas informáticas (EECS370 y EECS470)
Diseño del compilador
Señales y sistemas
Ingeniería de software

Se podría decir que me concentré un poco más en el software que en el hardware. Pero en mi carrera en los últimos 17 años me he acercado cada vez más al límite del hardware / software. He escrito verilog para FPGA / CPLD. He escrito controladores de dispositivos para una amplia gama de dispositivos: PCI NIC, USB, I2C, SPI, etc. He escrito varios sistemas de archivos basados ​​en FLASH. He escrito un programador JTAG en circuito. Considero que herramientas como Wireshark y ámbitos lógicos [¡especialmente las que tienen módulos de análisis de protocolo integrados!] Son igualmente útiles en la búsqueda de la verdad.

CE es lo mejor de ambos mundos, y mientras estás inmerso en él, puedes elegir tu propia dirección en función de lo que despierte tu interés. Desearía haber podido tomar algunas clases más de electrónica analógica, y haberlas tomado un poco más en serio que yo. Pero por lo que vale, tome lo que sea más interesante para usted. Intente obtener una buena base tanto en hardware como en software: no se preocupe demasiado por el equilibrio si encuentra algo * increíblemente * interesante. El resto se puede aprender en el trabajo.

Depende de lo que quieras hacer. Trabajo en un simulador de C ++, pero como estoy modelando hardware, tengo que tener conocimiento de los tiempos, las tuberías, los protocolos de bus y la coherencia de caché.

En el otro lado de la moneda, recientemente hablé con un compañero de trabajo que es diseñador de RTL. Su experiencia era en VLSI, y mencionó que ha realizado muy poca programación en sus trabajos. La mayor parte era Perl para scripts de automatización básicos.

Al menos es una buena idea ser algo competente en software y programación orientada a objetos. El software de aprendizaje ampliará sus oportunidades, y mantener sus habilidades actualizadas nunca es una mala idea.

More Interesting

Soy un graduado de BTech y trabajo como desarrollador de software. ¿En esta etapa puedo estudiar para una AC y convertirme en un contador público?

¿Cuál crees que es mejor, desarrollo web, desarrollo de software o desarrollo móvil?

¿Cuáles son los lenguajes de programación en el desarrollo de software que han quedado en desuso después del uso convencional?

¿Qué debo hacer si encuentro un error en Facebook?

¿Qué es una carrera en pruebas de software?

Puedo obtener Ingeniería de Software en SRM Kattankulathur (Campus Principal) y CSE en SRM NCR campus. Soy residente de Delhi. ¿Que debería tomar yo?

¿Cuáles son los desafíos que enfrentan las empresas cuando subcontratan procesos comerciales o desarrollo de software a tiendas en el extranjero?

Soy ingeniero de software (ingeniero de Android) en una pequeña empresa en los EE. UU. Y, en última instancia, busco ser el CTO de una gran empresa (cofundador o no). ¿Debo convertirme en un científico de datos o un ingeniero de back-end? ¿Qué cosas puedo hacer o aprender?

¿Cuál es la mejor y más rápida forma de desarrollar una sencilla aplicación para iPad?

Ingenieros de software: Dada su experiencia en el desarrollo de software, ¿cree que siente más o menos simpatía por los problemas con el despliegue del intercambio de salud que el estadounidense promedio?

¿Hay algún software para hacer logotipos?

¿Cuál es la mejor manera de encontrar distribuidores, revendedores de software?

¿Cuáles son algunos libros recomendados sobre modelado de datos?

¿Cuáles son algunos trucos de depuración que sigues en el trabajo?

Cómo motivar a mi equipo de desarrollo ágil