Why Good Programmers Are Lazy and Dumb

I ran into an old post by Philipp Lenssen on how good programmers are lazy and dumb.
I totally agree with the title and most of the content. However, I believe that the lazy and dumb engineers are the better ones for a different reason:

Lazy:
Because code is liability, and by writing a lot of code, you are taking upon yourself (or your team) liability to test, maintain, document and improve it.
A lazy developer will first look for an existing solution that already has all the above and which is qualified to solve the aimed problem.

Dumb:
Because a dumb developer writes code that is simple enough, for dumb engineers, just as he is, to be able to understand and work with.
“Smart” engineers tend to write sophisticated programs that nobody but them or the like of them can understand. I guess it makes them feel smart.
Dumb engineers look for simple, encapsulated, loosely coupled solutions that anybody can understand.

Lead UI Engineer and a Software Architect.
Over 12 years of professional experience, writing complex web applications, and still learning something new every day.
Currently working for Okta in San Francisco

Twitter LinkedIn Google+ 

6 thoughts on “Why Good Programmers Are Lazy and Dumb

  1. Mike

    Uzi, I totally agree with the Lazy component. As for the dumb, however, I think there needs to be some baseline intelligence such that the ‘dumb’ engineer even understands how to build a loosely coupled solution! A smart engineer should strive to write code that looks dumb/simple. I sure love finding bits of code where the developer found simple ways of avoiding defensive programming; this requires the intelligence to recognize when something is overly complicated or nonsensical.

    All in all, Lazy + Dumb is a good thing. Reusing other code is a big win as well and I wish more people would be open to recycling… But I fear there will always be those who say, “I know to know what’s going on by writing it myself.”

    Reply
  2. brazil987

    I totally agree with encapsulation and loose coupling as design principles.

    But I do have to say that as far as coding goes… dumb solutions only get you so far. Ultimately, you end up with complex scalability problems that only smart and/or wise people can solve.

    I agree that when left entirely to their own devices, smart people will tend to write code that only they (and other smart people) can understand. Not in any malicious way. They love doing what they do. They love creating the best possible solutions and they will use whatever technologies they can to do that. It’s an aesthetic and moral imperative to them… or maybe they’re just bored.

    You need both kinds. Keep in mind that the smart ones love to share their knowledge and spread it around. If you encourage this, your “dumb” engineers could find themselves well down the track of wisdom.

    Reply
    1. Uzi Kilon Post author

      I agree with everything you say.

      Some time “smart” people like to take a simple task, make it complex, and then solve a hard problem.
      I can’t count the time into so many over-complicated programs which could be easily written in a simple way.

      I guess, by saying “dumb”, I was mostly referring to “not trying to be smart”.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *