College, 2012—Internship recruiting season. “What are you looking for in your internship?” the recruiter asks. “I’d like to solve hard technical problems,” I reply. I end up at Jane Street writing software to calculate numeric integrals of a function that is costly to evaluate. (They don’t tell me what the function is—it’s too secret for interns.)
After two weeks, I come up with some of my own tweaks that make the algorithm work a bit better. I happily add “built a state-of-the-art library for numerical integration, with novel improvements on the best techniques in the academic literature” to my resume.
Back to campus—time to declare a major. I’m falling asleep in all my lectures, except the math ones, which use enough jargon that I am confused instead of bored. Guess it’s math then. After declaring, I finally get assigned an adviser who doesn’t tell me to take easier courses.
Real world, 2014—Math classes haven’t saved me from getting bored of college. I decide to take senior year off to work for a sexy machine learning startup. I spend months reading papers and optimizing our models. Our company doesn’t grow because we can’t close sales. (We have three engineers and no sales person.)
Real world, 2015—My classmates have graduated and gone to math grad school or Google or Facebook. I’ve switched from earning to give to directly trying to improve the world, at Wave.
Wave is saving immigrants a lot of money. Unfortunately, we’re also saving a lot of money for fraudsters, who are using us to charge other people’s debit cards. I spend three hours building a trigram logistic regression that differentiates Kenyan names (real users) from non-Kenyan names (likely fraudsters), which puts a lid on our fraud for the next year.
Real world, 2016—Wave’s new second-biggest problem is that we have outgrown Quickbooks. Our biggest problem is that the accountant-cum-engineer we hired to fix this is not good at either.
I’m left holding the bag, closing our 2015 books with a god-awful combination of raw Postgres queries and janky half-baked Twitter Bootstrap UIs. I spend 20 hours a week on the phone with our auditors, explaining our terrible decisions. Somehow, improbably, I am not bored.
For some reason, a lot of smart college students end up with the idea that “solving hard technical problems” is the best thing they can do with their life. It’s a common refrain in Hacker News comments, job ads and interview questions.
Why does this happen? Probably because that’s the only thing they’ve been rewarded for over the past 15 years.
School is a closed-world domain—you are solving crisply-defined puzzles (multiply these two numbers, implement this algorithm, write a book report by this rubric), your solution is evaluated on one dimension (letter grade), and the performance ceiling (an A+) is low. The only form of progression is to take harder courses. If you try to maximize your rewards under this reward function, you’ll end up looking for trickier and trickier puzzles that you can get an A+ on.
The real world is the polar opposite. You’ll have some ultra-vague end goal, like “help people in sub-Saharan Africa solve their money problems,” based on which you’ll need to prioritize many different sub-problems. A solution’s performance has many different dimensions (speed, reliability, usability, repeatability, cost, …)—you probably don’t even know what all the dimensions are, let alone which are the most important. The range of plausible outcomes covers orders of magnitude and the ceiling is saving billions of lives. The habits you learn by working on problem sets won’t help you here.
Because of these differences, most graduates of elite schools—including me—start out being completely unable to identify which work is actually important. (And if some important work does happen to hit us over the head, it won’t come in the form of a puzzle with a grading rubric, so we won’t know how to execute it well.) Instead, we’ll keep trying to run our college playbook, and look for hard problems.
Frequently, we’ll find them by making easy problems hard, with hilarious/depressing results. The upper ranks of Big Tech are filled with people who made their careers writing bizarre custom databases, or building Big Data infrastructure that could be replaced with a laptop.
When I first graduated, I was afraid that if I worked with boring technology, I’d get bored. Instead, I learned it was possible—and fun—to optimize on other dimensions, or play a different game. Rather than competing for an A+ on a hard problem, I could try to solve an easy problem as quickly as possible (like Wave’s accounting), or find the easiest problem whose solution would be useful (like identifying Kenyan names), or hire a team to solve easy problems faster than I ever could myself.
In fact, these turned out to be even more interesting! Why? Because “hard technical problems” wasn’t my root goal—my root goal was to use my skills to get the most possible leverage on improving the world.
In school, if you pick an easy problem instead of a hard one, you lose leverage because your extra problem-solving ability goes to waste. But in real life, you can redirect it to prioritizing which problems to solve, or working more quickly, or building a machine that solves the problems for you.
Because of that, I’m confident that my ability to solve “hard problems” has translated into having way more impact on the lives of people in sub-Saharan Africa, even though there’s a sense in which “all I’m doing” is helping build a CRUD app.
I won’t claim that the returns to intelligence are literally equal everywhere. But given a hairy enough goal, they’re a lot more evenly distributed than you think. So don’t look for hard problems—important ones are ultimately more fun!
Thanks to Eve Bigaj, Alexey Guzey, Jeff Kaufman, Dan Luu, Lincoln Quirk, and Yuri Vishnevsky for reading a draft of this post.
Comments
Seriously, the “I found a hard problem I could solve the hard way” is an endemic dysfunction in my everyday life of software engineering managers at BigCo.
Identifying the problems that matter most and finding imperfect ways to improve quickly upon them is the core of contributing to the businesses actual success, but every stage of value generation is tough due to low signal to noise ratios.
Jacob Kaplan-Moss recently wrote about The Innovation/Execution Spectrum. His line of thinking is similar to yours when he points out that a lot of worthwhile work is really in the execution end of spectrum and not in the innovation end.
Thanks for the link, that’s a great post! Just subscribed to Jacob’s blog :)
As a college student who has the “solving hard problems is the best thing you can do” mentality, this was a really useful post. This is especially so since solving the hardest problems is not my comparative advantage and I’ve always felt kinda bad about that. Any advice on how to find important unaddressed problems then?
Great question!
Unfortunately it’s kind of like asking “how do I beat the market,” i.e. if there were one weird trick, the problem would already be solved :)
That said, here is my non-weird non-trick answer: finding important unaddressed problems requires being (1) being exposed to the problem, (2) noticing it, and (3) realizing it’s important / solvable.
This suggests some non-weird non-tricks:
See also: Paul Graham, Schlep Blindness. (About hard things, but “hard” in a slightly different sense than the sense of this post’s title.)
*Old post that I should probably rewrite but I still endorse the content!
“Any advice on how to find important unaddressed problems then?”
I can’t imagine how people don’t see millions of problems every day when they wake up. Read a book. Watch the news. Talk to a stranger about their job. Volunteer at a non-profit. Buy a service. Try a popular product. Take a class.
If you can go 10 seconds in modern life without seeing a small problem which is causing giant problems for humanity in the aggregate, I assume you’re intentionally putting on blinders to make it through the day without suffering from panic overload, and I envy you, Candide.
I completely agree with this, based on my experiences in tech. What forms of unschooling/homeschooling/education do you think would be the best from a young age to avoid this dynamic? (Currently thinking about this a lot for my 1.5 year old).
Great question! (Also, hi, long time no talk and belated congrats on your 1.5yo!) I’ve been thinking about this a decent amount too, though purely theoretically at this point.
Thinking about the things I did as a child that were actually useful:
If I were to try to boil this down into a set of principles it would be something like:
Disclaimer / reasons this advice could be bad:
You said you did these things as a child and then disclaim that you didn’t do them
Yes please stick to truth. Where did you go to school?
I work in EdTech helping kids learn how to read and do mathematics, and I’m right with you on the motivation here. Some of our problems are hard, some are easy, all are meaningful to solve. Thanks
A different way to say (or think of?) it is that school can give you a warped idea of who you are. There is some gesture at valuing the whole person with extracurriculars, etc., but nothing like the main grades-and-degrees machine, unless you get super deep into music or athletics or such. So even if you don’t think that puzzles are the most important thing in the world, reasonable success as a student might fool you into thinking solving puzzles is how you’re best able to contribute just because you never explored anything else at the same depth.
There’s certainly more of a need for breadth over depth than I expected as a kid, and there’s a lot more just trying to move a certain amount forward every day than brilliant flashes of anything. Though it’s tricky to translate that into something that would’ve obviously been a net help to tell teenaged me.
At least, even without school valuing it, recent graduates are probably good at adapting to the discovery that a lot of what they need is wildly different from what they learned in school, if they find themselves in a situation that’ll show them that. Sounds like weak consolation but that’s probably how most of us get by!
as someone once said:
“we spent decades engineering the space pen… the russians brought a pencil”
You know a story is bullshit when even an anonymous person in an internet comment can only credit it to “someone”.
That’s an urban legend that’s been wholly debunked decades ago. You wrote two sentences, and every word is either extremely misleading or outright false.
Interestingly enough, that’s why we have so many over-engineered solutions that are hard to maintain and do not help the users. People are bored out of their minds and are making their work more exciting.
I would like to know if this problem could be solved with better tools in the future - to generate most of the boring stuff and leave programmers with things that need more ingenuity to solve.