Samstag, 5. September 2015

Rules for Explainers

I've been dawdling in programming forums for quite a while now and something really strikes me again and again: Some of the smartest girls and guys out there are really bad at explaining and teaching.

  1. Solving a problem is different from helping someone solve a problem.

    You will find quite a few answers to technical questions, where someone simply drops a correct solution that has nothing to do with the original post.

    Often enough they do not even bother to explain what the original poster did wrong. They just solve the problem and leave. There, I am much smarter than you, I solved your problem. Now go away.

    Don't do this. When you answer someone's question, you are not only a problem solver, you are a teacher. In that role, you are supposed to help the other learn something. And reverse engineering a working solution is not a very effective learning method, because it quite often does not  yield any insight on the underlying mechanics.

    It is the old feed him for a day-problem: The goal is to give the "student" enough information to help himself/herself the next time round. The oh-so-common howto-style of documentation is exactly the opposite: stray from the path of the howto and you get lost.

    Somebody without a deep understanding of a problem is very likely to  incorrectly reason about why your solution works and his/hers does not.
    So, when you find out somebody has a non-solution to a problem, try to at least a little thing about out how she/he actually arrived at the wrong solution. Empathy is not optional, here.
     
  2. Don't explain with your goggles on.

    Recently, somebody told me, alternate expressions of a regex are matched left to right, matching the first, ignoring the leftmost longest rule.

    That's correct. For Python. Almost everywhere else (POSIX, Ruby, ...), this is wrong, and so actually a really hard gotcha.

    Regular expressions traditionally applied the leftmost longest match rule over the whole match. Python and PCRE regular expressions are different, they short-circuit the first matching alternate, if a subsequent match could have been longer, it is ignored.

    The problem is, that the poster did state it as an overall fact, not bothering to explain that this is actually a very specific concept. He/she was using his Python goggles to look at the problem, not bothering or not being able to take the broader view. This usually gets across either as  arrogant or ignorant. It gets worse when you basically drop this as a brief comment on someone and then leave. Or in short: It's just rude.

    To be fair, in the described situation, the poster and I discussed this and came around to reconcile our view of the situation. This pushed up my respect for him quite a notch. Confrontation is only bad when there's no progress from it.
  3. Don't assume

    One of my favorite responses to one of my postings starts with "If you believe that ...". Everything that follows is sarcastic condescension, very thinly veiled. And when called out, the responder simply re-asserted his position without bothering to recheck his facts. Order No. 227, anyone? Three mistakes in one go: Assuming that I meant what he/she understood (I clearly didn't), immediately thinking that his/her opinion/intellect is superior to mine (I cannot comment on that), and non-reconsidering his/her position when I stood my ground (possibly because of arrogance).

    It happens a lot with nerds, especially younger ones. Hell, I think most of us are like this before age teaches us that we are not the smartest person on the planet. But for some the humbling down never happens. It's also kind of a self-reinforcing mechanism: Most people just walk away right after the first time you are rude at them and they never come back. This looks like a victory ("I was right"), but it is actually downright failure. The goal wasn't to be right, but to convince others. People walking away from you are not persuaded, they are disgusted. You see a pattern: Yep, again, assumption won out and re-assessment did not happen. You only think you are always right, because you never re-evaluate. Congratulations.

    Walking through life always totally assured that your interpretation of the world is correct gives you a lot of momentum and can take you far. It also means that it hurts all the more whenever you hit that waiting brick wall.

    Allow yourself the doubt, it makes you a better person and a better teacher. And give others the benefit of doubt.
To be continued...

Keine Kommentare:

Kommentar veröffentlichen