Знание того, как все работает, будь то, как работает виртуальная машина и как она работает на вашей платформе, или как определенные конструкции C ++ преобразуются в сборку, всегда сделает вас лучшим программистом, потому что вы поймете, почему нужно что-то делать как они есть.
Вы должны понимать такие вещи, как память, чтобы знать, что такое ошибки в кэше и почему они могут повлиять на вашу программу. Вы должны знать, как реализованы определенные вещи, даже если вы можете использовать только интерфейс или высокоуровневый способ добраться до него, зная, как это работает, убедитесь, что вы делаете это наилучшим образом.
Для работы с пакетами вам необходимо понять, как данные хранятся на платформах и как их передача по сети на другую платформу может изменить способ чтения данных (endian-ness).
Ваш компилятор будет наилучшим образом использовать платформу, на которой вы компилируете, поэтому, если вы будете хорошо придерживаться стандартов и кода, вы можете игнорировать большинство вещей и предполагать, что компилятор извлечет то, что лучше.
Короче говоря, нет. Вам не нужно знать материал низкого уровня, но это никогда не повредит знать .