George Orwell once said that he – and all writers – wrote for a combination of four reasons:
1. Sheer egotism – The desire to seem clever
2. Aesthetic enthusiasm – The perception of beauty in the external world or in words and their right arrangement
3. Historical impulse – The desire to see things as they truly are
4. Political purpose – The desire to push the world in a particular direction
There are probably parallels in software development (for the first two items, definitely). If you write software, why do you do it? Post here.
Because, it pays reasonably well for the effort required, there are multiple career options in most metropolitan areas, and at times creating something independently can be be interesting. Otherwise I hate the business in general.
1. For fun.
2. For money.
3. To help people.
Creativity: Because its fun to create something from nothing
I have always felt that telling the computer what to do and “commanding” it to do your every wish and then it doing it without any questions induces a powerful feeling of strength. I think that this is the way God must have felt when he created the world and all that’s in it(for the religious folks at least).
I also often have problems in understanding the way people behave and interact because i much prefer the rationality of a computer. So i think that the Hacker’s Manifesto(although quite dated) describes my feelings exactly.
Having said that, the answer would probably be:
-It is a small way that i can change the world and hopefully make it better
-There is a sense of beauty in the way that good software and good code run
-And finally because it makes me think at such an abstract level that i now consider a lot of people dumb. To reiterate what my professor said “If you are able to understand just 1% of this(theory of computation discussing P and NP problems), then you will never find any other problem to be hard”.
Because we are lazy and computers can be easily programmed to automate repeatitive tasks, or solve complex mathmatics problems.
Because we are lazy and computers can be easily programmed to automate repeatitive tasks, or solve complex mathmatics problems.
My first instinct is “for fun”, but it’s more than that. It’s a sense of achievement, a sense that what you’ve created is “cool” (in the “wow” meaning of the word), and of course in response to the usual question of, “Why has no-one done it like *that* before?”.
All in all, it’s for the satisfaction.
(Oh, and getting paid for it means I can do it all day as well!)
Simply, because I enjoy it.
I enjoy the challenges, I enjoy when it all comes together working and I do it well. So I guess, egotism 🙂
The first time I ran “10 PRINT ‘HI’ 20 GOTO 10” on my Commodore VIC-20 and saw that I could use English-based words to tell a computer what to do was a revelation. It was so cool I knew I wanted to do that for a living. And so far that is exactly what I’ve done.
Creating software is extremely fulfilling. It’s one of the best mental exercises I’ve experienced, and the limit to what you can do comes down to your imagination. It’s also an excellent creative outlet.
Of course, if you do it professionally then none of the above points are valid 🙂
To stay sane.
I recently quit my job to stay home with my first baby and I was ready to climb the walls. Since I started writing code again during his naps, it’s going much better. There is such a sense of accomplishment at the end of the day to have created something new and to see it in action.
But also egotism. I can’t write code just to write code. I have to know that it will be used by people who will be glad that I wrote it because it makes their lives easier.
Some people are engineers or at least have that mind set. That mind set works potentially works in many areas, mechanical, electrical etc.
However, every other enineering discipline is constrained by resources in some way. A civil engineer could design a replacement for the Hoover Dam but it will only ever be an exercise.
For a software engineer the only constraint is imagination. You really can change the world.
Because I keep thinking that one of these software products will make a positive difference to a whole bunch of people that I never meet. It’s kind of like playing the lottery, and each product is a ticket. Of course, my current one, QlipBoard, has me thoroughly convinced that it will make the world a better place by helping regular people communicate better.
Primarily, for the wonderful sense of creative flow while doing it. Of course, when at the end you’ve created something beautiful it’s even better, but this isn’t the initial driving desire.