¿Es necesario que un programador entienda cómo funciona la computadora a nivel de hardware?

No diré que es necesario, pero de nuevo depende de qué tipo de programador seas.

Desarrollador de software:

Como ingeniero de software, desarrollará principalmente programas que se ejecutan en uno de los sistemas operativos. Entonces, en este caso, el sistema operativo se encargará del consumo de energía. Las cosas que debe tener cuidado que de alguna manera pueden relacionarse con el consumo de energía son las siguientes,

  1. Frecuencia de acceso a la memoria: cuántas veces va a acceder a la memoria, lo que aumenta cuando usa algoritmos que incluyen sondeo.
  2. Frecuencia de acceso de E / S: cuántas veces va a acceder a los puertos de E / S, todas las bibliotecas que necesitan realizar estas operaciones están correctamente asignadas, es decir, intente reducir el uso de bibliotecas estáticas. Las llamadas constantes de IO también pueden crear una sobrecarga del sistema.
  3. Si está desarrollando la aplicación de red, debe tener conocimientos básicos de hardware de los componentes que se utilizan.

Desarrollador de firmware:

  1. Aquí desarrollará el código que interactúa directamente con el hardware, como configurar GPIO e Inicializar hardware, administrar estados de energía. En este escenario, debe tener un conocimiento adecuado del hardware.

Soy residente en segunda categoría.

Gracias,

Shri

No es un problema si no entiendo las computadoras a nivel de hardware lo que importa son las habilidades de resolución de problemas para aprender cualquier lenguaje de programación y un algoritmo más importante.

Ciertamente no hasta que hayas dominado la programación … Solo concéntrate en la programación. (confía en mí soy ingeniero)