"Gödel, Escher, Bach" by Douglas Hofstadter
It's presented in a very non conventional way, but teaches you to think about many problems in a more "first principles" way, and connects real world problems with more abstract idea. I have read it well into my CS career and it was still worth it.
https://en.wikipedia.org/wiki/G%C3%B6del,_Escher,_Bach