Dear reader, this is a unusual day. For the first time (possibly) ever, I’m actually writing my next future the economy post while NOT airborne.
When I left you, we were talking about productivity. I claimed that productivity is the root of all wealth and nearly all improvements in the human condition. And I told you about the two ways that productivity improves:
- Doing the same thing faster
- Doing different things
It’s pretty obvious how computers let you do #1. Once upon a time, rocket scientists had to compute thousands of ballistic equations using slide rules. “Computer” used to be the job title of a person who simply did computations all day.
Now scientists can do the same thing, but faster. And Moore’s law tells they’ll be able to do that about 50% faster ever year. That’s pretty good, unless of course I want to do something that currently takes a million years (e.g. perform a 1 second/byte calculation on 10 terabytes of data).
For that, I’m going to have to get creative. My only option is to choose an algorithm that does substantially fewer computations or does each computation substantially faster.
Computer scientists have a fancy way of talking about how long a certain type of algorithm will take. When you see expressions like “O(n^2)” (i.e. “big O notation”) or “polynomial time”, people are talking about how much slower an algorithm will run as the amount of input data increases. For some problems, like sorting a list of n integers, a good algorithm might take (n)*(log n) nanoseconds while a bad one takes n^2 nanoseconds. For a billion item list, that’s a difference of about 30 years.
By using the better algorithm, I’ve increased my productivity by about 4,000,000,000%.
These examples are most dramatic in computer science but they apply just as much to normal life. Say I need to attend a meeting in Houston. That’s a ~20 hour travel ordeal OR a 1 hour Skype conversation. If they’re both equivalently good[1], I can 20x my productivity by choosing wisely.
Next time, we’ll get a little meta and talk about how to choose better algorithms.
[1] In real life, alternative solutions are rarely perfect substitutes. But they’re often close enough along the attributes that matter.