I taught C for a couple of years and kept using this book. It does not let you treat the machine as an abstraction. When you compile something, you can read the assembly produced and learned from it
What stuck #
Speeding up a matrix multiply several times over by changing the loop order, without touching the arithmetic.