March 26, 2019
How do you decide which of your work processes you are going to optimize or not?
The meta point is, just keep the thinking apparatus engaged while you’re doing what you’re doing. That is, if I notice that there’s something I’m doing that’s obviously silly and repetitive, I’m not just saying “Oh that’s the way it has to be”. Just like I try and solve problems in lots of other areas, I’m still thinking about how I can solve that problem.
Another piece to it is that just because everybody does it such-and-such a way doesn’t mean I’m going to do it that way. I mean, my wife is often critical of my “I’ll just figure it out for myself” type thing, because sometimes it goes wrong. And there’s a tradeoff between “just do it the way everybody else does it” and “always figure it out for yourself”. Always figuring it out for yourself can lead to wasting a huge amount of time trying to do something that turns out to be really hard. But I would say the majority of the time, it ends up being something that is much better optimized for me than your typical solution would be.
I do try and keep thinking when I’m doing stuff. Something like file system organization. I think I’ve done four file system reorganizations in my life. Not a huge number. But every so often I’ll decide, “This is not working. I need to do something about it”. I will have been thinking for a while about it. And I’ll sit down and try and solve the problem.
I suppose the fact that I’ve spent a large part of my life doing language design is probably useful for coming up with solutions that work. Because language design is a story of how to take a whole set of things you’re trying to do and crystallize them into something that is understandable, workable, etc. And that’s a lot of what a lot of these kinds of optimization decisions are about. You can lead your life and do absolutely no planning. Or you can spend all your time planning and not remember to lead your life. I like to spend, you know, a few percent of my time planning what I’m going to do.
Plenty of the projects that I’ve ended up doing, like the Wolfram Alpha project, making this computational knowledge engine—I have been thinking about doing that project since I was a kid, and I had not thought that it would be possible until pretty much the time when I started trying to do it. And there have been people who had thought about projects a bit like that for about 300 years. If you started it 300 years ago, it was definitely not a doable project. And I’m sure if I’d started it 40 years ago it would not have been a doable project either.