Quite some time ago, I came to realize that the best ‘teachers’ of a subject (not necessarily academics, but real-world) were the people who had to learn something the hard way. For example, I absolutely, positively cannot explain third normal form for databases, simply because it’s intuitively “right” to me, whereas 1NF and 2NF are intuitively “wrong.” Even when I carefully read up on how 3NF is defined, it’s hard for me to explain to someone.
On the other hand, there are some things that I used to be exceptionally bad at, which meant that I had to work really, really hard to get better. For whatever reason, being a geek is strongly linked with having horrendous social skills. And I’m a geek. I’m still not Mr. Charisma, but I’m no longer the weirdo at the party who’s sitting in the corner talking to himself about linked lists versus associative arrays. Because social skills weren’t as intuitive to me as they were for others, I became pretty accustomed to studying little details in how people act, and to consciously thinking about things that other people never spend time on.
Being unusually “tuned in” to how people interact, I’ve recently come to another conclusion, perhaps related to the above: a lot of computer experts are ecocentric jerks.
Of course I don’t mean everyone. (In fact, I don’t mean anyone here.) But with open-source software, or really any community project, it’s easy to see what goes on behind the scenes. And since it’s usually not a formal job, no one has to worry about being fired.
I’ve had my server in the NTP pool for a long time, and am on a mailing list for people who run NTP servers. The other day, someone posted about how he was having trouble with his server frequently being flagged as giving bad time, and asking how he might figure out exactly what’s happening and fix it.
The first reply essentially said that it’s because his server is horribly-configured. And it went downhill from there. Someone else said that if he can’t figure out how to fix the problem, he really has no business volunteering his server’s resources to the pool.
And then my favorite people came out: the ones that start griping about your e-mail formatting. You see, on this mailing list, people tend to reply inline. This person replied to one of the ‘friendlier’ e-mails, giving a little more information about his subject. Like 95% of computer users, he hit “Reply” and typed his message at the top of the message. Someone on the list replied, chewing him out for this, citing it as evidence that the person was clueless about basic Internet standards. (It’s not quite as good as the people that complain that your message doesn’t look right in an e-mail client from the 80’s, but it makes up for it in terms of being aggressive and very deliberately insulting.)
This is the same thing that I think keeps a lot of people from embracing Linux. They run into a common problem and post somewhere asking for help. And someone replies, quite promptly, telling them that they’re an idiot and that it’s covered in a man page somewhere, and that they really should have searched before wasting everyone’s time asking. And that person probably decides that the Linux community, as whole, is a giant douchebag, and they go back to Windows.
A lot of projects also seem to fall apart over pathetic arguments. You get fights over the proper formatting for indenting source code. (Two spaces? Five spaces? A tab? One space?) People want to use slightly different algorithms to do something, and each side flips out about how the other side is clueless and clearly has no experience. Nothing is a matter of opinion or personal preference: you’re absolutely wrong when you use a tab to indent, and the fact that you put curly braces on a new line indicates that you’re clearly a novice programmer. No, it’s not easier for you to read, and if you wanted your code to be easy to read, you should be using Visual Basic anyway.
This type of stuff drives me crazy, because it sometimes seems that whole communities are full of little kids who have to get their way, who have no concept of what’s a big deal and what isn’t, and who have absolutely no clue what it’s like to try being nice to someone. Someone graciously donated some of his server resources to the NTP pool. When he started running into problems with it and asked for help, the community essentially flipped him the bird, telling him that he was useless and had no business trying to run a server if he couldn’t solve his own problems. We probably lost a member today. But do you think many people care?
Wikipedia has a policy called Please do not bite the newcomers, accompanied by what has to be the most awesome image ever created. Essentially, you’re supposed to try to help newcomers understand the way things are done, instead of insulting them with a bunch of obscure acronyms and telling them they don’t belong. And a decent amount of people there abide by the policy.
I’m sure it’s not limited just to computers. I think open-source development is much more highly-visible than commercial software development, meaning that the feuds between developers are done in the public eye. Any group is going to have some jerks. On a message board I frequent, a member returned after a several-month absence, during which it turns out that she almost died from cancer, but a couple other members helped to get her into surgery. So someone posted a thread welcoming her back. Lots of people posted uplifting messages, including some of the administrators welcoming them back and talking about how great it was that the community was able to help. And then someone–a regular member, no less–posted a reply that this type of thread was really inappropriate, and why should she get special recognition just because she almost died from cancer…
It’s almost classical behavior in children: be mean to other people to boost your own self-esteem, insist on getting your way all the time, and so forth. But really, it downright scares me that some people are growing up and still have such an insanely self-centered view of the world.