Start with the smallest possible goal when learning something new.
When you're learning music theory, make it a priority to write a tiny jingle consisting of just a melody. Make a lot of these! Consider them complete when the melody is finished.
When you're learning game design, try using a game with a level design feature, or design modded levels / steam workshop things for a game you like.
When you're learning to code, spend some time creating static webpages on a LAMP setup before doing anything else.
Your ability to stay engaged with the development of a skill might largely be governed by time-to-first-success. The shorter that time, the more quickly you get hooked in a positive feedback loop. And I don't mean build something like this as part of turning it into something bigger. I mean that the small thing you're trying to build should function as the MVP. When you've finished it, you start a new project, and can feel a sense of accomplishment from finishing something meaningful to you, no matter how small.