Get monthly email update!
warning

What is an Idiotprogrammer?

Resume | Bio | About this Website | Tip Jar | What's New


Summary: Here is an explanation of the site's name.

I have two explanations.

First, it describes the paradox of being a good programmer. Good programmers don't need to spend a lot of time coding. They have the innate ability to incorporate other people's work into their own and to rely on easy solutions rather than making a new solution from scratch. Each time I resolve to write some custom script, I inevitably find that somebody has already written a similar script, and I need merely change the settings to make it work for me. Some people find coding fun (and it is in a way, at least the baby code you find on web pages). But often it takes a good amount of time for something to work exactly right and to plan for extreme cases.

An idiotprogrammer therefore is an expert at using the work of others. The problem of course is that using the work of others increases dependency. If you've incorporated a module from someone else, inevitability bugs will arise, or special configuration is necessary, requiring you to immerse yourself in code you half-understand or just ditching the module altogether. That inevitably means following what others have to say about a product and whether they are having problems. I often end up having to evaluate a product's worthiness by looking at the support forums, the number of releases it has gone through and the number of developers on the team. That is often a subjective judgment! Many developer sites like www.hotscripts are particularly good about letting users rank or comment about an open source project. These are some questions a system administrator or programmer uses to evaluate an open source project.

  1. the potential value of code and its portability
  2. whether the amount of customizations necessary justify the effort necessary to use the code.
  3. what potential conflicts may exist with other modules
  4. the size of the user base using or supporting the product

My second explanation is more philosophical and relates to the perennial battle of technology vs. humanity. Advances in technology can save time and provide convenience, but they also succeed in increasing our sense of helplessness. I've said it before, but I am amazed whenever I turn on a computer and the thing actually works. How many times have you vowed at the start of a day to do something only to be sidetracked by some totally unrelated technological glitch? Welcome to the 21st century! Lately, I was trying to create a system backup plan, when I discovered that before I even started ,I couldn't send mail anymore! Whoa! Mozilla Mail client had been working fine, but suddenly one day the smtp settings just stopped working. Oh, yes, perhaps I did something to cause it, I don't know.

So I'm faced with an existential choice: do I overlook this problem and vow to get around to it later? Or do I fix it now? OK, I need my email, but can't I use my web-based email in the meantime? The more devices that we equip ourselves with, the more time is required to appease them. I say this as someone generally enthusiastic about technology. But do we spend the time to fix things? Fixing things gives experience, and that is good. But do I want to waste my time educating myself about USB controllers or multisession CD's or digital camera firmware? The truth is I don't really care. I remember once turning on my brother-in-law's computer and finding that Windows 95 flashed 5 error message onscreen before it had finished booting. I mentioned it to my brother-in-law, a person not stupid but rather naïve about technology. "Oh, yes, those things always pop up," he said. "Can you fix it?" I remember laughing silently at his incompetence while I tried troubleshooting the problem. Three of the error messages related to a printer that couldn't connect, but which actually was connected correctly. The other messages related to an application that couldn't connect to the central server, but of course it couldn't-there was no internet connection and no way to turn the default settings off. It quickly became apparent that the machine worked perfectly fine, and that these error messages were vestiges from programs or hardware which had already been removed. Stopping the error messages at boot would require a substantial amount of time, so I did nothing. Nothing. My brother-in-law booted his machine every day and tolerated the warnings without doing anything about it. I, on the other hand, spent an hour on troubleshooting before concluding that it wasn't worth the effort to fix. The question then is: which of the two of us is the idiot?











Additional Resources

You can find more recent writing in my idiotprogrammer weblog. Often essays which appear on this page originally appeared in the weblog.