Ну, я не могу полностью согласиться, потому что вы должны беспокоиться обо всем этом. И в этом отношении, одна из вещей, которые мне нравятся в программировании, - это переключение между различными уровнями абстракции и размерами, которые быстро переходят от размышлений о наносекундах к размышлениям о месяцах и обратно.
Однако высшие вещи важнее.
Если у меня есть пара ошибок, которые приводят к некорректному поведению, возможно, это не так сложно исправить. Если это вызывает его недостаточную производительность, это, вероятно, даже не имеет значения.
Если у меня есть недостаток в выборе структуры данных в подсистеме, который приводит к некорректному поведению, это гораздо большая проблема, которую сложнее исправить. Если это приводит к его недостаточной производительности, это может быть довольно серьезным или терпимым, но все же заметно менее хорошим, чем у конкурирующего подхода.
Если у меня есть недостаток во взаимосвязи между наиболее важными структурами данных в приложении, который приводит к некорректному поведению, передо мной стоит масштабный редизайн. Если это вызывает его недостаточную производительность, это может быть настолько плохо, что было бы почти лучше, если бы он вел себя неправильно.
И это будет то, что затрудняет поиск проблем низкого уровня (исправление ошибок низкого уровня обычно легко, это может быть трудно).
Материал низкого уровня является важным, и его остающимся значение часто серьезно занижено, но это бледно по сравнению с большим материалом.