¿En qué medida los ingenieros de software necesitan comprender la computadora y el hardware eléctrico?

Tomaré una puñalada rápida, habiendo hecho tanto el hardware de la computadora como varios trabajos de software

Propuesta 1: Si no está escribiendo software PARA ingenieros informáticos, diseñadores o firmware para manejar hardware, realmente NO necesita comprender la computadora u otro hardware electrónico en detalle. Por ejemplo, podría hacer diseño web y no entender realmente más allá del nivel más superficial cómo funcionan la CPU / memoria caché / memoria principal / IO. Básicamente es “si hago esto, entonces eso aparece en la pantalla”.

Proposición 2: existen beneficios para comprender el funcionamiento interno de su sistema operativo específicamente y de su hardware. Estos pueden, por ejemplo, darle una pista sobre la mejor manera de almacenar y recuperar datos, o cómo escribir un programa eficiente en velocidad. Relacionado, es una muy buena idea entender cómo su compilador o lenguaje de script hace las cosas internamente. Esta puede ser la mayor victoria.

Sin embargo, entrar en la referencia del lenguaje ensamblador de un procesador en particular probablemente NO será de gran beneficio. En realidad (estando más en el lado del diseño físico) nunca profundicé mucho en el conjunto de instrucciones de Intel. No me gustó desde mi exposición al 8080, prefiriendo las cosas de Motorola 🙂

En pocas palabras: todo depende del tipo de software que esté haciendo (no es de extrañar). Será obvio lo que necesita saber después de escribir un programa de bajo rendimiento o no tan útil en su trabajo. Hay tanto para saber en el espacio del software que solo comprender todo eso lo mantiene ocupado.

Creo que tener una comprensión básica del lenguaje ensamblador y estar familiarizado con el uso de E / S mapeadas en memoria para hablar con los registros ASIC puede ser una buena habilidad si desea trabajar en dispositivos IoT; que se está volviendo popular Pero realmente puede trabajar completamente con software de alto nivel y no tener que preocuparse realmente por el hardware.

More Interesting

¿Es una buena idea ser ingeniero de software en Montreal?

¿Qué define a un gran programador?

Cómo convertirse en un ingeniero de software de clase mundial

¿Podría nombrarme una buena razón para ser ingeniero de software?

Soy ingeniero de software y me gustaría ser un defensor del desarrollador. ¿Qué debo hacer para lograr eso?

¿Crees que un título de ingeniería de software adecuado debería tomar aproximadamente 6 años de educación para ser un ingeniero de software completamente maduro?

¿Debería considerar la posibilidad de pasar a ser un ingeniero de software en un banco de inversión?

¿Cuáles son los ejemplos estándar de la vida real de conceptos orientados a objetos?

Si la característica más importante de Twitter es el tiempo real, ¿por qué optó por Java en lugar de C ++?

¿Por qué la calidad del trabajo es mala en las empresas multinacionales de software de origen indio?

¿Alguien ha sido contactado por alguna consultora de visas para una visa de relaciones públicas en Canadá bajo el Programa de trabajadores calificados? ¿Es esa una buena opción para un ingeniero de software de India que tenga 3.5 años de experiencia laboral?

¿Google o Facebook tienen ingenieros de software que tienen un doctorado?

¿Qué cosa desearías haber hecho diferente cuando comenzaste como ingeniero de software?

¿Qué temas debe saber un ingeniero de software?

Para un currículum interno de ingeniero de software, ¿cómo describiría que sabe cómo usar Linux y la línea de comandos?