I recall a certain professor of mine proclaimed:
"Computers are dumb, and programmers are lazy"
I’ve since come to call this the golden rule of programming – (technicalities about how this is actually 2 rules left aside…)
At the time, it gave the folks in the class a good chuckle, but upon more reflection, it really is true. Computers are nothing more than a set of automata interacting with each other according to the rules of their states. In other words, it’s a machine that does what it is programmed to do – nothing more, nothing less.
The underlying truth my professor was attempting to jam into our under-nourished and sleep-deprived heads is that when your software does not behave as you expect it to, the fault is most likely yours, as you are the lazy programmer. His intention, of course, was to attempt to do 2 things: Get people to quit bodily abuse of the computers in the student labs ("Stupid thing! *smack* Why won’t you just draw my dang chess piece on the square! *smack, smack* Crap! Now the king is cross dressing as a queen! What the heck!?!? *smack, smack, SMACK…. CRASH!* Uhm.. Hmm…hey, anyone know how to log out when there is no monitor on the table anymore? Mine accidentally fell on the floor and seems to be broken. Stupid thing.")
Now, I cannot deny the fact that when programming, there is very frequently the Right Way™ and the I Only Have Time To Do It Like This™ way. Over the last few months, I’ve been working on overhauling a relatively large codebase for a project at work. Some of this code I’m re-visiting is stuff I wrote years ago when I was still in school and had not yet learned the aforementioned golden rule.
I definitely just did things fast because IOHTTDILT™. Now I’m paying for it. Nearly every day I smack myself because, in the long run, I would have saved myself hours and hours of re-work if I had taken the time to do things the Right Way™ in the first place.
Now, why am I ranting about this? I believe this applies to lots of things in life. Frequently we are tempted to take shortcuts with somewhat disastrous results. I hereby proclaim that this is a Bad Idea™, and I encourage myself and anyone out there who has tuned in to re-evaluate what shortcuts you are taking and whether the potential long term losses are worth the short term gains.