There’s a common term used when we want to approach to a problem in a robust, well-designed way: “starting from the first principles.” Basically, you pause, take a few steps back, strip away the complicated formulas, shortcuts, and conventions — then rebuild your reasoning from the ground up using only the most fundamental truths. It’s the gold standard for deeply understanding and elegantly solving complex problems.
I’ve had a lot of success with this method in both educational and professional environments. However, I’ve recently made a rather obvious observation: to start from the first principles, we need to actually have the principles.
In most scenarios, this dependency isn’t a blocker. The challenge usually is simply that we haven’t learned the principles yet. Fortunately, we can find the necessary truths through research in books, online, or by talking to someone who knows more.
But here’s what strikes me as both humbling and exhilarating: those principles we so readily look up didn’t spring from nowhere. Someone curious had to poke into an undiscovered territory and do something extraordinary. Newton wasn’t the first to notice that apples fall from trees, but he was curious enough to figure out how. Noteworthy, before certain first principles were discovered, we didn’t even know the problems they solved could exist.
First principles are amazing. Thanks to them, and the explorers who discovered them, today we take a lot of things for granted. Even then, every once in a while, we still hit a wall where the principles are missing.
I hit that wall when I was doing software research about concept design at MIT’s Software Design Group. Trying to implement an idea using the usual ways I have been writing software didn’t work. Time and again, I tried to start from first principles and found myself stuck. The foundations I had weren’t enough for what I was trying to build.
Actually, “trying to build” isn’t even right. The truth is, I didn’t really know what I was building. My ideas were fuzzy — more like a feeling than anything concrete. I only started to make progress when I gave up on the first principles and started “messing around.” I’d scribble down thoughts and models that barely made sense, but they surfaced for reasons I couldn’t name. It took a long time, but every so often, something in that mess would click, and one small piece of my blurry vision would sharpen.
I ended up making small but satisfactory progress, and there’s a lot more to make. Reflecting back on that experience, I thought to myself, I was “starting from zero principles.” It’s the chaotic, necessary work of discovering truth before it can be codified.
It reminds me of the following quote:
The most dangerous thought that you can have as a creative person is to think that you know what you’re doing. Because once you think you know what you’re doing, you stop looking around for other ways of doing things and you stop being able to see other ways of doing things, you become blind…
—Bret Victor, The Future of Programming