Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Any recommendation from books on First principles thinking?
8 points by jp42 on Aug 15, 2023 | hide | past | favorite | 8 comments
I keep reading/hearing that you need analyze things for first principles, but I dont find good resources on it. Any recommendation for books on First principles thinking?



> First principles thinking

Is a metaphor for using the basics of a field to derive or understand more developed concepts in the same field. So learn the foundations of a topic and then appreciate how they manifest in more complex areas.

There’s no book for this because it’s just a concept and the way to develop it is to study the basics of a specific subject.

It’s a mental model not a thing to be studied in itself…


I used to wrestle with that until I realized that the issue is a bit like a diagnosis: you present with, say, a fever and a few other symptoms, and you are given a diagnosis of X. That's all at the surface; for me first principles became a recursive dive into ever-more-deep subjects.

Of course, you could recurse all the way down to the mean free paths of molecules, but, in reality, first principles starts somewhere way above that, maybe at, say, molecular binding (proteins and so forth).


> course, you could recurse all the way down to the mean free paths of molecules

As Feynman said, it’s all just molecules jiggling!


"First principles" is an indirect reference to the idea of "doing the right thing instead of the wrong thing."

If the people who use the phrase "first principles" knew what the right thing was, they wouldn't need to reference "first principles". Likewise, they generally don't understand what the wrong thing is, only that they are experiencing it.

I would not take the idea of "first principles" as something to chase or understand, but instead recognize that those who use the phrase rather than explaining what the principles are, are likely ignorant and lost themselves. This provides you an opportunity for technical leadership.

"First principles" is corporate speak for "we don't know what we're doing, all we know is that what we are doing is wrong".

Generally the prescription for such a situation is to read books aimed at the problems you are facing, likely books with formalized languages to help model and simplify the problem you are experiencing.

Taking "first principles" at face value (non cynically), the google SRE book and Designing Data Intensive Applications are probably good "first principles" books.

edit: Thinking about it a little bit more, when first principles aren't being adhered to, I think that generally means that people are solving problems they don't understand. So the first principle is: Understand the problem, before you try to engineer a solution to it.


Respectfully I disagree it’s not just right or wrong.

We can have correct or incorrect principles but first principles talks directly to correct, base or primitive principles, from which more complex principles and designs can be based upon and follow.

For example in physics we have the dynamics of rigid bodies moving in space. These can be complex relationships between each other and the observer. But what is always true in such a system is newtons laws of motion which would be a “first principle” upon which you can derive more complex treatments.

The same is true of a thermodynamical system we can know and model complex systems such as a solar panel charging a battery and know the efficiencies in the system. But in this case the first principles are the laws of thermodynamics, circuit theory , and battery chemistry.

Often in a system like this the current existing system can be modelled without first principles but the insight to know the theoretical maximum possible efficiencies are derived by assuming first principles and ideal set ups (spherical cows etc.)…


Word's meanings exists in context. In the context of physics there are intro classes that teach Newton's laws of physics which apply widely to the field.

Running large scale infrastructure is not only a largely creative task, but it's also not settled "how" to do things. There is no infrastructure 101. There isn't really even a "managing complexity" 101. The closest introductory classes generally require reading through 15 different companies white papers and comparing and contrasting those strategies. Even how to organize your data is not formalized and rigorous. These higher level ideas in tech are generally PHD land and not undergrad land. My education didn't talk about monitoring once.

So in the context of tech, what does first principles reference? In physics it references a shared foundation that all physics folks have almost certainly been exposed to. In the context of tech it references an un-formalized idea in the speakers head.

If you took 100 software engineers and put them in groups of 10, and then asked them to codify what they think first principles of their field are, I think you would get 10 different answers. Maybe you would get things like two phase commit and CAP theorem, and likely big O. If you took 10 new grads fresh out of university and said "show me 5 examples of highly coupled code," I think half of them wouldn't be able to do it or explain the coupling or the explicit consequences of that coupling.

In that context is "first principles" informational or is it rhetorical? Is referencing first principles good communication, or does the presence of "first principles" represent unstated information.

The idea of first principles is a variable. It can be passed around to different functions and based on the variable name, you know what it should do, but when you de-reference it, in tech specifically, you get TODO: implement. So rather than talking about first principles explicitly and de-referencing what it means, it is left as an exercise to the listener to decode.

The idea of telling someone to practice first principles thinking, to me, is akin to saying "use common sense." Is common sense explicitly defined or is it a way to say that you did not use common sense, or you violated shared understanding of the right way to act?

It's no wonder OP asked how to practice first principles thinking because in the context of tech, the idea of first principles is opaque and poorly defined. Decomposing a system into core axiomatic truths that must not be contradicted in any kind of rigorous or formalized way is literally PHD level work that the average undergrad has little exposure to.

I suspect that any time first principles are mentioned it references the idea that the foundational level in Bloom's Taxonomy, knowledge, is not enough to support the layers above it: https://en.wikipedia.org/wiki/Bloom%27s_taxonomy

As an industry, we don't have a formalized way to measure code quality, to measure complexity, or to measure the relationship between complexity and necessary complexity.

So again I would assert that first principles thinking is a fancy way of saying: "understand the problem and the context it exists within."


As far as I know, Kantian philosophy might be something you want to take a look on. He'd discussed extensively about rationality, which is the implicit foundation of daily inquiry and almost all scientific endeavours.


Study math or physics.




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

Search: