I think we programmers become so used to thinking about things abstractly that we forget the metaphors we were using when we first learned to program. When I write C I'm often thinking about how the operation changes memory locations and registers, but I barely knew those when I started.<p>This topic is also very interesting to me because my wife has shown an interest in programming which I'd like to nurture, but we have communication problems because I regularly use terms she doesn't fully understand yet and it is hard for me to put myself in the shoes of someone just starting out.