It’s always easier to say what not to do, rather than what to do, so I’ll start that way.
I had a lot of problems explaining that to people and never quite understood why it was hard to understand … And once we think we know the answer, it’s very hard to learn something new.
Fortunately, it’s more important to have the right problem than to have the right solution, because at least when you have the right problem you can eventually solve it.
If you go back to the roots of C++, you will find things considered very hard that are now considered obvious, and you have trouble understanding why people had problems with them. I don’t quite understand why I couldn’t teach those ideas, but I too have learned a lot since then.