>>> I quickly lose interest
Working on self-directed projects didn't come naturally to me either and I had to learn how to get over this motivation issue.
It's taken me 10 years of working on side projects to finally be able to figure out which things I will actually finish vs. which ones I just like the idea of and will invariably give up on. It's some combination of what do I think is useful to myself or others, what can I turn into a small prototype in a short amount of time, and what can I actually accomplish in a short time [1].
Accountability was important for me to launch three side projects in the last year. I declared to my friends on New Years that I was going to make and launch a game that I had designed within that year. I kind of entangled my desire to finish projects with my desire to follow through with what I commit to.
I didn't actually finish it in that year, I finished it in January of this year, but I tried! I set it down a lot and ended up getting stuck multiple times. Probably because of that pesky day-job and regular life. My friend asked me if I had launched, and that caused me to put in a final weeklong sprint and launch it. If I knew how close I was to finishing I would have finished it months earlier. I ended up simplifying a lot of code in the first few days of that last sprint and all of a sudden finishing seemed possible.
Because I devoted myself to launching that one game, I have since been creating more and more things and launching them or getting them to a stage where they're generally useful.
In my case, having the confidence from finishing one project made it easier to start newer projects because I knew whether I could finish them based on my past success.
>>> I lack the ability to see everyday "issues" that could be resolved with programming.
Almost every idea that I have could initially be conceptualized as a revamp of an existing product or game, but I'm super excited about them because they're my revamp that I'll gain a skill from and will help me to work on more complicated things later.
I take notes whenever I have an idea and will expand on ideas that I'm still interested in later. I basically use the snowflake method, creating more elaborate detail about the ideas I'm most interested in. Sometimes they evolve a lot after expanding on them too.
Honestly 99% of my ideas are terrible, so I trained myself to try to write down every idea that I have and then later on when I'm itching to start a new project I can decide whether it's a project that I will actually finish vs. ones I just like the idea of.
[1] https://xkcd.com/1425/