I was talking to my college roommate, Aliza, who is teaching high school English with Teach for America, about how people good at one thing are not expected to be good at other things. She said that her students are often shocked when she demonstrates ability to do things other than English--in particular, they are shocked when she can do math, as she sometimes does when calculating GPA's in her head. We discussed how such expectations are bogus, and it was the expectation of our parents that we would excel in everything that caused us to have more well-rounded abilities. I told her about how when I was very small I could do all kinds of math but couldn't put sentences together, and she told me about how her reading ability was in such contrast to her math ability that her first grade teacher expressed confusion to Aliza's mother. We were both forced to overcome these early challenges, and though we ended up choosing careers (or the beginnings of careers) with what felt more natural, both of us became proficient in the basic skills--I am now able to express myself through writing and she can now do math. For both of us, it had been very important that parents, teachers, etc. expected us to be good at more than one subject.
It is an interesting (and harmful) phenomenon that people are only expected to be good at one thing. (For instance, people who are good at writing are not expected to be as good at math; people who are good athletes are not expected to be good at school.) I propose that it is this self-fulfilling prophecy rather than any sort of truth that causes people to have specialized skills. Few people are so lacking in natural aptitude that they cannot acquire the skills to be proficient in writing, math, or (yes, even) programming. The reason you see so many seemingly smart people who are not proficient in all necessary things is due to a combination of poor teaching and lack of self-motivation (due to expectations from self and others and other psychological barriers).
I've stated briefly in my post about math kids the reason why people good at one thing should be good at other things: if you have the educational background/natural ability to really excel in one field, you should also have the educational background/aptitude for at least proficiency in everything else. This is why it is not surprising when kids who are good at math are also good writers, musicians, etc. The same goes for good athletes: someone who excels at football likely had good early childhood nutrition and parents who didn't beat him/her, and this is enough background to expect that they had everything required to be proficient in reading, writing, math, art, etc. (The reason you don't see more football players who are also great writers and musicians is because nobody requires them to develop these other abilities.)
So why is it the case that expectations are such? There have existed people living in a better time: think of how many well-rounded scholars, thinkers, and "Renaissance men" have existed in the past. Well-educated people were well-educated and expected to prove mathematical theorems while discovering physics phenomena while painting. Things have come to the way they are today because of too much democracy and laziness. People like the belief that you can only be "really good" at one thing because 1) it makes people feel better about themselves when they see other people who are good at something and 2) people who are good at one thing can become lazy and not try hard at other things.
It is my belief that most people are not such idiots that they cannot become good at things if they tried, as people are generally pretty smart about things they care about (whether it be math, politics, sports, or clothes). For this reason I'm not too patient with people who use the excuse that they are "not good at X" for various things. Try harder?