How do you explain how programming works to complete non-techies?
wglb: It is reasonably difficult.  The problem with analogies is that all analogies are false, and they are really a diversion to the core of the discussion.  This is the good approach to saying what you need to say just to get out of the room.One tutorial example is referring to water flow in pipes to explain how electricity works.  The student thinks they have got the concept, but then will totally fall off the rails when you get to magnetism, induction.  And the resistance model is wrong and so on.For example with the Excel example is that this description makes it sound way too easy.  Then they ask why does each feature take so long to implement.  Why don't you use excel instead?The "nation of smart people" approach is a good start, with adding in how programs are built out of successively more complex components.