Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What are the most eye-opening textbooks you have ever read?
250 points by debanjan16 on May 13, 2023 | hide | past | favorite | 169 comments
In spirit of the tweet by Michael Nielsen: https://twitter.com/michael_nielsen/status/1656708273343459328?s=20



The Elements of Computing Systems: Building a Modern Computer from First Principles [0] [1]

Easily one of the most interesting and engaging textbooks I've read in my entire life. I remember barely doing any work for my day job while I powered through this book for a couple weeks.

Also, another +1 to Operating Systems: Three Easy Pieces [2], which was mentioned in this thread. I read this one cover to cover.

Lastly, Statistical Rethinking [3] really did change the way I think about statistics.

[0] https://www.nand2tetris.org/

[1] https://www.amazon.com/Elements-Computing-Systems-second-Pri...

[2] https://pages.cs.wisc.edu/~remzi/OSTEP/

[3] https://xcelab.net/rm/statistical-rethinking/


Would Statistical Rethinking help me interpret web app metrics? E.g. if I have a canary out and the response times are longer after x requests, is that significant?


I've found that Statistics is one of those topics that changes your world view about everything. You can consider pretty much any issue statistically, and that will enrich your perspective significantly. In that sense, Statistical Rethinking will help. However, it's a book on Bayesian stats, it's quite dense, and examples are coded in R. It may be overkill for web app metrics interpretation. For that you may be better served with basic stats & inference, frequencies, descriptive statistics, percentiles, basic distributions, data visualization (e.g., trend lines, scatter plots, boxplots, histograms), etc.

To be clear though, Statistical Rethinking is a beautiful piece of work. You can check out the author's lectures[0] and see how much they suit your needs.

[0] https://www.youtube.com/playlist?list=PLDcUM9US4XdPz-KxHM4XH...


The book is a bit more foundational than that. It teaches you about Bayesian statistics, and discusses (among other things) why the concept of binary yes/no statistical significance is usually not the best way of evaluating a hypothesis with data.

However, for your question specifically, the choice of prior is less meaningful when you have lots of data, and presumably a web app seeing hundreds or thousands of requests per second can gather enough data to determine if the canary has a different latency profile than the deployed version within a few seconds. Also, presumably you would use an uninformed prior for a test like that. If I were trying to prevent latency regressions in an automated deployment pipeline I would just compare latency samples after 1 minute with a t-test or something simple like that.


Calculus on Manifolds by Michael Spivak. http://www.strangebeautiful.com/other-texts/spivak-calc-mani...

For me, the eye opening thing was that any n-dimensional body is a transformation of the n-dimensional standard cube. This brings some mathematical consequences I don't understand, but what's important for me is that equations get much easier for the standard cube transformations because your corners are just ones and zeros.

E. g. I wrote an app that "unbends" a book page from a photo so it looks flat. It can be done with a single but rather large transformation, or with a pair of transformations: to and from the standard cube, and each transformation is then much simpler than their composition. 15 years after I learned that trick and 10 years after I wrote an app, I wrote a book called Geometry for Programmers.

If not for Spivak, I would have drowned in equations, never written the app and would have had nothing to write a book about.


I'm entirely failing to envision the process. I want to ask why is the first step (?mapping the book photo to a face of the cube?) is not just restating the original problem, but it's obvious that that question must be missing the point.


Since you want to find the color for every pixel of a flat page, you actually need your mapping the other way around - from a flat page to the photo. Which could be a combination of two: from the flat page to the standard cube, and then - from the standard cube to the photo.

Don't let the word "cube" confuse you, a 2D-cube is just a square.

I have the full explanation right here if you're interested: https://wordsandbuttons.online/biwhatever_transformations.ht...


This book "opened my eyes" to its contents, but that's not the lesson. It taught me valuable written communications skills I didn't even know I needed.

Kourik, _Drip Irrigation for Every Landscape and All Climates, 2nd Edition_ https://www.amazon.com/Drip-Irrigation-Every-Landscape-Clima...

Picked this up on a whim from the library. I have to say, I couldn't put it down, which was ... odd. It's concise, clear, well-ordered, and humorous at times. The author is humble and he's cross-referenced all his designs with an extensive bibliography.


Fractals Everywhere, Michael F. Barnsley.

I love the way it starts:

>Fractal geometry will make you see everything differently. There is a danger in reading further. You risk the loss of your childhood vision of clouds, forests, flowers, galaxies, leaves, feathers, rocks, mountains, torrents of water, carpet, bricks, and much else besides. Never again will your interpretation of these things be quite the same.


Not a textbook, but John Gleick's The theory of Chaos is a great read on chaos theory - very approchable!


That was a fun read. But it was written at the height of interest in chaos theory and so some of the curious things it talked about, like the Feigenbaum constants, went nowhere


Did chaos theory as a whole go anywhere? Where is it used, meteorology?


Didn't really go very far. It's a subfield of dynamical systems, and some of its results have been used there. People continue to study it, but it's more in the pure math area, at this point anyway. Recently I heard about some new research into "wild chaos" which sounds interesting.


Interesting! I'll look into that. I'm about 1/3 into The Information, from the same author - also a good read for anyone interested!


You just made a sale of copy. Holy shit that is a cool start!


Is it like Chaos by James Gleick?


not really. this is actually a textbook


marvelous book. prof barnsley is also a wonderful man and teacher


The books that taught me computer science

- Operating Systems: Three Easy Pieces ( https://pages.cs.wisc.edu/~remzi/OSTEP/)

- Designing Data Intensive Applications by Martin Kleppmann (https://dataintensive.net)

- Crafting Interpreters by Robert Nystrom (http://craftinginterpreters.com)



Second on Martin Kleppman’s book - really good. I have it on my nightstand as type.


It's amazing. One, I learned a lot about database internals.

But more importantly for me, it was an eye opener about all the differences between all those database engines out there.

There are lots of tradeoffs involved in trying to address the problems of distributed databases (obviously), but seeing that database A takes that choice, B another, C leaves out some common feature entirely and therefore doesn't have to care about this, D optimistically ignores the problem hoping to fix it later if it does happen, et cetera - very helpful.

They're not just trade offs, but serious useful databases actually exist that take the different options. Before reading the book I didn't understand how fundamental the differences between all those databases were, I think.


The Blind Spot: Lectures On Logic by Jean Yves-Girard

For context, Girard is a mathematical logician, philosopher, and co-discoverer of the type system System F (Haskell, ML, etc.). The book is a monograph on proof theory, and I was interested in learning more about affine and linear logic to deepen my understanding of Rust and other language ecosystems focused around the ability to explicitly model resources. However, along the way, I learned some other great things: (1) continental philosophy is deep and cool; (2) mathematical writing can be simultaneously rigorous, clear, and hilarious; and it reinforced (alongside Alain Connes's Noncommutative Geometry, and various French philosophers) (3) French academic writing is both frustratingly and delightfully idiosyncratic. Girard writes polemically about other aspects of knowledge, mathematics, etc., and there's heaps of dry humor and anecdotes throughout the book. It's a hard book to read even by pure mathematics standards--a topic not exactly known for being a brisk read--but it was worth it just for the side discoveries alone.


I did a double take when I saw "continental philosophy." Usually I don't expect that to be mixed with math, since it's roots are more in the humanities.

How are exactly does continental philosophy factor into these other topics?


Jean Yves-Girard's thinking evolved from analytic philosophy to continental philosophy over the course of his life, and in this book in particular, some of his asides and polemics critique how we conceptualize truth, knowledge, and logic, and how other fields conceptualize that stuff, from a continental perspective. The fact that this kind of stuff turned up in a mathematical logic book of all places really struck me. It put me on a path to taking a more serious interest in the continental school, and reading more of it (currently chewing on Gilles Deleuze and Bruno Latour). It's a very unusual and difficult book, that led me to very different (compared to what I am used to, anyway) modes of thinking.


That is quite fascinating - I was big into continental philosophy in college, especially Deleuze. I might have to check that out!

If you're interested in this stuff, I think you might enjoy Manuel DeLanda - he gives Deleuze a sort of analytic treatment. His book "A New Philosophy of Society: Assemblage Theory and Social Complexity" takes a lot of ideas from A Thousand Plateaus, but makes them clearer and more accessible.

Another suggestion if interested in Deleuze, and more specifically A Thousand Plateaus: someone named Brent Adkins has a great companion for the work. Unless you have extensive experience with the thinkers & ideas referenced in ATP (e.g. Freud, Marx, Nietzsche), I found secondary sources very helpful for setting up context around certain terms and concepts.


Don Norman's "The Design Of Everyday Things" was very eye-opening for me. It introduced me to a lot of ideas about the human brain, and about how/why we make mistakes.

This will sound stupid, but that book was the first time I encountered the idea that a brain can just straight up miscalculate and make a mistake. No reason, no explanation. Just your thinking meat did the wrong thing.

Really great book. Very entertaining, and a pretty quick read. I'd recommend it to anybody.

https://www.amazon.com/Design-Everyday-Things-Revised-Expand...


Code, by Petzold.

Not exactly eye-opening, I sort of knew most of the content, but I don't remember ever having such joy while reading a technical book. Before or since.

I read the whole thing in a holiday (it's a big book, 500 pages or more IIRC), and I am a terrible reader. I was at a place with no internet, so that surely helped a lot.


Same. I read almost half the book in one sitting when I initially picked it up, couldn't put it down.


"Crafting Interpreters"

A physically beautiful book, carefully crafted and written in a style that's entertaining and brilliantly separated into distinct "phases" such that each chapter adds substantial functionality and doesn't leave the codebase in a broken state. The attention to detail and meticulous documentation of the code is no small feat, and this book delivers like no other.

An absolute joy to work through and provides enough technical detail to provide a good foundation without having to slog through compiler textbooks.

Hands down my favorite programming/software related book.


How to Design Programs: https://htdp.org/

I already had a strong programming background in Java, C, JavaScript and PHP. I thought an introductory programming class at the Master’s level would be a waste of time. Going through rigorous program design in Racket was a mind expanding experience. I was amazed how much programming we did before reaching the assignment statement (set!) otherwise the first thing taught in typical introductory programming courses.

The format of the class was a big part of the experience though: all assignments pair programmed and then presented to a panel by a randomly chosen member of the pair.

A close second would be PLAI: https://www.plai.org/. As experienced through the Brown University online version of the Design and Implementation of Programming Languages: https://cs.brown.edu/courses/info/csci1730/

It gave me a very thorough and engaging grounding in the various programming language idioms and constructs and how they actually work.


> I was amazed how much programming we did before reaching the assignment statement (set!)

Reminds me of my programming languages course, probably my favorite class in college. Spent nearly a quarter of the course just learning scheme, didn't know if it would pay off even though I was interested, but when various language constructs were introduced through the use of a metacircular interpreter it was eye opening.


Yes, big second from me. HTDP taught me how to how to work with through complex data structures/problems in a really clear and simple way.


I really want to know about the outcome of reading HTDP with some programming experience, like you, versus taking it as a first course.


Non-linear dynamics and chaos by Strogatz

https://www.stevenstrogatz.com/books/nonlinear-dynamics-and-...

I literally read it cover to cover like a novel


We used it as a textbook for a graduate level math class at Johns Hopkins. I really appreciated his treatment of the material. It's so accessible, and yet still rigorous enough for advanced math students to get value out of it


Fascinating that there are so many chaos theory texts in this thread.

It seems like this subject lends itself to good textbooks.


The Timeless Way of Building by Christopher Alexander.

It really made me reconsider the process and ultimate goals of building systems beyond housing, and how to make pattern languages for any system I build, especially software systems.


I studied urban planning in grad school, but didn't discover Alexander until I learned that my favorite band Phish had modeled their work on a Pattern Language.


very cool nugget. Thanks for sharing.


If you are a Phish fan, here is an interesting thread from fans about it.

https://forum.phish.net/forum/show/1378868388

And here is a podcast episode about it, it’s actually the season 1 episode 1 opener of Long May They Run - A Pattern Language.

https://open.spotify.com/episode/3H5olGsalhWfMbEhyzOu9P?si=p...


Maybe it's been read already by anyone here, but Carl Sagan's "The demon-haunted world" turned me into an atheist and made me appreciate much more science and the scientific method in general. The irony part is I got to read it because a the logic teacher in my catholic nun-ruled school suggested it.


The Elements of Statistical Learning. This book features some of the most interesting applications of mathematics. It was the likely reason why I started enjoying maths after many years of studying it.

https://hastie.su.domains/Papers/ESLII.pdf


Machine Learning is when and where I first used Math. It made me feel really well.

While I really like Machine Learning, it has made me fall in love with Mathematics much more.


Second that. Great to have a no-nonsense textbook in the space.


Not so much a textbook, but the class NAND to Tetris really opened my eyes as to how computers and OSes work.

Demystifying all that was really helpful for my programming


Second that, is amazing.


Gilbert Strang's "Introduction to Linear Algebra" made it all click for me. I read it at the beginning of PhD studies and in a few weeks it all made more sense than during all of my Master's studies before.

Coincidentally to this question, he will live stream his final lecture on Monday: https://grinfeld.org/strang/

I was amazed reading that, as I wasn't aware he even lectured anymore. And after googling a bit and finding out he is already 88 years old, I was even more amazed. What an amazing human being, probably many thousands of people in the sciences and engineering owe quite a bit to his life's work.



1) Sakurai and Dirac's textbooks on quantum mechanics.

2) Axler's book on linear algebra. That's when I started to think in terms of vectors as more than the typical "magnitude and direction" concept you are used to in UG physics. It took many years, but I'm finally beginning to apply this to more advanced topics.

3) Concurrency in Action, by Anthony Williams. The training in multithreading aside, that motivated a deeper interest in things like how caches worked or atomics for someone without a CS background like myself. I haven't finished Three Easy Pieces yet, to my eternal shame as I read this thread, but that might also be added on this list by the time I'm complete.

4) On the right-hemisphere side of the brain, books such as Christopher Clark's "Sleepwalkers", Jonathan Smele's treatment of the Russian Civil War, and Richard Thornton's "Odd Man Out" on the Korean War have been useful in teaching me to dig deeper than the standard narrative when looking at history. I'm looking forward to Christopher Goscha's book on Dien Bien Phu and James Howard-Johnston's recent drop on the great final war of classical antiquity in the 7th Century, in a similar vein: both are out, just haven't gotten the chance to digest them yet. Also, Plutarch's Parallel Lives. They aren't "history" in the sense that we know it, but they do teach you that, yes, the lives of famous ancient figures do have lessons that can and should apply to you.


A Russian Course by Alexander Lipson.

I doubt it is a very effective way to learn the language (though the bizarre vocabulary it teaches has stuck with me), but it is extremely entertaining.

Lessons take the form of cartoon interpretations of ludicrous government reports (evaluating Comrade Borodin's management of the zoopark), academic studies (the surprising link between stealing pencils at work and smoking on the trolleybus), and propaganda literature.

I believe there were cassette tapes that accompanied it originally, though I've never found them anywhere.


I don't know about _eye opening_, but The Art of PostgreSQL really changed the way I work for the better. Like a lot of people, I used to be one that would pull all my data into Python for processing, Pandas-style. Once I learned how to do it all directly in PG everything became trivial.

[0] https://theartofpostgresql.com/


Do you have some examples of that ?

I always found that SQL is better for data extraction -- selecting and filtering approximately what I want to analyze.

But for in-depth analysis, R or Python is better. They're just much better languages with more control than SQL.


What if you need all columns of a few rows, but the rows chosen as the ones satisfying some condition on a few columns across all the rows?

Maybe you could select pk,a,b,c; identify the ones you want in Python; select * where pk in those; and finish doing whatever in Python - but now you've got two round trips to the database.

Obviously that probably doesn't matter if you're doing some 'offline' analytics, but if you're serving a request in a web app it's going to be a lot slower than if you can push that logic into the db, and make a single query.


Even just learning how to use CTEs effectively has been a major improvement for my daily work. Building up a dataset iteratively in clearly defined steps and performing aggregations, transformations, orderings, etc along the way is just a very clean way to work. And it's easy to short-circuit at any step for debugging if you're not getting the results you expect. I often work with datasets larger than the amount of memory on my computer so has benefits there as well instead of trying to load it all into Python memory to work with it.

[0] https://www.postgresql.org/docs/9.1/queries-with.html


Yes CTEs are nice for sure ... But for fine-grained analysis, I still would use them to do any joins I don't want to do on the client, cut down the data size, then export to a "real language" for the details

IMO SQL and tidyverse in R are an ideal combo; this post compares Pandas and tidyverse:

https://www.oilshell.org/blog/2018/11/30.html

I agree that using Python for everything is suboptimal. I'm a big Python user, but for analytics I mostly skip Python, and use SQL and R


"You Just Don't Understand" by Deborah Tannen.

The author discusses that often when conflict in communication arises between men/women, it resembles the same tensions in cross-cultural communication.

The author discusses that some communication styles are competitive (with a heavy lens around status and confrontation), other styles are cooperative (with a heavy emphasis on belonging, relatedness, similarities).

The author discusses example of such conflicts. -- One example was, when someone's complaining about a problem, a competitive-oriented mindset typically tries suggest a solution, whereas a related-orient mindset typically shows empathy. Crossing the wires: suggesting a solution might come across an uncaring, and expressing empathy might come across as unhelpful.


How is helping someone with a solution “status and confrontation”?


When you're in a transactional environment, it is expected. For example, if you are a car salesman and someone comes to you with a problem like "what car should I buy?", and your response is, "you should buy X because Y", that is helpful.

Most communications are not contained within a transactional context. If your mother asks "what car should I buy?", responding with "you should buy X because Y" might be 'correct' but what if she was actually reaching out, and that she doesn't actually need a car but it just 'feels' like it'd help?

In such a case you'd be rejecting her attempt at creating belongingness and a chance for empathy ("why do you need a new car mum? what happened?") and instead hit her with a status ("I know more about this than you") and confrontation ("I have resolved what I thought the situation was so now this conversation is over").

This is at least my interpretation of the terminology. If your question wasn't searching for a solution but instead you were reaching out to feel like your perspective belongs, then I apologise if I come across as confrontational, and I do not mean to imply I know more or less than you about the topic.


This sounds a bit like "suggesting a solution too soon means you cut off a fuller discussion about someone's problems, and their surrounding context." Do you think that's an adequate summary?


Still nothing to do with the label “status and confrontation”, which is what I was asking about.

I’m fully aware that sometimes people want empathy and not a solution. But sometimes people do want a solution and it has nothing to do with “status and confrontation”.


Offering a solution/help may in some cases be interpreted as that the person receiving the suggestion is in a position where they need help. -- It's nicer to be in a position where you're a superior receiving help from subordinates, than to receive help because you're in an inferior position.

It's not likely an inexperienced junior will be able to offer meaningful suggestions of improvement to an experienced senior. If the junior makes suggestions to the senior, it's possible the senior will feel disrespected, or that his seniority/experience isn't acknowledged/appreciated. -- By making a suggestion, you're implying that the recipient doesn't know about (or didn't think about) it.

If someone asks for help and doesn't receive it.. it's like they're -1, and not being given a +1.

I don't think author's point is as concrete as "giving help = status related". Just more of an observation that, sometimes people get upset in communication, and mismatching expectations (different cultural styles) around that lead to stepping on toes.


Sometimes what's important is just sharing that you have a problem, and get support. If it's a complicated problem, giving a solution is not the most careful answer you can give. For instance "I just discovered my spouse cheated on me" "oh, leave that asshole now!".


That’s not what I asked. I asked about why it was labeled that, not why there are two different expected behaviors.


You asked

> How is helping someone with a solution “status and confrontation”?

I answered with an example

> "I just discovered my spouse cheated on me" "oh, leave that asshole now!".

This would be giving a solution but it would just be a display of status.


Giving a solution is not a display of status unless you make it about yourself.


'Suggesting a solution' somewhat indicates that the person receiving the suggestion didn't think of it (or wouldn't have thought of it, or couldn't have thought of it). -- Giving a solution is kinda like "see how helpful I am".


You just don’t understand (seriously).


It is “you just don’t understand” all the way down the turtles.


No, I fully understand when it is appropriate to offer solutions vs empathy. Re-read what I wrote and take a serious attempt at engaging.


No offense, but if you do understand all that, the answer to your question is obvious and you’re perfectly capable of figuring it out yourself. Whether or not those labels is warranted is another thing, but you can definitely do the legwork on your own. I’d be more interested in engaging with you if your own responses to me and my sibling comments were less, well, confrontational.


If you’re incapable of expressing why it’s related to status and confrontation, it sounds like you don’t really know why they are labeled that way.

I am being confrontational right now because you are spreading bullshit and I have little tolerance for that in online conversations. That doesn’t have any correlation with offering a solution to someone’s issue being “status and confrontation”.

Either provide some justification for why offering someone an advil for a headache when they really wanted you to just commiserate is “status and confrontation”, or just admit that it’s another bullshit social psychology label not based on any logical or scientific rigor.


It's kind of a cliche at this point, but Structure and Interpretation of Computer Programs really blew my mind when I read it in high school. I didn't finish it "cover to cover" back then, but it was my first proper introduction to symbolic computation, recursion, and the concept of a metacircular evaluator was really fascinating. It inspired me to implement a simple Scheme-like interpreter in C# for my high school science project, and really put me on my adult path.


Never Split the Difference: Negotiating As If Your Life Depended On It by Chris Voss. It made me change how I aproach a negotiation in about every aspect of my life.

https://www.amazon.com/dp/0062407805


Pro tip: GPT-4 was trained on this book and can implement Chris Voss’ negotiating strategies quite effectively.


What prompts one can try?


In the negotiating style of Chris Voss, help me negotiate a salary increase. Etc


Not a textbook but when I actually read the Bible I realized it was total nonsense and left religion.


I had exactly the opposite reaction, though I came in thinking it all be fire and brimstone. Genesis is a wonderful take on the attitude one should adopt toward the natural world. Regardless of what our scientific understanding of nature is (today’s will certainly look weird 3000 years from now), we know to behold it is good.


Can you point to something specific or was it more an overall sort of rejection of the contents? An old or new testament thing?


LOL, Genesis had enough bullshit in it that I was questioning things immediately. Somewhere in there it says that the stars were created after earth. And then there's Noah and the flood with the completely impossible repopulating the earth with a single family and a single pair of each animal. Exactly how did 2 buffalo's get to the middle east? Of course, the answer would be that god magicked them there - but then I thought - where's the magic now? Why hasn't anyone recorded actual evidence of a miracle?


FWIW, the modern Catholic church's official stance is that Genesis should not be taken literally, and Catholics make up about half of the world's Christians. I think biblical literalism is mostly an American Evangelical thing.


> FWIW, the modern Catholic church's official stance is that Genesis should not be taken literally

The non-literal interpretation of the Bible is not modern: (Saint) Augustine of Hippo (354-430 AD) wrote about not taking it literally.

* https://spectrummagazine.org/article/news/2010/01/30/augusti...

* https://www.goodreads.com/en/book/show/243740


Even better, well, take everything literally except for the parts that are provably wrong. If one part is not true, then any or all parts may not be true. And since there's almost no evidence for anything miraculous in the Bible then AFAIK it's all untrue until proven otherwise. I should mention I was a deacon when I was in my 20s, so it's not like I was raised atheist.


It's not about scientific truth. I would avoid the word truth altogether in the context of religion. You are so out in left field that you are playing a whole different game. That is your interpretation is "not even wrong" due to your pressupposing that the style and purpose of the mode of communication is one of precision and truth.

Evangelicals tend to see things in a similarly anachronistic (seeing traditional communication through a modern lens) way and it seems to have become near-ubiqitous. The mistake is only recently becoming understood. Ultimately it was a necessary mistake to make.


> I should mention I was a deacon when I was in my 20s, so it's not like I was raised atheist.

Interesting, thanks for the explanation. Were you a deacon before you started reading Genesis more skeptically or how did that happen for you? Feel free not to respond, of course. I'm interested in stories of de/conversion; I don't mean to probe where you'd rather not say.


Yeah, when I became a deacon I started reading the bible way more, with the thought that I could provide helpful/supportive quotes to people like some others can. I really don't understand how anyone can read it and not become skeptical.


Literalism is actually emerged as a significant thing in the 18th Century; its not specifically American or Fundamentalist/Evangelical, but it is definitely a fairly recent Protestant thing that is most prominent in the Fundamentalist/Evangelical space.


FYI the church fathers explicitly say it should be taken literally. I don't know what's "modern church" does the faith change according to developments of science? Then it has never been true. Saying that as a christian.


> does the faith change according to developments of science?

What's the alternative? When science and faith disagree you have to either adapt your faith or reject science, and going against science tends to be a battle against truth in the long term. Science isn't always right but its long-term results can hardly be argued against.


Most experiments in science rely on correlation in controlled environment. To prove something entirely true you'd have to control all variables in the universe. As for theoretical science well a lot of it is just a choice of faith. Just listened to Wolfram in his first interview with Lex Fridman, like he said some things about evolution we'll never be able to prove. He also said evolution is kind of a religion itself which I'd agree with. If you can 100% invalidate some religion why should it change? What's the purpose for it to exist - to satisfy some spiritual need like any other material need? The pupose of church was to hold the truth in it's absolute form. If that's not the case you're merely a support group, a social club/community.


Who are "the church fathers"?


Any religion is effectively just a collection of someone else's stories.


I wonder how many Christians there are that haven’t actually read the entire Bible. Like from Genesis through Revelations. It would be super interesting to know the statistic.


The priest reads pieces and tells you what to think. Now stand up. Then it tells you a Christ story. Now sit down. Now some other bullshit full of mind bending content. Stand up again.


Had me in the first half.


Try reading the Bible again after watching Jordan Peterson's the Biblical series. You'll thank me later.


It will seem even more of a joke


- CS:APP (Computer Systems: A Programmer's Perspective), as someone who didn't go to college, this made me feel like I knew the systems inside out and it was no longer magic.

- SICP (Structure and Interpretation of Computer Programs), this one is controversial, but getting to the end and actually building the interpreter made me see that seemingly complex programs like compilers and interpreters are just other programs and quite similar to the ones that I was used to writing. The other effect of this on me was learning about powerful abstractions. It felt smooth to follow along and build the interpreter because the abstractions in the book followed a logical progression. I want the other complex programs I write to seem just as simple.

- Software Foundations: Logical Foundations. Writing programs as proofs was fascinating. It felt like mathematical mumbo jumbo before but actually trying it out removed the magic and it became more obvious how programs and formal proofs could go hand-in-hand. The impact of this book wasn't as generic as the other two. Maybe one benefit of seeing programs as proofs is that by trying to write programs that can be proved easily, we write programs that are actually simple to reason about and explain to someone else.


- The Shape of Space by Jeffrey R. Weeks -- from geometry to cosmology, exercises your mind into visualizing the shape of the universe.

- Algorithms by S. Dasgupta, C. H. Papadimitriou, and U. V. Vazirani. -- compact book that goes from the basics to divide-and-conquer, graphs, dynamic programming, linear programming, NP-completeness, and Quantum.


+1 for DPV. It is on another league when it comes to algo textbooks.

It is so compact, crisp, and enjoyable to read despite containing a lot of Math.

I was surprised when I was reading this book, it was so great to read.


The build up to explain the Fast Fourier Transform (FFT) algorithm and the role of the roots of unity is clear and fascinating, the elegance of that algorithm have stayed with me.


Euclid's Elements. I was gifted at most everything language-related in school, but I was complete dogshit at math. Studying Euclid changed my entire perspective. I don't think I'd have had the self-belief to do programming without having read it.


There is a nice reproduction of Byrne's colorful take on the first six books of the Elements.See https://www.c82.net/euclid/ .


A few that stick in my brain from 20 years ago:

Introduction to the Theory of Computation by Michael Sipser

The classic Hennessy and Patterson: Computer Architecture: A Quantitative Approach

Gray & Reuter: Transaction Processing: Concepts and Techniques

I also think the Gang of Four book always was and still is a tremendously useful read.

& SICP, natch.


Not really a textbook, but written by two professors of politics about their research:

The Dictator's Handbook: Why Bad Behavior is Almost Always Good Politics (by Bruce Bueno de Mesquita, Alastair Smith)

https://www.amazon.com/Dictators-Handbook-Behavior-Almost-Po...


Forest of the Gods from Lithuanian writer Balys Sruoga. It’s cruel book how bandits treat intellectuals in concentration camp. Written in funny style hiding really bad details from reader. It is very eye-opening what one could expect from fellow human being under unfortunate circumstances.


The full novel is apparently not available in English. Only the censored version since the translation is from 1996 and the full original version was only released in 2011.


Hopfield, J. J. (1982). "Neural networks and physical systems with emergent collective computational abilities"

After reading that paper I got the idea that it is not worth it to pursue a carrier in physics, because soon the AI will come and solve all the scientific problems in one second. I switched to programming and AI research. 41 year later, the idea turned out to be wrong, but at least I made good dough.


Computer Networks: A Systems Approach takes a subject I didn’t think I’d like and presents it in a way that made me want to read every chapter. It’s a master class on how to make technical content enjoyable, and a great intro/refresher to networking. Can’t recommend it enough.


The Elements of Programming Style by Kernighan and Plauger

Software Tools by Kernighan and Plauger

The Psychology of Computer Programming by Weinberg

A cartoon-illustrated DIY Honda Civic repair book from the 80's I no longer remember the name of.


> cartoon-illustrated DIY Honda Civic repair book from the 80's I no longer remember the name of.

Sounds like the Honda version of “How to Keep Your Volkswagen Alive […] For the Compleat Idiot”.[0]

[0] https://www.ssaircooled.com/vw-how-to-keep-your-vw-alive-com...


You're right! It was https://www.abebooks.com/9780912528250/Keep-Honda-Alive-Manu...

My wife and I actually managed a DIY clutch job thanks to that book, which was far better than any other service manual I ever saw.


My reference to it only a month ago [0].

:)

[0] https://news.ycombinator.com/item?id=35621692


+1 for Software Tools by Kernighan and Plauger. It was eye-opening for me because it really made me understand the unix philosophy of composing programs out of smaller programs.


For me, probably What Is This Thing Called Science?. It was the first time I really thought about some basic questions in epistemology.


Fantastic book, and almost a non-fiction read. Pick it up, everyone!


Algorithms Illuminated by Tim Roughgarden really helped me understand algorithm design and analysis. Used it to prep for a masters in computer science, with no previous degree in the area.

https://www.algorithmsilluminated.org/

The author even shares free video classes and other extra material.


Factfulness: Ten Reasons We're Wrong About The World - And Why Things Are Better Than You Think (English Edition) Hans Rosling, Ola Rosling, Anna Rosling Rönnlund

I'm reading this right now and I'm quite surprised by how little I know about the most impactful data on human well-being. The writing is a little bit off sometimes but still worth looking at.

I also liked "Fooled by randomness" by Nassim Taleb. His other writings are good too but I would say this one is the most impactful.


I loved the book when I read it. Unfortunately it's not that great in terms of how it presents the facts (which is ironic due to it's title). Don't want to rain on your parade but you should also look at https://www.researchgate.net/publication/328759928_Good_Thin... for a more balanced view on things and make your own opinion. Keep in mind it's one of BillG's favorite books. It's very well regarded by the 'Everything is fine' gang of capitalists.


Thanks a lot for this clarification with this link. I was actually hoping the book would cover one point discussed in the paper :

2. There is a lack of interest in the material preconditions and ecological consequences of the current techno-economic trajectory and its global diffusion, which the authors tend to extrapolate without qualifications.

So apparently it doesn't cover it very well. Will keep that in mind while reading the book (which nonetheless presents a lot of facts I wasn't aware of).


Brigham's book on the Fast Fourier Transform was an eye opener for me. Not so much because of the "Fast" part (which is super interesting and useful too) but it was the introduction I needed to make integral transforms and convolution click. And that helped tremendously to connect a whole bunch of other dots.


Probably not what anybody here is looking for, but Steven Seidman -- Contested Knowledge: Social Theory Today


I always wonder when I see this, do people learn to lay comments out like a reverse psychology bait from these books, or are people who are already predisposed to that just drawn to owning them. Any chance the book goes over that?

Not disparaging, I appreciate you sharing a recommendation. I just found the observation funny.


Ironically enough, I have a textbook for that: Jeff Pfeffer -- Power: why some people have it -- and others don't. It's good, and not what you would expect from the title.


I'm almost sold on that one from the author alone. Jeff Pfeffer has a great sound to it.


Precalculus mathematics in a nutshell, by George Finlay Simmons

I found the explanations for the geometry part excellent.

https://openlibrary.org/books/OL8012300M/Precalculus_mathema...


Calculus I, Tom Apostol

Introduces calculus using vectors from the second chapter. For me, it was a very natural and intuitive introduction to the topic.


If I have to choose one book, it would be Fundamentals of Physics by Halliday, Resnick, and Walker.

I came across this Physics textbook in Junior year in High School.

Before reading this book, Physics, and Science in general, was merely "better subjects" for me, and tools to top the class, frontiers where I could excel, and by remembering formulas.

This is the first time when reading something was really, truly fun.

This was the first time I had the pleasure in learning.

My whole outlook towards learning changed. Learning should be fun. And this has served greatly in my life.

This book not only made Physics enjoyable, but instilled in me a lifelong attitude of fun in learning and expecting fun in learning.


Rethinking Madness by Dr. Paris Williams.

Helped me to understand psychosis as a natural process, then when supported, results in a more sane, connected and healthier individual — and that that modern medical world is dramatically behind.


Not all of the ones below may be textbooks, sorry, but IMO they are all very good. I cut my programming teeth on some of them, and read others at different times later in my career.

How to Solve It, by Georg Polya. A famous Hungarian mathematician. A text on general problem solving principles or techniques. A classic.

How to Solve It by Computer, by Dromey, an AU CS professor. In the same spirit as the Polya book, but applied to iteratively working out algorithms and pseudocode for common important programming problems.

The K&R C book. What to say.

The Unix Programming Environment, by Kernighan and Pike. Ditto.

Programming Pearls, and More Programming Pearls, by Jon Bentley. Among many other things, some clever / advanced uses of awk.

Writing Efficient Programs, also by Bentley. I had mentioned it on HN earlier, and someone replied saying they had used it in real life, and it was gold.

SQL for Professionals, by authors whose names I forget.

The Object Primer, by can't remember who, but good.

A Unix book by Kochan, IIRC.

Object-Oriented Software Construction, by Bertrand Meyer, creator of the Eiffel programming language.

A book on object-oriented analysis / design, can't remember the name, by Rebecca Wirfs-Brock (?) and others. Learned about CRC cards from it. Very cool concept and technique.

A book on Object-Oriented Design, by Grady Booch, from a time before he co-invented UML. Forget the exact name.



Ask HN: What book changed your life?

393 points|tomrod|1 year ago|522 comments

https://news.ycombinator.com/item?id=30734709


If a textbook is eye-opening, that's partly due to the textbook but it's also because you were at a moment in your understanding of that subject, that your eyes were ready to be opened and just needed a trigger. For me, TAOCP in high school was a big one. I don't claim to have understood very much of it, but spending evenings in the library bashing through the parts I could make sense of gave a total change in perspective.


The intelligent investor, by Benjamin Graham.

Took me off the hook of retail trading for the rest of my life.


Peopleware and Mythical Man-Month


The Pattern on the Stone by W. Daniel Hillis [1]

This book shocked me with the idea of a universal computer:-)

"..there is really only one kind of computer .. all kinds of computers are alike in what they can and cannot do"

".. any computing device, whether it’s built of transistors, sticks and strings, or neurons, can be simulated by a universal computer."

".. making a computer think like a brain is just a matter of programming it correctly."

[1] https://www.amazon.com/Pattern-Stone-Computers-Science-Maste...


spivak calculus opened my eyes to what exactly truth is and how to prove truth by build proofs from parts.


Spivak is single variable calculus only, right? What did you use for multivariable calculus?


Not the person you are responding, but I also used Spivak for single variable. For multivariable calculus I used Marsden and Tromba. The other Spivak is a great book, but maybe too much for a first approach to the subject.


Perhaps not a perfect fit, but if I had to select one it would be Out of the Crisis by Deming.

Other than that, basically all of them to some degree.


It was a technique of studying in a book, not the content, In "Introduction to the Theory of Computation" Sipser precedes every proof with a "proof idea" basically examining meaning of each statement before the "pencil pushing". You wouldn't miss the forest while watching the trees like this.


After I passed a course and read other books on Algorithms, what really clicked Algorithms for me was this little known book: A Common Sense Guide to Data Structures and Algorithms by Jay Wengrow. This is what made Algorithms and Data Structures make sense to me.

Later I read DPV and it was great, too.


Off the cuff, here are a couple of textbooks not yet mentioned elsewhere on this page (so far):

* "An Introduction to Statistical Learning" by James, Witte, Hastie, and Tibshirani: possibly the best intro to the topic I've seen.

* "Introduction to Linear Algebra" by Gilbert Strang: possibly the best intro to the topic I've seen.

Also, here are some books that are not properly textbooks but could be used as such:

* "Robot: Mere Machine to Transcendent Mind" by Hans Moravec: remarkably prescient, in hindsight.

* "On the Origin of Species" by Charles Darwin: I was surprised at how readable it is.

* "The Selfish Gene" by Richard Dawkins: It made me question a lot about a lot.

* "The Better Angels of Our Nature" by Steven Pinker: I was shocked at the violence in our past.

* "Gödel, Escher, Bach" by Doug Hofstadter: an intellectual tour de force.


They were not textbooks for any course. But I liked these:

1. Mathematics and Plausible Reasoning by George Pólya

2. Probability Theory: The Logic of Science by E.T. Jaynes


I did Philosophy at uni; one of the textbooks was Anarchy, State and Utopia, by Robert Nozick.

At the time I thought it was satire, or at least tongue-in-cheek. But it's nowadays treated very seriously by neo-liberal nutters. I guess I was wrong.


Computer Networking: A Top-down Approach by Kurose and Ross


There was a horticulture textbook that showed a zoomed-out plot of land on the cover, which with its divisions and sectional diversity effectively looked something like an illustration of the inside of a CPU.

It wasn't intentional as far as I know, but I have to admit that stuck in my head ever since as a really eye-opening metaphor. And the contents of the book were really new to me and even more eye-opening.

Wish I had the name of the book, sorry.


Could it be 'The Self-Sufficient Backyard'? I also remember seeing a CPU at first glance: https://www.amazon.com/-/en/dp/1732557160/


Wow, that's fascinating. It's definitely not the textbook I was using (1990s era design style, quite a bit less decorative and the illustration style was also different) but the effect is similar. I wonder if the illustration on my textbook could have been based on this one.


Cadalliac desert by Marc Reisner


Molecular Biology of the Cell by Bruce Alberts


Mathematics Made Difficult, Carl E Linderholm


Probability Theory: The Logic of Science


K&R (yes, it's outdated now, but it is still a fine model for how to write a clear and concise textbook). SICP. Computer Graphics: Principles and Practice by Foley and van Dam (plus a bunch more authors now).


Biology: Its Principles and Implications, by Garrett Hardin.

Engrossing, interesting, even funny. I read it as a teenager in a Spanish translation and couldn't put it away.


Discrete Choice Methods with Simulation by Ken Train

https://eml.berkeley.edu/books/choice2.html


Ecology of the Planted Aquarium: A Practical Manual and Scientific



Obvious answers:

Griffiths - Electromagnetics Chambers - The Western Experience


Mentioned in Nielsen's tweet but Molecular Biology of the Cell by Alberts et al is very good. It's the basis of life on earth really.


Chartrand proofs Elements of Style Any generic R programming book ESLR Course notes on Java / Python (Berkeley 61 series)


Numerical Methods for Scientists and Engineers by R.W. Hamming


The New Way Things Work, not a textbook per se. It's an encyclopaedia. But it taught so many things.


Cormen, Introduction to algorithms


I found CRLS dry and difficult. Skiena’s Algorithm Design Manual was much more approachable for me. That was my go to during interview practice.


Ecology of the Planted Aquarium: A Practical Manual and Scientific by Diana Walstad


Industrial Society and it's Future


a brief history of time




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: