How do you become a better software engineer? A better investor? Spouse? Friend?
These are difficult questions. And if you google them, I’m sure there are thousands of different tips. Like, find a mentor, improve your communication, do what the best and brightest does, etc.
Seems like a lot of work. So what’s the alternative?
Charlie Munger once said that;
“All I want to know is where I’m going to die so I’ll never go there.“
In other words, instead of trying to figure out how to live, avoiding death is easier. Similar to how some math proofs work. Sometimes proving that something leads to a contradiction, rather than proving the initial statement, is easier. In other words, instead of doing the difficult things, find and do the easy alternatives. It will take you pretty far.
He is also famous for another quote.
“It is remarkable how how much long-term advantage people like us have gotten by trying to be consistently not stupid, instead of trying to be very intelligent”
It has some similarities to the first quote in that they both look at a problem from the opposite angle. Let’s take the case of how to be a better spouse. Do you know? I know I couldn’t answer that. But, how can you be a really shitty one? You cheat. Lie. Humiliate. Being dismissive. Then, what if your personal rule or guide was to simply avoid that?
I don’t think it’s a coincidence that doctors generally abide by the principle of “do no harm”. And not something like “maximise life”. Obviously one would hope the doctor did more than simply “no harm”. But, maybe not the most difficult thing.
In addition, relating this to software where, in a nutshell, it is known that juniors write complex code and seniors write dumb code. In a way, these two principles of doing the easy thing and avoiding the dumb thing has been applied here.
So how do you write good software? I’m not sure I know.
But, maybe, we can start by not writing bad software.