Did you ever question your decision to become a software engineer? Have you ever wondered how on earth you could possibly think that fixing other people’s screw-ups for a living was worthwhile? Don’t you constantly remind yourself that spending one evening in the purgatories of hell would be much more pleasurable than that upcoming all-nighter you have to pull off because your team is behind schedule again? Or are you just that masochistic to do it voluntarily in your free time because that’s what nerds do? Actually, most of us probably do that. Coding sucks, but we’re loving it!
Actually, let me start with the reasons why it was so quiet here for the last couple of months. I didn’t write new blog articles on this site for quite some time because I was rather busy dealing with tasks that required my full attention, most of them were in fact related to coding. Honestly, these tasks were rather frustrating and noticeably time-consuming. Unfortunately, I couldn’t procrastinate any longer. “Commit early, commit often” did not apply here and it’s likely not going to get any better in the near future.
This ongoing situation actually led me to writing this article. Granted, it’s a little different but I guess it still fits in since we probably can all relate to it. I’d like you guys to think about the questions raised in this article for a while…
I’ve started coding when I was at the age of thirteen and I’ve since been hooked. I used to work on some small projects with a classmate, and even though I’m not particularly proud of having made my first programming experiences with (*coughs loudly*) Visual Basic 6, I still enjoy thinking back and remembering the good old times of exploration when I was so green that I didn’t yet understand the concept of variable declarations and actually used text boxes on hidden forms to store my numbers.
Anyway, my point is: I have been coding for over a decade and I still did not grow tired of it whatsoever. So why is that? Well, I think that programming has this amazing and possibly unique property of being describable by numerous adjectives at the same time, some of which have direct opposite meaning. Writing code is often extremely interesting and challenging, yet sometimes just annoying and plain boring. Even though it involves time-consuming yet incredibly creative thought processes, it remains to be a tremendously addicting and rewarding hobby that’s both fun and — of course — extremely frustrating.
That last word is exactly what boggles me the most. Why would anyone pursue a profession or a hobby which is that frustrating? Everyone knows how exhausting it is to chase a bug that just doesn’t want to reveal itself for hours or even days. If finally found, is the resulting feeling of relieve and accomplishment really worth the trouble? Apparently it is.
Who doesn’t have a folder stuffed with shattered dreams of applications that never really made it to daylight? Will we ever touch any of these ideas again or are they doomed to rot for eternity? What about boring tasks at work? Is it really fulfilling to customize crappy business software with even crappier languages? Does the paycheck make up for it? Probably.
What is it though that really keeps us continuing? Myself, I’ll probably never give up programming even though I receive my fair share of frustration every single day. So why is it still one of my most favorite activities?
I like to compare writing software to playing those good old classics on the NES. It provides exactly the right amount of frustration to make you want to continue and keep coding. It constantly feeds you with tiny little bits of goodies that give you a sense of making progress and achieving something. Overcoming obstacles and solving problems with pure logic is challenging and great fun (at least for some people, non-programmers usually don’t agree. ).
On the other hand, sometimes the frustration can really get to you. Is that programming’s major downside or is it just another aspect that adds even more fun and challenge to the overall appeal in some weird pathetic way?
So, what’s your opinion on that topic? Is coding just your hobby or do you do it for a living? Do you program professionally only without any desire to continue after you called it a day at work? How much frustration do you experience? Is there a balance between advantages and disadvantages? Let me know!