Lots of people (particularly people associated with LessWrong) are telling me I should become a computer programmer; in response I've taught myself a little Python using this site, written a couple Python scripts on my own, and just now sent in an application to App Academy. But if I don't end up going to App Academy, what's the best way to develop some actually marketable programming skills? I've heard people recommending getting involved in open source projects on Git Hub, but when I looked at Git Hub I found it overwhelming, with no idea of how to find a suitable project to work on. Advice?
I'd consider interactive graphics. Nothing else has such instant feedback; it's very obvious if something is working or not and you can easily figure out what's wrong. Using Javascript and Canvas in a web browsing you can get up and running with 2D interactive graphics very quickly and you just have to hit refresh to see the changes you make (I don't know what Python offers in this area). I think it's a great way to learn various programming abstractions too. By working at a low level, you're not forced to use abstractions, but you can see why they're useful once you start writing more complicated programs and also develop an appreciation of their limitations. If you go straight into a framework, you go in at the deep end and have to learn somebody else's way of doing things without really understanding why they're doing it.