Saya akan menjawab ini sebagaimana ditanyakan dalam judul:
Ya, pengembang harus mengetahui cara kerja bagian dalam perangkat keras. Berapa banyak tergantung pada jenis pengembang & tujuan mereka, waktu yang tersedia, dan minat pribadi. Prioritas harus, tentu saja, pada alat langsung, teknik, dll, yang mereka gunakan di daerah mereka. Pendapat ini sejalan dengan menjadi individu yang berpengetahuan luas. Semakin banyak Anda mengetahui hal-hal di luar keahlian Anda, tanpa mengorbankan keahlian Anda, semakin baik.
Itu tidak berarti bahwa Anda perlu menjadi gila dengan Whiz Keju. Memiliki ikhtisar perangkat keras yang baik, bagaimana bagian-bagiannya berinteraksi, bagaimana sistem operasi menggunakannya. Sejalan dengan ini, saya sarankan membaca buku konsep sistem operasi untuk semua pengembang.
Apakah saya tahu semua ini? Heck no. Saya sudah lupa begitu banyak informasi yang tidak berguna tentang SCSI yang bahkan tidak lucu. Namun, belajar tentang itu adalah pengalaman yang sangat berharga. Saya juga lupa banyak detail perangkat keras lain yang terkait, tetapi ingat konsep penting yang saya pelajari dari pengetahuan itu.
Jadi, saya sarankan belajar tentang perangkat keras. Lakukan dengan kecepatan yang masuk akal, tergantung pada kebutuhan Anda. Pelajari sebanyak mungkin detailnya, tetapi fokuslah pada konsepnya.