Perfect is the enemy of good. Don't get stuck down in doing everything the "right" way at the moment, this will just lead to burn out and failed projects.
Iterate through your process and slowly nip away at the problem, you will find that you are excited to fix and refactor the application which will keep your interest up.
When you hit a problem stop and think about it, google it and fix it. You will learn a lot by just getting your hands dirty continuously.
If you are struggling to find programs to write, this is tough. Try some programming challenges that are gamified and you earn points for completing the task and also for the process takes to complete.
Examples: