You Need To Be Smarter

Ever have an endless discussion with someone about a problem and they just aren't getting it? [YouJustDontGetIt] You learn that they don't know what they are doing and they probably will never know what they are doing. You just want to scream: what I need is for you to be smarter!

All the time when discussing programming techniques, haven't found a solution yet.

Most programmers are around equal intelligence, they just have widely varying experience and mental models. It's not the student's fault if something can't be conveyed - it's the master's fault. Try aligning your mental model with theirs. Also consider that your "smarter model" might be overly-complex. It's not a good model if you can't convey it to other programmers. . . of course this is all assuming we are talking about programming, not wiki behaviour, or general human decency.

You might also want to consider they don't know what they are doing. If that is so the master can not explain it, especially when it is supposed to be their area and responsibility. Nothing new is being explained to them. I am trying to use something they built and they don't really know what it does or how to make additions. This is because they just pieced it together without understanding.

[In which case you ought to try being dumber. If they could make it without understanding it, surely you can use it without understanding it...]

I'd try explaining to them that they are trying to use something they built and they don't really know what it does or how to make additions - then explain how it should be properly assembled. You were able to articulate the problem here, why not to them? If they resist due to dogma or defensiveness - then it's not a matter of intelligence, it's a matter of wills, and insults would only hinder things. Due whatever necessary to remove both of your egos from the equation. Good programmers know humility is the best way to find the solution.

Unfortunately, most programmers aren't good, nor humble. The great ones always are, the good ones almost always are, the regular ones rarely are. The problem's usually occur when trying to explain something to someone who thinks they already know what they're doing. In these situations I try to reference someone better than me, say Ward, Kent, or Fowler, but that doesn't usually work either, unless they have at least a little humility.


[In which case you ought to try being dumber. If they could make it without understanding it, surely you can use it without understanding it...]

I wonder if you actually understand what you just said. Pretty much you are saying any crap someone makes works. I am the problem. The person who made the stuff that doesn't work and doesn't understand why it doesn't work or how it was supposed to work is golden. I just have to be dumb enough to not to have to understand so I won't know how not do what I need to do.

[If it doesn't work and they don't understand it, why are you wasting your time talking to them? Use something else or build it yourself.]

You are an example of YouNeedToBeSmarter.

[Of course I do. Don't we all? In the mean time, why are you wasting your time talking to someone who made something you can't use if they can't fix it? Why not just write it off as yet another thing that doesn't work?]

Interesting example of assuming that you are smarter than your audience based on nothing more than the fact that you disagree (or that your audience doesn't understand you). Sometimes it turns out to that the speaker is the one who ultimately doesn't get it. That's why it is safer to assume the issue is one of communication, when at all possible (and simple frustration doesn't count as showing it to be impossible).

Score one more for LaynesLaw

[I went and read LaynesLaw, and don't see how it relates.] Because the debate degenerated into defining "smarter"

You said, in effect, that the person you were talking to needed to be smarter, because they didn't get what you were saying. I think that is presumptuous in the extreme, but I merely politely pointed out that the true issue is communication...and you call that a matter of the debate "degenerating"?

"Someone else wrote that, I was just reading the page and saw a LaynesLaw context. The degeneration is because the debate started to turn into defining intelligence."

Ah. Well, although LaynesLaw is well known - since it predates Layne :-) - it's not always a "degeneration". Sometimes it is, other times there wouldn't be any disagreement if everyone used the same terminology.

In this particular page, I think it's very dangerous to just assume that the other guy is stupid just because he doesn't seem to get it. There might be other issues. And there are some very intelligent people who do not possess high communication skills. So I don't truly think it's a matter of intelligence in the first place, and assuming that it is could backfire in a large number of potential ways.

We bother with others because humans are innately social. Even disagreements are a kind of mutual understanding where both parties have limited the scope to a few key points. I called LaynesLaw(what *is* the real origin? I'll refactor/delete the page if anyone can find it) because both parties allowed the debate to degenerate into one word - "smarter". It's degenerative because once it's down to a word, no one can agree on the word's definition. . . Some would say no word is really absolute. -- LayneThomas

It's not about being absolute, it's about reaching agreement on definitions for the duration of a conversation.

Except that never happens to the key words. The nature of a debate will make both parties avoid accepting the other's definition, because they don't want to be trapped by the other's definition.


You can't build an understanding of a concept, which depends on the grasp of a certain vocabulary, on top of a flawed or missing comprehension of that vocabulary.

If you aren't able to convey the concept, address the vocabulary/terminology/jargon of the concept. Make sure that the other guy's understanding of terms matches yours. Don't proceed until it does. Define any new nomenclature and make sure that's been grasped.

Now address the new concept. You will find that once an actual mutual understanding of terms is achieved, the effort needed to convey the concept is dramatically reduced.

Having attained agreement on the foundation elements, you will find your audience has "gotten smarter."

However, getting to "smarter" usually involves some humility, a willingness to put aside one's obvious rightness in favor of building the "reality bridge" that will allow real communication to occur.

-- GarryHamilton


It's very dangerous to just assume that the other guy is stupid just because he doesn't seem to get it.

Never said he is stupid. He is not. Quite the contrary. He just doesn't understand how TCP/IP and sockets work because he is not really a programmer but is doing a programmer's job.


See OnlySayThingsThatCanBeHeard


EditText of this page (last edited February 28, 2006) or FindPage with title or text search