5 Reasons I Love Programming


I was recently asked in an interview what I would do if I didn't have to earn a living; and even though my answer was a bit cliche I believed it to be completely true. I love programming and would do it even if I wasn't paid for it (I do like getting paid for it though!). So since everyone loves lists, I thought I'd make one on why I love coding / programming.

1.  Programming is a form of creation and self expression
A quote from The New Yorker magazine states "The world is being rebuilt in code". Where we had encyclopedias and libraries we now have search engines. Mechanical devices are being replaced with electronic ones. Where we had phone calls we now have numerous forms of communication and social interaction that don't involve talking. And the amazing thing is that, given a certain baseline level of hardware, all these creations are made possible with just a text editor, a compiler and a brain.  I'm not a very handy guy, but put me in front of a computer with those three things and I can actually create something that is of value to myself and others. I can be a designer, an architect, an engineer, a project manager, an artist, a creator, all behind a keyboard. How cool is that!

2.  I get the opportunity to solve problems
Who doesn't like solving problems? Men are naturally egotistical creatures, so we jump at the opportunity to take on challenges and solve problems. Need a way to update several people at once when an event occurs? I can solve that for you. Hate having to mail in multiple bill payments? What if I built you an app that would electronically and seamlessly handle your bill payments? Is it too hard to read through the mountain of logs your program produces? I can write you a program to parse, filter, and even alert and perform intelligent actions when an event is detected.

3. It's dynamic
Another great thing about programming is its dynamicism. There's no final state. There's always more to do, more to learn, new takes on previous solutions, better techniques, more to learn. You don't reach the pinnacle or complete your knowledge of programming. It's fluid, so it stays engaging. It's dynamic so it stays interesting. Bored on the job with the client server architecture? Take a look at the microkernel architecture or the pipeline architecture or the peer to peer architecture or the pub-sub architecture or the layered architecture or the ...

4. It's liberating
Unlike working within the confines of published software like enterprise systems, web or desktop applications and other software products where you can only play with the cards you are dealt, software development gives you the freedom to do whatever you want with your product. Want your software product to greet you with a clip from "Gangam Style" when you log in? Code it in there. Think graphical user interfaces are for children? You have the power! Trying to fend off the NSA? Encrypt the crap out of stuff. You want it, you got it, so long as you are willing to work for it.

5. It's just fun!
Remember Lego?
Lego == fun. Programming == Grown up Lego. Therefore;  Programming == fun

You Might Also Like