Carroll, John M. and Thomas, John C., “Metaphor and the Cognitive Representation of Computing Systems”, 1980.
Our starting point is the simple observation (dating at least to the time of William James, 1890) that people tend to try to learn about new things by making use of their past learning. New concepts are typically thought of in terms of old concepts-at least initially. We focus on a specific variety of this, the metaphorical extension from one structured domain into another. In particular we consider the role that metaphorical learning plays in the mastery of computing systems at various levels of “competence.” Professional programmers might learn a new system X by metaphorizing at least initially from what they already know about system Y. More casual or naive end-users might rely on metaphors drawn from more distant knowledge domains, e.g.. on what they have already learned about electric typewriters.