You can take a look at the problems here on needgap, See if any of them resonate with you and could be solved with developing a software application. Learning to code by solving problems is one sure shot way to get familiar with programming. In fact I became a better coder that way, In spite of having a degree in computer science from a premium Engineering college (Of course programming is just a subset of CS).
E.g. Check this solution /comments/97 for /problems/12 by user @Gameghostify , It's just couple of lines of JavaScript but makes huge difference to those who face that problem. Besides if there's large need gap, Then your solution can become a viable startup product.
Then of course there's solving your own problem, In this case figuring out why existing solutions which train you in programming is not working out and then building your own solution for others like you.
Then of course there's solving your own problem, In this case figuring out why existing solutions which train you in programming is not working out and then building your own solution for others like you.