I read Why Computers Work: 2nd Edition - Essential Knowledge of Hardware and Software.
I revisited it since a revised edition was released.
It helps to understand the flow from hardware to software.
I feel that reading it alongside Why Programs Work: 3rd Edition - Essential Knowledge of Programming would be beneficial.