Everyone should learn to program, even at the highest level of abstraction (python, visual basic, SCRATCH), just so they understand what the tool (computer) they have in their hands is capable of.
People go through their everyday lives not even considering automating certain tasks because they haven't been exposed to what programming can do. People go through their days not understanding when they are being ripped off or blatantly stolen from. They don't know what is secure and what isn't. Learning to program solves these problems.
To quote Ben Franklin "Those who give up their liberty for more security neither deserve liberty nor security."
Disclaimer: I am slightly biased. I don't agree with what Steve Jobs stood for. I don't believe people should become mindless content consuming drones nor do I believe in walled gardens. If I buy 3 acres of property I don't want to be locked in .5 acres because of a damn hedge.