Saber cómo funcionan las cosas, ya sea cómo funciona la máquina virtual y cómo funciona en su plataforma, o cómo ciertas construcciones de C++ se transforman en ensamblaje siempre lo hará un mejor programador, porque comprenderá por qué deberían ser las cosas hecho como son.
Necesita comprender cosas como la memoria para saber qué cache-falla y por qué podrían afectar su programa. Debes saber cómo se implementan ciertas cosas, aunque solo uses una interfaz o una forma de alto nivel para llegar a ella, saber cómo funciona te asegurará que lo estás haciendo de la mejor manera.
Para el trabajo por paquetes, necesita comprender cómo se almacenan los datos en las plataformas y cómo el envío a través de la red a una plataforma diferente puede cambiar la forma en que se leen los datos (endian-ness).
Su compilador hará el mejor uso de la plataforma en la que está compilando, por lo tanto, si se apega a los estándares y códigos bien, puede ignorar la mayoría y asumir que el compilador sacará lo mejor.
Así que, en resumen, no. No necesita saber las cosas de bajo nivel, pero nunca está de más saber.
¿Alguna vez entiende el sentido de idiomas como Java? Prácticamente se ejecuta sin modificaciones en todas las plataformas compatibles sin cambios en el programa. –
La comparación de Java con C++ en términos de independencia de la plataforma muestra una falta de comprensión de los méritos y fallas de los idiomas/plataformas mencionados. –
¡los idiomas mencionados son solo ejemplos! ¡No estoy comparando ni criticando! – g06lin