Metaphors we learn to program by
I'm working through Metaphors We Live By, an exploration of the role of metaphor in human cognition and language. Metaphors as linguistic expressions are possible precisely because there are metaphors in a person's conceptual system. In particular, CONTAINERS and PERSONIFICATION fundamentally ground our experience. Each of us is a container, with a bounding surface and an in-out orientation. Most common data structures obviously fit into the CONTAINER metaphor because they're, well, containers. Even tho we have no sense of how many multitudes are contained, "Best practices" assure us the object will only transform that which it contains. Could we do more to make programming an accessible activity to the 99% of people who don't program, by putting greater emphasis on intuitive physical analogs? Were physical metaphors like the ones described useful to you when learning to program? Are they still useful to you?