So What do you do?
All software construction involves the fashioning of complex conceptual structures that compose the abstract software entity, and the representation of these abstract entities in programming languages mapping onto machine languages within space and speed constraints." -- Brooks
This is a pretty good explanation. But I prefer to tell people I play with legos for a living. I play with Javascript,Linux, and Ruby Legos to be exact. Usually from some cafe. With my headphones on. Bumping Tupac.
Now is a really good time to get into software development. I self-taught at a time when information was much less available and accessible than it is now, and I am an idiot in the true sense of the word. If I can do it, so can you.