Ho intenzione di rispondere a questa domanda come richiesto nel titolo:
Sì, uno sviluppatore dovrebbe conoscere il funzionamento interno dell'hardware. Quanto dipende dal tipo di sviluppatore e dai loro obiettivi, tempo disponibile e interesse personale. La priorità dovrebbe, ovviamente, essere sugli strumenti, le tecniche, ecc. Immediati che impiegano nella loro area. Questa opinione è sulla falsariga di essere un individuo a tutto tondo. Più conosci cose al di fuori del tuo mestiere, senza sacrificare il tuo mestiere, meglio è.
Ciò non significa che devi impazzire con il formaggio Whiz. Avere una buona panoramica dell'hardware, come interagiscono i pezzi, come li usano i sistemi operativi. In questo senso, suggerisco di leggere un libro di concetti sui sistemi operativi per tutti gli sviluppatori.
Conosco tutto questo? Diamine no. Ho dimenticato così tante informazioni inutili su SCSI che non sono nemmeno divertenti. Tuttavia, apprenderlo è stata un'esperienza inestimabile. Ho anche dimenticato molti altri dettagli relativi all'hardware, ma ricordo i concetti importanti che ho imparato da quella conoscenza.
Quindi, suggerisco sicuramente di conoscere l'hardware. Fallo ad un ritmo ragionevole, a seconda delle tue esigenze. Scopri quanti più dettagli puoi ragionevolmente, ma concentrati sui concetti.