The key to teaching programming (or any other complex discipline) is understanding inferential distance. Everyone comes with their own set of:
- Words for those experiences
- Processes for deciding what to believe
It is easy to explain a new idea to someone who has the same background, terminology, and values. To teach a sophisticated concept to young children — or people from a different culture, or adults who are set in their ways — requires more than words. We need to:
- Create new experiences that reflect novel concepts
- Give them words to capture that experience
- Show them how to infer new concepts from those words
Words are amazing. I couldn’t write this blog post without them! But you wouldn’t be reading them now unless you had a experience that inspired you to click on this link. And probably you won’t believe them unless we can deliver an experience that convinces you we can actually make this theory work in the real world.
And that is exactly how it should be.