How to solve hard problems

Some people start out in life able to solve hard problems. Others cannot seem to do it. I believe that intelligence is not innate, but few people know how to work on hard problems. Some may learn by luck, or by observing smart people.

Here are a few things I was able to learn over the years:

  • Use your intuition, but keep it in check. Hard problems often require that you question every single assumption.
  • Start small and do not stare directly at the nasty problem. Always focus on an easy non-trivial next step.
    Trying repeatedly to solve a hard problem in one pass can be depressing, so get small victories. Try to learn something new about the problem every day.
  • Write a lot. Describe your false starts and explain why they are false starts. Doing so has benefits: you are less likely to go down these paths again and writing tends to bring forth new ideas. Do not worry about filling up notebooks: paper and ink are cheap.
  • Stand on the shoulders of giants: repeatedly go learn about related problems using wikipedia or Google Scholar. Jot down any result that may help you later.
  • Computers are very powerful assistants: use them to plot your problem or to test out theories quickly. It is sometimes amazing how much you can understand by looking at a plot.

Published by

Daniel Lemire

A computer science professor at the University of Quebec (TELUQ).

2 thoughts on “How to solve hard problems”

  1. How do you balance studying giants’ ideas and applying your own ideas? When do you stop getting the state of the art and start your own work? I find it very difficult to balance these two things, and I usually get stuck reading papers / books for a long time.

  2. Nice post! I think one of the most important prerequisites to solve a hard problem is having some sort of intense desire or interest in that problem. Without having a personal stake in the problem, without having the curiosity that would act as a fuel, it is harder. It should be used as a criteria to filter out problems. Those people who seem to start out with hard problems certainly have some intense interest in the problem!

    For someone like me, trying to start in research, it is very easy to try those problems that are easy to understand but hard and famous. I wonder if that is a good approach, even if the advice you give is taken to heart and followed religiously. When, exactly in ones research career should one try a really hard problem?

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    Markdown is turned off in code blocks:
     [This is not a link](

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see