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.
- ¿Cuál es la diferencia entre ingeniero de software e ingeniero de back-end?
- Outsourcing de código: ¿Cuánto cuesta contratar a un ingeniero de software de contrato a tiempo parcial de India o China?
- ¿Estaría perdiendo el tiempo ganando un profundo nivel de experiencia en algoritmos y matemáticas en mi carrera como ingeniero de software?
- ¿Cuáles son las habilidades necesarias para pasar de un programador de laboratorio de investigación a un ingeniero de software industrial?
- ¿Cuál es el nivel de dificultad de la Ingeniería en Informática en comparación con el 12º PCM estándar?
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.