I have all the necessary tools to program even the free time. I've been trying to teach myself programming, but I keep giving up. It's not that I can't do it, I definitely can; but once I get to a point where I'm happy I tell myself "I did a good job, I'll pick up on it tomorrow." The thing is that tomorrow ends up being next month and then I have to start over again because I've forgotten the basics.
This has gone on for the rest of my life on everything I do, thank god I was able to get an Electrical Engineering degree. When the stakes are high I can do it, but when I'm left alone I get lazy.