- Pick a thing that you have no idea how to make.
- Try to make it.
I second this whole post, but especially that part.
I would add one more bit: It helps a lot to have a friend who's already a programmer. Not so you can say "teach me how to program", but so you have someone to go to when you don't know what words or phrases you need to Google. IRC channels or newsgroups relevant to the language/library/application you're using can substitute for that but aren't quite as helpful.
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?