"On a non-technical note, I thought I’d meander a bit about my programming philosiphy. In my opinion, there are different kinds of developers. There are those that have fallen into the trade through fate and must program to eat. Generally, those kinds of developers latch on to one environment and/or platform and ride it until it is no longer popular. These developers tend to always have a reference manual handy and probably copy and paste alot of their code. There are other developers who are tinkerers, they experiment with various languages for fun not really accomplishing anything other than the pursuit of knowledge (I started here). These developers are not an expert in anything but have general knowledge about everything. These are gross generalizations but the point i’m making is that there is another class of programmer which isn’t talked about much.
There is also what I call the lazy programmer. This doesn’t mean what the words imply, as I do not mean to say that a person is lazy at programming, more accurately I mean to say that a lazy person is a programmer. Huh? Well I’m going somewhere with this so bear with me. I recently started using a quote by Linus Torvalds as my email signature, he states: Intelligence is the ability to avoid doing work, yet getting the work done. This is the concept which I am elaborating on, which is that there is laziness and then there is intelligence but when you mix the two, magic happens. I believe that laziness is the key to innovation. People invent things to make life simpler, in other words they create machinations to do stuff so that they don’t have to do it themselves. So I guess you could say this paradigm goes beyond programming but in all areas of development.
I read another quote somewhere (I cannot remember where), that states simply that a programmer will spend hours developing a program that will accomplish what they could’ve done themselves in a matter of minutes. True, I’ve been guilty of this many times and I often become afflicted with the condition known as over-engineering. My pack-rat mentality forces me to adjust my routines and habits into accounting for the possibility I may have to repeat a task sometime in the future or reuse an item. If I have to accomplish a task in a program, rather than hard coding an algorithm to get the job done, my approach is to write a reusable component that is more or less a blackbox that takes parameters. I’ve created an algorithm that’s capable of getting my task done rather than just doing the task. Now that i’ve spent an hour developing a component to my job, I can write two lines of code and actually do the task. Problem solved."
Made a bit of buzz...
No comments:
Post a Comment