Post author here - I've been collecting and researching science, math, physics, programming books since 2001 or 2002, so that is close to 15 years of book research. I'm really passionate about high quality books. I carefully evaluate every book that I'm about to buy, seek reviews, online previews and opinions. Then I make the purchase.

I did a degree in physics just for fun so I went through many math and physics books, but I'm really most passionate about computers, software development and programming so most of my recommendations are going to be on that.

I don't claim to have read every single book from cover to cover and worked through every problem but I can make educated recommendations, and I've gone through every book that I recommend. I've spent unreasonable amount of time looking for new books that are not top cited. Some of my recommendations will be top cited books but many won't be. Top cited books get my attention but they're not always good.

Talking about dragon book I'm probably not going to recommend it. It's not fun. You can't get things done with it in any reasonable amount of time. I've actually been thinking of writing my own book on compilers where you get things done quicker with less theory and it's fun. The problem with dragon book is that people recommend it just because they've heard of it. Hardly anyone has actually read it.

For the math books I'm not going to recommend standard text books much. My recommendations are going to be books such as Counterexamples in Topology, Counterexamples in Analysis. Those are super fun books to work through as counterexamples warp your mind a little bit, and you get that tiny adrenaline rush when you get it. Another example is To Mock a Mockingbird. It's not a text book, it's not a top cited book, but it's so fun. Another example Street-Fighting Mathematics.

For the physics books I'm also not going to recommend too many standard text books. I also won't recommend popular science books as they're mostly stupid and won't stretch your mind a little bit. They may blow your mind a little bit but they won't stretch your mind. Example physics book recommendations include Thermodynamics by Enrico Fermi, just beautiful explanations of the most the basic thermodynamic concepts. Another example is Quantum Paradoxes by Yakir Aharonov and Daniel Rohlich. I'll stop here as it's too many spoiler alerts. :)

Let's take a look at the books that I recommended in the first post.

1. The New Turing Omnibus - I read this book cover to cover in one evening. It's such a fun read and introduced so many concepts. I enjoyed one of the chapters about Busy Beaver Problem so much that I spent a few days implementing Busy Beaver in several languages and wrote a program that visualizes how the Beaver travels on the tape: http://www.catonmat.net/blog/busy-beaver/

2. The Little Book of Semaphores - I read this book back in 2002 or 2003 when it was just released in the 1st edition. I printed it for easier reading. I've a huge stack of printed pdf books and scientific papers (I just snapped some pics http://i.imgur.com/bjPgxMD.jpg, http://i.imgur.com/QJFumGl.jpg, http://i.imgur.com/FD2dx3L.jpg) and I just found the 1st editon of semaphores in my printed pdf stack (http://i.imgur.com/qe9hgHM.jpg). I worked through most of the problems.

3. Programming Pearls and More Programming Pearls - I just love the way Jon Bentley writes. I don't know what else to say. These two books really teach the basics of solving programming problems. It takes many years to master the basics in practice but these books teach the basics well. I once wrote a blog post (http://www.catonmat.net/blog/three-beautiful-quicksorts/) about Jon Bentley's chapter in Beautiful Code that he based on a chapter on quick sort in Programming Pearls.

4. The Little Schemer - I've gone through this book at least 5 times. Check out this photo that I just took of all the notes that I've made while reading it and the Seasoned/Reasoned Schemers (http://i.imgur.com/aeLEQh8.jpg). That is a lot of hours spent with these books. I enjoyed this book a lot and I copied out all the fun code examples and put them on GitHub (https://github.com/pkrumins/the-little-schemer), and I also wrote a blog post about deriving y-combinator based on one of the chapters in this book http://www.catonmat.net/blog/derivation-of-ycombinator/.

5a. The Elements of Style - I first heard about this book in 2006 or so when I got serious about becoming a great writer, started blogging and wanted to improve my communication skills. It's the most cited book and I gave in and bought it. It's really good because you can read it in a few hours and learn a lot. I follow many of the rules and guidelines in this book. I'm also going to recommend On Writing Well. Spoilers.

5b. The Elements of Programming Style - The Elements of Style + Brian Kernighan.

I wouldn't recommend a book that I don't trust is really well written. That just wouldn't be me. I stand behind my recommendations.