You could try to think of it more as play (maybe 'intense play'). You're not 'learning how to program so I can get a well paying job', you're trying to get that image on the screen and want it to animate and move with keypresses because that would be neat if you could do that.
Or make a simple webpage to show off your recent vacation that has a gallery widget that works exactly the way you envisioned that you made yourself, then show it to your friends and family and let them go "ooh, that's neat!".
Or that one manual, boring process you have to do over and over again for...whatever, that takes so much time and bores you to tears. Why not try to figure out a way to write a small python or bash script to automate it?
Keep doing little things that seem neat, and eventually you'll gain the confidence to tackle big things that seem neat, and eventually you'll be ready to tackle business needs that are a bit less fun but have a much greater effect on people.
I didn't learn how to program by tackling business problems right away. I learned how to program by making tiny text-driven games just for me to play with, then later I got into web development by trying to make my own personal website, then I got into mobile development by trying to get a Flash game of mine onto my phone (in J2ME on the N-Gage! and later Objective-C on an iPhone), etc. Currenty I'm going through a book on Unity and making a guy move around a maze and shoot at boxes. When I program in my off time, I'm playing, not really learning. But as a happy side effect, I'm learning at the same time.
Or make a simple webpage to show off your recent vacation that has a gallery widget that works exactly the way you envisioned that you made yourself, then show it to your friends and family and let them go "ooh, that's neat!".
Or that one manual, boring process you have to do over and over again for...whatever, that takes so much time and bores you to tears. Why not try to figure out a way to write a small python or bash script to automate it?
Keep doing little things that seem neat, and eventually you'll gain the confidence to tackle big things that seem neat, and eventually you'll be ready to tackle business needs that are a bit less fun but have a much greater effect on people.
I didn't learn how to program by tackling business problems right away. I learned how to program by making tiny text-driven games just for me to play with, then later I got into web development by trying to make my own personal website, then I got into mobile development by trying to get a Flash game of mine onto my phone (in J2ME on the N-Gage! and later Objective-C on an iPhone), etc. Currenty I'm going through a book on Unity and making a guy move around a maze and shoot at boxes. When I program in my off time, I'm playing, not really learning. But as a happy side effect, I'm learning at the same time.