The best minds of my generation are thinking about how to make people click ads. That sucks.

Jeff Hammerbacher

There is a meme going around that too many programmers are wasting their careers working on meaningless software: they spend all their time trying to get people to click on ads, they aren’t tackling the important stuff, and they aren’t solving the biggest problems of today. It’s as if all programmers should drop what they are doing and instead try to cure cancer, end world hunger, and generally save the world.

I’m going to call bullshit.

First of all, don’t knock ads—or, to be more accurate, don’t not knock making money. The most well intentioned company in the world can’t accomplish any of its lofty goals if it has no money, and for many companies, ads are the best way to earn that money.

For example, you are probably one of the billion plus people who search Google over 100 billion times per month (!) to help plan your day, learn new information, and answer questions. It’s hard to imagine life without it.

Life Before Google
Life Before Google

Google also builds maps, video, email, phones, and even more recently, they are trying to provide Internet access for everyone in the world, define what it means to be a healthy human, and to create self-driving cars. And all of this is powered by ads: more than 90% of Google’s revenue comes from advertising.

If you kept in touch with your friends and family, read the news, or even followed a link to this blog post, it was probably through Twitter or Facebook. Twitter has played a part in starting revolutions in several countries; so has Facebook. In fact, almost everyone with Internet access has been touched by Facebook (they have 1.32 billion active monthly users) and for those without Internet access, Facebook is trying to help. And just like Google, 90% of Twitter’s revenue and nearly 90% of Facebook’s revenue comes from ads.

Many talented engineers spent enormous amounts of time at these companies getting you to click on those ads. The result, I’d argue, has been remarkably world changing: three companies, driven primarily by ad clicks, have connected us to information and to each other like never before. It’s almost as if Adam Smith was on to something with the whole invisible hand idea.

But this debate isn’t really about ads. I’m guessing what people are actually upset about is that so many talented developers are working on products that are not “important”. That is, they are building software for their own personal amusement or financial gain instead of working for the benefit of us all.

Well, here’s a question: how do we determine which companies or ideas will most benefit the world?

In a remarkable talk called The Importance of Mathematics, Timothy Gowers tackles this same question with regards to mathematics:

Gowers claims that most mathematicians are drawn to intellectually interesting problems rather than practical ones. In fact, he talks about the famous Cambridge mathematician G. H. Hardy, who was “perfectly content, indeed almost proud, that his chosen field, Number Theory, had no applications, either then or in the foreseeable future. For him, the main criterion of mathematical worth was beauty.”

Many mathematicians prefer problems that are beautiful to those that are useful. Despite that, mathematics has been the basis for countless discoveries of immense practical value: physicists, chemists, engineers, programmers, and countless others use math on a daily basis to build all the tools and technology of modern society. Even Number Theory, which seems entirely like math for math’s sake, turns out to have many practical applications, including RSA encryption, the basis of all Internet security, and the reason you can use passwords, credit card numbers, and exchange other information online securely. Hardy would’ve been disappointed.

Gower's diagram of math knowledge: there is no way to separate the "useful" and the "useless"
Gower's diagram of math knowledge: there is no way to separate the "useful" and the "useless"

Math is deeply interconnected and unpredictable: there is simply no way to know which parts of it will turn out to be important in the real world and which parts won’t. The world of companies and products is similar: there is simply no way to know what companies or ideas will end up being a huge benefit to the world and which ones won’t.

For example, it would’ve been hard to argue an algorithm inspired by citation analysis could change the world so profoundly—even Larry Page was not convinced as, in the late 90’s, he offered to sell the company to Excite for just $1.6M (today, Google is worth around $400B). Many people would scoff at the idea of starting a company to share podcasts, but this is actually the origin of Twitter. As many as 50% of all scientific discoveries may happen by accident and many of the most world-changing ones were not the result of an explicit effort to save humanity (examples). Even the porn industry has had a profound impact on technology. You never know what will change the world.

There is an old Soviet joke my dad used to tell:

Stalin asks his staff, “how many movies do we make per year?”
“100 movies, Comrade Stalin.”
“And how many of them turn out good?”
“10, Comrade Stalin.”
“Alright, next year, only make the 10 good ones.”

Of course, this isn’t a justification to blindly build dumb crap, JerkTech, or anything actively harmful. This is not an excuse to work on projects you don’t care about nor a reason to put up with Dilbert-like jobs. This post is a call for moderation: it would be impractical for everyone to try to work on projects that obviously change the world; it would be misguided to abandon all projects that change the world, but not obviously.

If you’ve got the passion and the skills to cure cancer or take on world hunger, then by all means, do it. But if you don’t–and many people don’t–it’s perfectly fine to work on something else you’re passionate about. If you can build something people want, you have a chance to make the world a better place. Even if it involves ads.