Teaching yourself to code is a terrible idea, I speak from experience. There is really only one issue, one ends up asking why things are the way they are in stead of learning how to be a proper drone and dream of your own cubical. Basically, asking why things are the way they are sets you up for almost endless frustration. The frustration only ends when you find employment far far away from these people and their creations. Every generation of trained programmers is less familiar with the clean and proper ways we use to do things. Its great for them to learn to glue things together and meet with the deadlines etc. You will enjoy non of this if you teach yourselves.... its why this.... why that.... why am I using a 1000 line lib for something that is 2 lines of code? wwwwwhy?