I had trouble with my social development as a child. Some of it's clearly genetic. My father isn't completely socially incapable (although he did benefit from 1950's parenting methods and two older sisters who were not socially handicapped in any way), but he shows signs of high-functioning autism. But it isn't just that. My father shows signs of having at least mild narcissistic disorder, and my mother is unmistakably borderline. (Not sure what my father's excuse is, but my mother was the victim of child abuse, and her parents were much worse than mine.) So my parents didn't do a good job of teaching me social skills. Mostly, I just got into trouble for things I just didn't understand. Even after I developed empathy in around the 8th grade, I didn't know how to use it, and there was nobody I could talk to who was insightful enough to help me figure it out.
But then when I was in my 20's, away from my parents, and perhaps having outgrown some of the innate problems, I encountered co-workers who had the patience to explain to me my social mistakes without all the "what the fuck is the matter with you" kind of reaction. Instead, they explained to me clearly and calmly (albeit with concern in their mannerisms) what I did, what it meant, and how people perceived it. I was receptive, and they were willing to help, and this lead to a rapid growth in my social ability through my 20's.
What I've learned to do is PAY ATTENTION. I know that I have a disconnect, so I have developed a conscious habit of opening my eyes and just listening to and watching what's going on and associating people's emotional reactions (which I can read) with the social circumstances that lead to them. I'm also a bit of a goofball, which I have learned to leverage. So I smile, make jokes, and get people to talk about themselves, and people now find me to be rather charming.
It's been a long road getting from there to here. :)