A few days ago I came upon an interesting little bit of writing in a book called Assembly Language Step-by-Step: Programming with Linux by Jeff Duntemann. What interested me is that the author, in a few short sentences, nails the idea of what being a programmer really means. So here’s the quote for your (and mine) pleasure:
Being a programmer is one thing above all else: it is understanding how things work. Learning to be a programmer, furthermore, is almost entirely a process of learning how things work.
I guess now we know why curiosity maybe killed the cat, but it certainly made it a better programmer in the process.
So, why is this little nugget of wisdom so important. I’ll just mention a few things that spring to mind because if this post gets too long you won’t make it to the end. Also, I have to conserve ammo since writing is not my natural state of being.
Maintenance nightmare
A lot of programmer time is spent on refactoring and maintaining code. If you get an old chunk to take care of and you don’t learn its internals you will never be confident enough in your ability to change it as new demands are presented. So what happens… Every time you just hack enough to get it working and one day you pause and realize that you would get a more understandable and flexible peace (not a typo :)) of text with any decent pseudo-randomizer.
Creative nightmare
Also, when you are chunking away new digital magic and you don’t know how parts you are using work… Guess what. Do not pass START and go back to nightmare No.1. You just end up with unmaintainable code that will bite you in the ass a few months into the future. Oh yeah, you also end up with a code that is probably filled with lots of undesired little “features” (aka bugs) that will bite you in the ass a few days (or even hours) into the future.
Should I continue?
Well this is getting pretty long and wordy and I don’t have a nice picture to break the onslaught of text so let’s stop at this point for now and leave you with some food for thought. Take a look back and try to remember people you most enjoyed working with, or most respected for their knowledge or ability to see stuff for what it really is. When I do that all of the people I see are the ones that wanted to know how it works.
And they all dispelled magic happily ever after…
And in conclusion don’t be afraid to take that puppy apart to see what makes it tick – just be sure to have a backup ;)