Lazy ProgrammersPosted: January 5, 2011
Lazy Programmers is something I decided to do in my free time to keep myself focused. Currently I’m working as a DBA in a data warehouse for a university to pay the bills while my wife finishes her PhD. Working in a data warehouse opened my eyes to new ideas but also brought me to a halt in developing my craft, my programming skills. I hope to keep my brain sharp and my knowledge current by talking about the latest ideas, ideas that pop up in my mind or are found pulsing through the internet. I can also use it as reference to look back to.
Lazy programming is just a philosophy I picked up while working for my first company. I had inherited some code that interfaced with some other code written by the mother-ship based on some loose specifications and needed to make it work. What irked me to no end was that the interface that the mother-ship provided was so lazily put together, that I had to work extra hard just to appease it. Things would break seemingly randomly, with no way to track what caused it. After months of frustration, our team ditched the interface and wrote our own entirely from scratch. When we were finished, all we had to do was tickle the code a little here and that change would propagate through the code like well oiled gears, causing the exact end result that we wanted.
I met a similar situation recently when I imported my assortment of MP3 files gathered over the ages into iTunes. Organizing those into albums with the correct track numbers, artists, etc proved to be a nightmare of repetitive work. I’m too lazy for that. I’d rather write a regex that parses the file path and name to automatically tag them with minimal intervention. However, what prevented me from doing so was that the barriers to entry were too high. iTunes doesn’t support it, the Windows OS does not support scripts that easily edit the iTunes database, and acquiring a Mac just for that purpose was out of my price range.
Reducing this barrier to entry, this “friction” as Jeremy Bowers of jerf.org more eloquently puts it in his Lazy Programmers Guide, creates opportunities that were once impossible. The tool works for you and enables you to do more cool things with less downtime. Tony Stark in Iron Man seems like the perfect Lazy Programmer. He built himself an entire AI system that helps him build things. Building the tool probably took more work than it saved for his first project. However, once the tool had been built, he could create prototypes and make changes with minimal effort.
This is the type of developer I’d like to be: diligent up front so I can be lazy later, create tools that take care of the busy work so I can focus on the fun work, write code that works for me and not against me.
If my ramblings provide me with a base to organize my thoughts, weed out static, and pursue new horizons, I’ll consider this blog a success. If it connects me to like-minded people who spark new ideas like flint to steel, my mind will be blown away.
Note: This blog is not meant for eloquent writing and polished thoughts. The few pieces that I write that actually are polished will be categorized separately from my daily ramblings which will allow me to publish my thoughts more freely. Regardless of category, all posts are open to criticism, counter-arguments, and new ideas.