Over the years I've come to realize that the answers to your question is like asking what the meaning of life is, it's very subjective. So instead of giving you practical advice like "Write an essay on why not to make and idea." (which is actually really effective by the way when done right), I will give you some indirect advice:

1. Know the difference between reasoning and logic. Reasoning is like telling a story whereas logic is more like writing an axiomatic proof. Don't give in to reason, only logic will help you find the right answer. I call reasoning "scheming" when it's done in the context that the person doing it believes they are thinking logically but are just fooling themselves.

2. Shut the hell up! Stop your inner narrative in your life keeping you stuck in life and just observe the world around you. I find it helpful when I’m _doing_ something and not making progress to _not-do_ what I’m doing—it’s quite magical and isn’t what it sounds like. What I mean is you assume an indifferent mental state which frees up your brain's resources to take notice and inventory of details you and others missed about a problem.

3. Follow the path with heart! Is there a splinter in your mind but can't quite put your finger on it? Don't expect to find your life's purpose instantly, it takes time. The best advice I can give you is pursue what makes you the most curious, not what will make the most money. This is because things you are curious about take less energy to think and learn about.

4. Be compassionate, not passionate. What I mean by that is don't pursue "ideas" but pursue what makes you happy and others happy; be a buddha and end the cycle of suffering. All that matters in this world is happiness. If making money like Warren Buffett does makes you truly happy (but not for the money itself) then become a stock investor first, programmer second--you see what I'm saying? Too many programmers have paralysis when it comes to side project ideas because what they enjoy most is programming and they are already programmers, so shouldn't you be happy by now ;)

5. Be patient! Don't try to think of an idea, rather find a problem (which could just be a tedious task you do often) as a consumer, not a programmer, that really bothers you. Then, rather than make a complete product at first, do experiments first not by building a product but testing assumptions or hypotheses, doing a trial, and draw conclusions from what you learned. Over time, all those experiments will result in _learning_ which is the modus operandi of business.

6. Do your homework! Spend a good year at least researching all you can about the problem you are solving (unless you're just making a metoo app) and why it isn't solved yet, because you may find out for example the problem is intentional which means it can't be fixed, it is corrupt by design. You may discover a simpler way of solving the problem that incumbents were too fancy to notice. Treat your problem like it's a real conspiracy which forces you to think differently about the problem than others; rather than just being an engineering challenge, it becomes web of even deeper problems, and you may just find that your problem is just the tip of the iceberg.