Programmers have a reputation for being smart. I am not sure that is always true, but I do know that that stupid programmers seem to think they are fantastically smart. They love complexity, and tend to look down on anything simple. I tend to like simple things. I won’t say that this means I am smart, but simplicity and elegance often go together. Just because it is easy to understand does not mean it was easy to conceive of.
I ran across the following article entitled “Why Good Programmers are Lazy and Dumb”, and I found it interesting. This entry received several comments. My favorite was: “I r lazy.”
My years of programming have shown me that smart people can become their own enemies. For example, I cannot count the number of times I have assigned work to a programmer only to find him sitting there later in the day trying to fugure out why his code does not work. Long after it is obvious that it is time to come up with an alternative solution, the programmer will try to find out why his solution does not work – after all, it SHOULD work. I have to remind the programmer that his job is to provide a working solution – not to understand why a solution does not work. Smart people can become side tracked by their own curiosity.
We all go through a phase of thinking that we are smart. I can remember spending hours ensuring that my code on a particular project was reusable, only to realize years later that I had never reused it and never would.
It turns out that the real skill is knowing when to make code reusable not knowing how to make it reusable. Many programmers think they are smart when they know how to do something – knowing how is only the beginning. Sometimes it pays to ask the stupid questions: