When teaching, I remembered how hard concepts of variables and functions really are. It's really hard to explain it to someone.
Obviously none of these people were hardly into solving puzzles. I think novelty and lack of frustration in this field makes motivated people perform better. Take this with a grain if salt but there are neuroscience studies pointing to novelty as a good way to learn. It is easy to find studies about it like https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3858647/
For me, understanding what was involved with "installing" a library to use in Visual C++ took years even though it's not that complicated. I just followed magic instructions and if things didn't work, then I would just have to ask someone for help. Eventually I understood the difference between the dll and the header files, static and dynamic linking, etc. Someone could have explained that to me literally years before I learned it myself, but I spent years just assuming it was essentially unknowable.
Everything else is teachers and documentation and compiler errors being stupid.
For example when starting with C++ who starts out with the importance of semicolons, how you have to not leave them off, find the missing semicolon, and have a teacher watch over you pointing out your missing semicolons? Nobody. You get a stupid abstract sentence : "statements are terminated by semicolons" after some bullshit definition of a statement. You can spend 90 minutes looking at definitions of the latter without acquiring a skill that the former could show in - not an exaggeration - 17 seconds.
17 seconds : 90 minutes is 1:317, so 3 years becomes 3 days of someone actually showing you.
You know it's true. You've seen it!
Matt O'Dowd on PBS Space Time also has a great way of breaking down really complex theories (especially if you watch a set of presentations in order).
[PBS Space Time (YouTube)] https://www.youtube.com/channel/UC7_gcs09iThXybpVgjHZ_7g
I wonder whether this was due to his habit of regularly re-evaluating his understanding of more advanced concepts from first-principles. If so, that could be a technique to counter the curse of knowledge.
People who understand things who can roll up their sleeves, and get the job done, are a rare breed, this stuff can't be taught.
Later, after you create you can return to Feynman, have a cold-beer, and listen to his lectures and have a good laugh.
Oh, you mean the work Feynman did for which he got the Nobel Prize in Physics?
Good to know that CalTech considers that worthless.
It led me to write two books using the Hard Way method:
http://learnbashthehardway.tk/learnbashthehardway.pdf
http://learngitthehardway.tk/learngitthehardway.pdf
It doesn't assume zero knowledge, but it's so hard to know how to pitch. What I like about the hard way method is that typing stuff out forces you to engage the material and encourages self-learning through the topic.
Granted, your comment about $ vs % and the fact that all the following code snippets have $ they could figure it out but still.
Part of it is that when you become very senior, you start to become an administrator of a little research business, rather than a teacher.
Another part is that once you've internalised something, you cannot fathom not knowing it. Imagine not knowing what the complex plane is, and trying to explain it to someone who only knows what the real numbers are. Your explanations just won't make sense until you can place the real line inside the complex plane, and shepard the learner to the same state.
I've struggled a lot myself in school, and I think that had something to do with this.
With my current experience, just about any textbook I pick up and start reading, I can often pinpoint a lot of issues in the text that has this problem.
https://simple.wikipedia.org/wiki/Main_Page https://www.reddit.com/r/explainlikeimfive/