Bueno, no puedo estar completamente de acuerdo, porque tienes que preocuparte por todo. Y para el caso, una de las cosas que me encantan de la programación son los cambios a través de diferentes niveles de abstracción y tamaño que saltan rápidamente de pensar en nanosegundos a pensar en meses, y viceversa.
Sin embargo, las cosas superiores son más importantes.
Si tengo una falla en un par de líneas de problemas que causa un comportamiento incorrecto, probablemente no sea demasiado difícil de solucionar. Si está causando un bajo rendimiento, probablemente ni siquiera importe.
Si tengo una falla en la elección de la estructura de datos en un subsistema, que causa un comportamiento incorrecto, es un problema mucho más grande y más difícil de solucionar. Si está causando un bajo rendimiento, podría ser bastante grave o soportable, aún apreciablemente menos bueno que un enfoque rival.
Si tengo una falla en la relación entre las estructuras de datos más importantes en una aplicación, que causa un comportamiento incorrecto, tengo un rediseño masivo frente a mí. Si está causando un bajo rendimiento, podría ser tan malo que casi sería mejor si se comportara mal.
Y será lo que dificulte la búsqueda de esos problemas de nivel inferior (solucionar errores de bajo nivel normalmente es fácil, encontrarlos puede ser difícil).
Las cosas de bajo nivel son importantes, y su importancia restante a menudo se subestima seriamente, pero palidece en comparación con las cosas grandes.