The Code book is a really solid read, for people of any programming experience. I’m happy to see @tedu mention it here. It’s probably my favorite example of something meandering up the jiggling pile of abstractions we use every day.
@tedu I enjoyed the PayPal story. On hardware vs software, it might help to think of Cleanroom methodology as an example as it was inspired by hardware people’s approach and formal methods. It resulted in low-defect software for all the teams that tried it. It also lends to a functional style tying into fact that things like Haskell and QuickCheck themselves knock out lots of errors.
Hardware people also use lightweight formal methods and test-generation tools. The software counterparts catch plenty of errors, too.