Comment by bob1029

8 hours ago

Higher order thinking is more important and rare.

An aggressive first principles approach often leads otherwise well-intentioned technologists into strategic / ideological dead-ends.

Do we do things because it's the "right thing" to do in the moment, or because of the final outcome that will eventually result?

The most ideal answer is somewhere in the middle. I am far more interested in the total area under the curve than a single instant in time.

In lieu of intentional higher order thinking, simply working backward from your customer on a regular basis will generally accomplish the same outcomes.

> An aggressive first principles approach often leads otherwise well-intentioned technologists into strategic / ideological dead-ends

First principles are an illusion. Good engineers make strategic choices of the supposed "first principles" they apply, and on a particularly difficult problem, they may iterate through multiple options before discovering the "first principles" that yield a good solution.

Engineers that take first principles seriously and try to use them to guide their decisions discover that correct-sounding first principles tend to work in some contexts and fail in others. Then they go one of two ways responding to these failures.

One way is to blame the context. My favorite example of this is a project where a consultant writing a Java web service struggled for months to get Hibernate to emit queries than ran efficiently on the company's Oracle database. Pressed by management to write the queries by hand, the consultant insisted that using Hibernate was a non-negotiable "best practice." Eventually the manager grepped the logs, identified twelve distinct queries that the service needed, and tasked the Oracle admin with optimizing them, which took less than an afternoon. The consultant still pushed back against using the hand-tweaked queries, saying that if the answer emitted by Hibernate didn't run efficiently, then the database schema was wrong and needed to be fixed. This was not the right response when the database in question was the beating heart of a hundred million dollar tech company and was optimized to handle massive transactional workloads, and the consultant was struggling to write a simple web service for internal users.

The second way is to push your first principles to higher and higher levels of abstraction to make them less context-dependent. They update "Use Hibernate for database access" to "Use whatever database library or framework makes it possible to achieve the best results with the least developer effort" and eventually resort to something like "do whatever achieves the best outcome measured by its impact on what is important to you at the time."

I think a better approach is to collect a toolkit of potentially helpful principles and develop understanding of when each principle tends to be helpful.

Your last sentence says it all. Just get good at first principles thinking. Higher order thinking is first principles thinking when applied to first principles thinking.

And who should first principles focused on? Your customer, your manager, your company, yourself? All of these are valid and often give competing answers!

> Higher order thinking is more important and rare.

Is it?

> In lieu of intentional higher order thinking, simply working backward from your customer on a regular basis will generally accomplish the same outcomes.

And here I thought we were discussing something important!

  • > Higher order thinking is more important and rare.

    I was just talking with a friend the other day about how many problems and issues would be solved if people were more conditioned to asking, "...and then what?"

They don't seem at odds to me, just two ways of looking at a problem.

  • They're not so much at odds, but the emphasis is very different and therefore the failure modes are. First principles thinking emphasizes the principles, and so that's why there's an ideological trap; all you need to justify a given direction is some rationale from first principles, and that's often good enough.

    The problem is... which first principles? Say your goal is to get to the moon, and the principle you use is to minimize the distance, and you choose to do this in a greedy fashion. This will have you climbing ladders, trees, buildings, and mountains, and you will record that as progress justifying the approach. But you haven't reasoned far back enough to figure out just greedily minimizing your distance to the moon is never going to get you there, no matter what. Choosing the wrong principles can lead to local extremes which can be a lot harder to see in cases less obvious than going to the moon.

    Reasoning backwards has its own traps as well.

    • Could you please explain what the difference is between first principles and higher order thinking?

      Based on the moon example, it seems you define it as a set of principles you can base your decisions on? E.g. to get somewhere, you must minimize your distance. What makes something a first principle?

      I'm asking because my understanding is that "reasoning from first principles" is just taking a step back, asking yourself what's really the goal and reasoning backwards. But it seems like you've got two different concepts (first principles and higher order thinking), which makes me think you've got it figured out more than I do.

    • > ideological trap

      First principles are not an ideology; they are more like laws of nature. Due to that, they are great both for reformulating a problem, and checking solutions.

      1 reply →