The distinction for me, and the point I made in my TEDx talk "You should learn to program" [1] (shameless plug), is that learning to program is like learning to read and write. It's the new literacy. Just because you know how to read and write, you aren't a writer.
Two hundred years ago if you knew how to read and write, it probably meant that you were in an eclectic group of people whose profession was reading and writing (just like knowing how to program 15 years ago meant you were probably a professional programmer), but we've reached the point now where computers and the code to talk to them are so ubiquitous that you're doing yourself a disservice if you don't understand the rudimentary building blocks of coding (just like knowing the rudimentary building blocks of mathematics helps you be a better world citizen - you don't have to be an expert in second order differential equations to survive in daily life, but you need a working knowledge of fractions and percentages).
> Two hundred years ago if you knew how to read and write, it probably meant that you were in an eclectic group of people whose profession was reading and writing
While there weren't the quality of literacy statistics that there are now, most of what I can find indicates that in at least Northern/Western Europe and North America, literacy, while not as near universal as today, was something that the majority of the population possessed 200 years ago, not limited just to people whose professional occupation was reading and writing (certainly, things like a "Farmer's Almanac" make little sense if people whose profession is "farmer" aren't, at least reasonably frequently, literate.)
Two hundred years ago if you knew how to read and write, it probably meant that you were in an eclectic group of people whose profession was reading and writing (just like knowing how to program 15 years ago meant you were probably a professional programmer), but we've reached the point now where computers and the code to talk to them are so ubiquitous that you're doing yourself a disservice if you don't understand the rudimentary building blocks of coding (just like knowing the rudimentary building blocks of mathematics helps you be a better world citizen - you don't have to be an expert in second order differential equations to survive in daily life, but you need a working knowledge of fractions and percentages).
1. http://tedxtalks.ted.com/video/You-Should-Learn-to-Program-C...