Fundamental Theorem of Geek Laziness

I've been thinking about laziness and geeks (instead of packing and sleeping before my trip to New Jersey tomorrow/today). Geeks are fundamentally lazy. We hate wasting time by duplicating effort. I think this is why so many of us are drawn to programming. We're creating automated processes and reusable tools that can reduce the amount of work we will have to do and the amount of time that work will take at some point in the future.

The irony in geeks being lazy is that we work twice as hard as other people would just to avoid having to repeat something. I wrote my first web page my freshman year in college (1997) for a chemistry class project (note to self: move that page into the Wordpress structure; a large majority of your hits stem from this almost 10-year-old chemistry page). I eventually added to it in a static version of what would have been a blog, if the term had been invented then, writing about books and music I liked and basically telling the world at large a little bit about myself. Over the course of four years, that page grew into an unwieldy monstrosity in terms of maintaining it. I'd heard about CGI and server-side scripting, but I had limited access to that at BC ("here, you can add a counter to your page"), and not much more when I graduated and moved everything to Earthlink.

After graduation, I got a job as a software developer, and I naturally learned about more advanced programming and web development techniques. In my spare time, I began moving my page layout to a more standards-compliant combination of HTML and CSS. It was still a major pain, but here's where laziness kicked in. I had a spare computer that could barely run Windows 98. My geeky brain immediately thought, "You know, this would be a lot easier if you only had to do it once. External stylesheets will only get you so far..." I agreed, and formatted the Win98 computer. After doing some research, I installed Debian Linux, because although the learning curve was reputedly steep, once over the hump, it was a breeze to maintain.

Once again, the geeky decision is in favor of more work now for less work later. Once I had Debian installed, I started learning Apache. I chose PHP as the scripting language that would make my HTML life easier and started learning that as well. Once I realized I had a working web development platform connected to the Internet, I started looking into a domain. I also started changing the look of my HTML in favor of something more professional/serious. The content was staying more or less the same, I just wanted it to look nicer when I displayed it. That's when the Fundamental Theorem of Geek Laziness reared its head yet again: "You know, if you install a database (say, MySQL), and store all your content there, changing the look of the site will be even easier down the road..."

I was well on my way to writing a content management system, because somehow it was easier than maintaining static HTML pages. Looking at it from the forest view, those trees sure look silly. Of course writing a CMS is harder than maintaining static HTML. But once I got going, each step seemed fairly small, until I was trying to implement an archiving function in your CMS. Sure, I knew there were free alternatives like Drupal and Wordpress for what I was doing. Doing it my way, though, furthered the incremental goals of learning CSS, Linux, Apache, PHP, MySQL, Perl, JavaScript, AJAX, and whatever other technologies made maintaining a simple web page easier.

Eventually, I did install Wordpress, because it promised to make maintaining things easier than my existing CMS. But I can see how we geeks can go from something as simple as writing a code snippet that opens a file stream, writes some data, and closes the file stream to realizing we just wrote Emacs or WordPerfect or Word. We start small, start adding features to make our life easier, get some like-minded individuals to help out, and we're suddenly a multi-million dollar enterprise. And all because we're lazy. That's the Fundamental Theorem of Geek Laziness.

Latest poll

Which do you favor?