I agree. That said, I think the "your grandma" line should be retired.
1. It's problematic. Why are we assuming that an old woman can't also be a badass programmer? Plenty of CS luminaries (a) were women, and (b) had kids (c) who themselves had kids, and therefore are someone's grandmother.
2. Your audience isn't necessarily non-technical. Generally your audience is going to be someone who's qualified to take the course. Which means that a good explainer is going to, as you said, have a high degree of empathy to beginners... but not explain things at such an introductory level as to leave people bored.
3. I don't agree that people who can't explain things well to non-technical people don't know their stuff; they lack an important skill that could make their knowledge far more useful to humanity, but that's a different claim from saying that the knowledge doesn't exist.
> I agree. That said, I think the "your grandma" line should be retired.
Attributed to Einstein: "If you can't explain it to a six year old, you don't understand it yourself."
I've always thought that was a better version. But this was never a comment that you should explain things as if your audience was a six year old. Part of communications skill is the ability to pick the right level for whatever your audience is. This quote is much more literal - it's saying the if the range of people you could explain this too doesn't include small children, there is more for you to understand.
For what it's worth I disagree with your (3); it's not just about communication - people often feel that they really understand something when they have a handle on a lot of technical details, but this isn't true. There is a deeper level of understanding that will let you synthesize this and find the real core of what is going on. I've found it to be universally true that if someone cannot do this, however awkwardly communicated, they don't understand the subject as well as they think they do.
This happens with PhD students and "sr" engineers all the time. They may have spent the last 6 months thinking deeply about an area, and when you ask them to explain it to an "talented outsider" they can't. A few years later if you ask the same thing their answers will be much better, because they understand much better.
Off topic, but as the father to a seven year old I’ve discovered how many things I don’t really understand over the last few years. His interest in black holes recently has me thinking I need to read a whole heap about relativity.
ِYou don't, really. Studying physics and cosmology has almost zero instrumental utility (except signalling, where I don't think it's worth its measly returns, and contributes little to the society). The child doesn't know this, but you do; That's why you don't know that much about the topic in the first place. Curiosity is as much about pruning unproductive lines of learning as it is about trying new things.
Not to mention that the demographic of "grandparents whose grandchildren are old enough to explain computer issues to them" had mainstream access to computers much earlier in their lives than the same demographic ~20 years ago when access to computers hit its inflection point between "enthusiasts" and "everybody".
1. It's problematic. Why are we assuming that an old woman can't also be a badass programmer? Plenty of CS luminaries (a) were women, and (b) had kids (c) who themselves had kids, and therefore are someone's grandmother.
2. Your audience isn't necessarily non-technical. Generally your audience is going to be someone who's qualified to take the course. Which means that a good explainer is going to, as you said, have a high degree of empathy to beginners... but not explain things at such an introductory level as to leave people bored.
3. I don't agree that people who can't explain things well to non-technical people don't know their stuff; they lack an important skill that could make their knowledge far more useful to humanity, but that's a different claim from saying that the knowledge doesn't exist.