For me working
in software engineering is like the first time I opened tinker toy logs when I
was a kid. I knew what I wanted to build. I had the tools to build it and I had
an almost unlimited number of ways I could combine the logs while building. My only limitations where whether the basic pieces would fit in the
way I wanted to use than and if I had enough pieces. Designing and
building software is even better. You get to go out and talk to customers about
their problems. Then you create a vision of something that could solve or
alleviate those problems. Then you get to choose your logs (languages, tools)
and then assemble them together in to a structure that delivers your original
vision. You even get to invent new kinds of tools (tinker toys) when the
current ones don't fit the job. Then you get to interact with people who are
tickled pink to have their problems solved. It is especially rewarding when
customers are able to attack a new business opportunity because of your work.
The amazing thing is that we actually get paid to express our creativity.
I have played
several musical instruments, carved wood by hand and many other artistic things
but the creativity I am able to unleash doing those pales in comparison to the
creativity we get to express as software engineers. I have many times wondered
about the ignorance of the buffoons who say that software people are not
creative or cultured. These are obviously the people who can not understand
what software people do so they try to put them down. If DE VINCHE was alive
today he would be a software engineer probably inventing the next VRML browser.
One of the
things we get to do in software is something you can't do in most artistic
pursuits and that is that once we get things build and working we can tear
small pieces out and improve them without destroying the hole.
The real
problem with software is that we have to build things that other people want.
So sometimes we have to sacrifice our creativity in order to get paid. That is
why someday I will either retire and work on only what I am interested in or I
will go to work in a lab that where I gets to follow my interests rather than a
current market opportunity. A few times I got to build what I wanted and then
convinced my customer that they wanted it but so I guess every rule has it's exceptions.