Sometimes at work I like to take a step back at look at the big picture. I mean the really big picture, like the entire universe. What the software industry is ultimately trying to do (aside from making money) is to write every piece of software that will ever be needed - to automate every single repetitive (intellectual) task so as to free up human minds to do the things that they are better at (the things requiring creativity and imagination).
A very important part of this is writing tools that people can use to automate the repetitive and difficult parts of automating other repetitive parts, i.e. writing tools for programmers (which is what I do, sort of). We can never anticipate all possible repetitive tasks but we can make it as easy as possible to automate new tasks.
I think (and hope) that eventually we will get to the point where there are no "computer programmers" as such - writing programs will be very much easier than it is today, and won't require any specialized knowledge about programming (just knowledge about the task that you want to accomplish). Programming will be just one more thing that people do with computers like writing letters or playing music, and computers will be tools rather than objects of fascination for their own sake (much like the ones on Star Trek).
When we eventually accomplish this gargantuan task, I think it will be one of humankind's greatest achievements.