
Programming: Principles and Practice Using C++ (2nd Edition)
Bjarne Stroustrup
4.5 on Amazon
3 HN comments

Blood, Sweat, and Pixels: The Triumphant, Turbulent Stories Behind How Video Games Are Made
Jason Schreier
4.7 on Amazon
3 HN comments

The Art of Doing Science and Engineering: Learning to Learn
Richard W. Hamming and Bret Victor
4.7 on Amazon
3 HN comments

Effective Java
Joshua Bloch
4.8 on Amazon
2 HN comments

Mastering Bitcoin: Programming the Open Blockchain
Andreas M. Antonopoulos
4.7 on Amazon
2 HN comments

Weapons of Math Destruction: How Big Data Increases Inequality and Threatens Democracy
Cathy O'Neil
4.5 on Amazon
2 HN comments

The Making of Prince of Persia: Journals 1985-1993--Illustrated Edition
Jordan Mechner
4.8 on Amazon
2 HN comments

Steve Jobs
Walter Isaacson, Dylan Baker, et al.
4.6 on Amazon
2 HN comments

Effective C: An Introduction to Professional C Programming
Robert C. Seacord
4.5 on Amazon
2 HN comments

Building Secure and Reliable Systems: Best Practices for Designing, Implementing, and Maintaining Systems
Heather Adkins, Betsy Beyer , et al.
4.7 on Amazon
2 HN comments

Database Internals: A Deep Dive into How Distributed Data Systems Work
Alex Petrov
4.7 on Amazon
2 HN comments

Programming Rust: Fast, Safe Systems Development
Jim Blandy, Jason Orendorff, et al.
? on Amazon
2 HN comments

Everybody Lies: Big Data, New Data, and What the Internet Can Tell Us About Who We Really Are
Seth Stephens-Davidowitz, Timothy Andrés Pabon, et al.
4.4 on Amazon
2 HN comments

Mastering Ethereum: Building Smart Contracts and DApps
Andreas M. Antonopoulos and Gavin Wood Ph. D.
4.6 on Amazon
2 HN comments

Java Concurrency in Practice
Brian Goetz , Tim Peierls, et al.
4.7 on Amazon
2 HN comments
pjmlponJuly 7, 2021
I highly advise reading "Java Concurrency in Practice".
Note that future Java primitive classes don't have monitors.
joshkaonApr 5, 2021
The older generation are in this place because back then none of the technologies you listed existed and so they had to know the more low level things.
A book that might help some of your knowledge gaps (at least directionally) is The Imposter's Handbook[1] by Rob Conery.
If you're specifically aiming to get away from CRUD take a look at the various Domain Driven Design books by Eric Evans[2] and others. This is the opposite direction to your ask though (more high level than low level).
If you want to go deeper in Java, read Effective Java[3] and Java Concurrency in Practice (JCIP)[4]
Lastly, if you want to experience the reasons why some of that early comp-sci stuff happened the way it did, playing with expensive hardware is the least effective way to find understanding of constraints. Instead consider grabbing devices with significant limitations like an Arduino, ESP32, or similar (I'm partial to the Wio Terminal[5] and M5Stack[6] as interesting easy to get started devices, but others would suggest various Arduinos or Raspberry Pi devices). Realistically you're going to learn much more by coming up with a self-challenging project and completing it than just by learning it for the sake of learning.
[1]: https://bigmachine.io/products/the-imposters-handbook/
[2]: https://www.amazon.com/Domain-Driven-Design-Tackling-Complex...
[3]: https://www.amazon.com/Effective-Java-Joshua-Bloch/dp/013468...
[4]: https://www.amazon.com/Java-Concurrency-Practice-CONCURRENCY...
[5]: https://www.seeedstudio.com/Wio-Terminal-p-4509.html
[6]: https://m5stack.com/