This requires 3 steps:
1. Find a hard problem, with the emphasis on "Find". It must be someone else's problem, not yours. It also needs to be big enough to be important, hard enough that the elegant solution hasn't been found yet, but not so hard that you'll waste the rest of your life on it. Examples:
Bad: Invent a time machine.
Good: We need a better e-commerce website
Better: We need software to build better e-commerce websites.
Best: We need software to attack this problem differently.
2. Figure out your approach (how) and learn what you need to learn.3. Build it, get feedback, iterate.
Your problem is that you're not challenged enough on something important enough. Do this and you won't be bored. You will also know once and for all if this is really for you.