Seconded, big time. Blockchain was a hand-wavy haze for me until I got my hands on this book. As a programmer it's frustrating to read most high-level summaries of cryptocurrency/blockchain because they are often geared to a general audience and raise more technical questions than they answer - not so in "Mastering Bitcoin." The author does an impressive job of creating motivating scenarios before diving into concrete details. The chapters are well-sequenced but they stand up well to a bit of jumping around as your curiosity takes you in different directions. I thought this book was a real pedagogical achievement.
I'm looking forward to his book on Ethereum. In the meantime, Chris Dannen's "Introducing Ethereum and Solidity" is helping me to get a good grasp.
In my opinion the best technical resource on Bitcoin.
https://www.bitcoinbook.info
His book on Ethereum is still work-in-progress.