Whichever profession you come from you'll reach a point where you are forced to rely on something someone else built. More than that, you'll have to trust it without fully understanding it. The reasons you do this are vast, but in the broadest sense it is to save the related quantities of time and money.
I've completed Albert Paul Malvino's "Digital Computer Electronics", an early microprocessor bible of sorts. This edition was published in the Intel 8080 era. It has bridged the gap, for me, between the behavior of instruction sets and their implementation.
the tidal wave of microcomputers will revolutionize every aspect of our lives; it will create a whole new world.
Malvino's clear writing makes his guiding of the reader through increasingly complex circuits easy to understand. No words are gratuitous even though many were repeated! His repetition to reinforce concepts throughout the book is well timed and appreciated. He also teaches the material from a historical perspective which I really appreciate. I tend to believe this is how web programming should be taught - from a humble static website through to dynamic service oriented architectures.
It's honestly refreshing to read a text like this. It reminds me of a Physical Chemistry textbook Professor Garetz used at Polytechnic. So few people write about complicated subjects without drowning it in terminology. It's a quality you see in these "bible" type textbooks which are still in usage 10, 20, 30+ years from their first edition run.
As he states, "This doesn't mean this book is easy. It means you never get a complex explanation when a simple one will do. It means the discussion of each topic is no harder than it has to be. It means the book is for your ego trip, not mine; a reader is very smart when an author gets out of the way." How bhuddist.
Where next? Possibly... investigating how compilers target and optimize for different instruction sets - a topic I've always trusted to my betters but nevertheless am curious about.