I disagree with your thesis. I’m that “jerk” programmer that you decry, but what you are fighting is a false dichotomy between being a good programmer and knowing that and being a friendly person. One doesn’t preclude the other. In fact, the first is necessary for the second. The only way you can be of worth and interest to your coworkers, is if you are good at what you do. And, you can’t be good at what you do, if you pretend that being a so-so unenthusiastic coder — people you made fun of — is actually a normal thing. It is not a normal thing not to be the best you can be. And it certainly fair to make judge those people who chose to take the easy way out: not to study, not to think deeply about technical issues, and just hangout at the parking lot smoking weed, and trying to copy others in order to look “cool”. No, the deep thinkers, are the elite few, because we are normal, and they are decadent.
But, you are right there’s something bad to being a closed-onto-oneself geek. Ayn Rand has figured it out. Read her essay “The Comprachicos”. In the beginning she explains why people in high-school are divided into geeks vs. “popular”. And, as for being ashamed to be a good student, read or re-read in Atlas Shrugged the part when Francisco hits Dagny in the face, when they were in kids in school.