The other day, it seemed to me that I know almost nothing about the hardware that I expect to run my software. I was a developer for about 5 years, but I did not study the theory / design of equipment since I left the university. I don’t even build my own cars anymore, because, being rudely honest, I would prefer to pay the extra bucks and leave the Comp Sci ransom in the store for me.
Although it is important to have a good understanding of the basics of what is happening under the hood, it has abstracted so far away from us as developers, we really don't need to worry about the intricacies of Programmed I/O or Memory-Mapped I/O , etc. ,
Or are we?
Notice that I'm talking about your daily LOB designer here, not about loyal naked guys.
So, define the “average” how you will, but overall, how deep should a skilled programmer dive?
source share