Social problems in Computer Science

This is a guest post by Jessica Hamrick. Jessica Hamrick is a student at the Massachusetts Institute of Technology pursuing a bachelor’s degree in computer science with a bent towards artificial intelligence. She is is the current Chair of MIT’s computer club (SIPB), and when she is not busy managing that, enjoys hacking/coding, photography, knitting, and blogging at Artificial Awareness

This entry is cross-posted with some edits.

This morning, I read a blog post about women in computer science which was quite compelling. It reminded me, of course, of another article about women in CS, and I began thinking about about what my own opinion is on the subject. Sexism in CS and similarly technical fields is certainly a problem. But why? And how have I encountered it?

It struck me that I am incredibly lucky to be a student at MIT, where I have never actually encountered blatant sexism. No one has ever groped me, or told me I was incompetent because I was a woman (nor have I ever felt that was the case). I was elected SIPB Chair, but it was not that people thought I was sexy or that I slept with anyone, but that I was the right person for the job. When I ask more experienced hackers technical questions, they don’t try to gloss over the details or tell me that I won’t understand–they explain it the same way they would to anyone else. Really, I couldn’t ask for a better environment.

However, it still didn’t feel quite like sexism (or something like it) it was entirely absent. After thinking a while longer, I realized what the problem was:

The tech environment walks a fine line between being elitist and being a meritocracy, and often manages to slip back into elitism.

It’s not so much a problem of sexism as it is a problem of general attitude. Becoming good at dealing with computers takes a lot of hands-on experience. There aren’t any classes that will teach you how to debug NetworkManager or how to reconfigure your X configuration so that gdm doesn’t fail. So those of us who like figuring out the answers to such problems have only a handful of options: 1) learn everything using Google, 2) learn everything by asking an expert, 3) both 1 and 2, or 4) give up. Sometimes, if the problem is specialized enough, 2 and 4 are really the only options. Unfortunately, it is often the case when asking an experienced hacker that they will give a harsh, unhelpful, and/or elitist response. Here’s an example.

Person A: I need to reinstall this computer with Debian, but I don’t have a CD or DVD burner or any flash media. I’m not sure if I have any other options. Could you help me?

Person B: I don’t have time. Just use PXE.

A (thinking): PXE, what’s that? I guess I’ll Google it. Hmm, well, Wikipedia says it’s a way of booting your computer over the network. I guess sort of like a livecd, except over the network? That’s kind of cool. How do I do it? This site seems to give some links. Looks like the Debian link is broken, so I’ll use the Red Hat link and see if I can just change the relevant things.

[an hour passes]

A (frustrated): This isn’t working. How am I supposed to install my computer over the internet if I have to install stuff to the computer to begin with? I don’t understand how this works!
B: … what the hell are you doing? You just choose the “netboot” option in your BIOS, like you would choose to boot from CD-ROM or hard drive, etc.

Do you see what Person B did wrong, here? Person A was asking for help, and clearly does not know about netbooting (or they wouldn’t have asked). Person B assumes they know what PXE is and that they know how to use it, or at least that they can figure it out for themselves. Unfortunately, the documentation on PXE is unhelpful and misleading and never mentions needing to change a setting in your BIOS. Person A tried to figure it out themselves using the vague information given to them by Person B, but only managed to waste an hour and become even more confused! Furthermore, when Person A comes back for more help, Person B acts like they are incapable of learning for being ignorant and confused, and treats them with disdain. It would have been so much nicer, faster, and easier for Person B to simply say in the first place “try using the netboot option in your BIOS to boot into the installer over the internet”.

In my experience, the sort of attitude taken by Person B, either intentionally or unintentionally, is the most formidable obstacle facing new tech-oriented people. In particular, I have noticed that men tend to be better at muscling their way through this “barrier of newbie shame”. Many studies have shown that women tend to be less confident and less assertive than men, and when the environment is such that you have to be assertive and confident in order to get anywhere, it is no wonder that many choose to give up and choose a different path. Being ignorant of a topic does not mean you are incapable of learning it, but many people in CS act like it does.

There is no reason why the tech environment should be so elitist. I heartily agree that it must retain a degree of meritocracy: you need to earn your respect as a hacker. However, everyone has to start somewhere; no one is born with awesome hacking abilities, and not everybody is as able to figure out how things work without a few pointers. Wouldn’t it be so much better to have more skilled people in computer science, to fix even more bugs and create even more brilliant pieces of software? I believe that if we could tone down the elitism, such a world would become a reality.

Unfortunately, it’s not as easy as just recognizing what the problem is. Being elitist is not always a conscious or deliberate action (most people are not so much of an ass to say “I won’t be helpful because I am better than you”) — it is usually just the easy way out. Becoming a hacker in an elitist environment makes it all too simple to just assume that that is the correct way of doing things. It is easy to fall into the mindset of “I had to deal with and stand up to that sort of bullshit when I was new, so why shouldn’t everyone else?”. It is easy to find yourself too busy to really help, so you just brush them off with a short, unhelpful answer or tell them to RTFM. It is easy to forget that you were once the confused, ignorant newbie who didn’t have the background that you now do.

In addition, I think that many people become rough and abrasive because they are all too often asked to fix things themselves as opposed to giving advice. Every tech person is all too familiar with friends, relatives, and acquaintances asking them to fix computers or install software, and most tech people I know hate it. It is especially frustrating when people who are nominally technically competent ask you to do things for them. The urge to say “no, go figure it out yourself!” is extremely strong, and it is easy to lump favor-seekers into the same category as advice-seekers. But it is important to make the distinction, and to actually be helpful when someone asks for advice.

So, how can we fix this problem? Recognizing that it is a problem is a first step, but it is not enough. Changing things will not be quick or easy, either. But, there are a few things we can try:

  1. If you are too busy to help, politely say so and apologize that you don’t have the time. Don’t give vague or cryptic answers.
  2. Don’t assume that they have the same background of knowledge that you do, because they probably don’t. Try to explain things at their level. That doesn’t mean &#8220skip the details”, but &#8220make sure to explain the details and include relevant pieces of knowledge that you have but they don’t”.;.
  3. Point them towards documentation which you know is helpful, instead of just throwing terminology around.
  4. Be polite, even if they are asking what seems like an unintelligent question or asking you to do something for them You can say “no, that’s not my job” or “no, I don’t have time right now” without being rude and abrasive.

From now on, I will try to point out this phenomenon of elitism to people I know in CS, and encourage them to be more conscientious of their interactions with aspiring hackers. I hope that you will, too! I’d also love to hear any other opinions on this matter. Have you encountered this elitist environment elsewhere? How have you dealt with it?

15 thoughts on “Social problems in Computer Science

  1. lala

    Great article! Another thing is that many of those elitists had resources to help them learn those things, but don’t seem to realize it. Just about every one of these elitists I have met had the privilege of a college education, or a library full of technical books, or a Dad/friend/older brother teaching them about computers since they were five. They don’t seem to get that not all of us have those resources.

    It’s interesting that Person A actually utilized some privileges. S/he knew how to use Google to find something out and had access to a second computer (assuming the issue is that s/he was trying to fix a primary computer) to look it up. Fun times when someone is trying to get advice about a computer at home or at work and don’t even have those privileges.

    1. Jess Hamrick

      Thanks! In my experience, I haven’t observed much of the problem of an inbalance of privilege (though this may be that I’m lucky enough to have had a computer growing up, and plenty of computing resources at college), though I’m sure it is a problem. In my example, I tried to put Person A at the point where they knew enough to try to use Google (effectively or not is another issue) but wasn’t aware of the tools specific to the problem they were trying to solve. I think in this example, if Person A didn’t have another computer to use, they would have been out of luck. If they didn’t, and Person A was asking Person B in person (and therefore obvious that they didn’t have another resource), hopefully Person B wouldn’t be rude enough to still refuse help.

  2. Lilivati

    Physics departments have many of these same problems. There is definitely an attitude that “the tough survive and weak deserve to be weeded out”…because that was the educational experience of most all the profs currently teaching physics. There is definitely a culture of elitism that is extremely off-putting. Granted this experience is limited to my perception of my university, but I’ve heard similar tales from other institutions.

    It made me glad that I was in astrophysics, which had its own department, and only had to visit physics. Yes, some of these issues were still present, but not nearly to this extent…perhaps because so many more women are involved in the field and the department?

  3. Jyotirmoy

    1. Giving advice, when you are not obliged to do so, is a sort of favour. So I think that you need to distinguish between those whose job is to give advice, such as teachers, and other people in the environment who are not responsible for your education.

    2. Person A. may know that a particular approach would solve a problem but may not know all the details herself. This becomes more likely if A. usually works at a higher level. Rather than demanding that A. remain silent or research the details herself, I think it is fairer to let her suggest an approach such as “use PXE”.

    3. Knowing a solution leads to much less learning than finding the solution yourself. Person A. may have been trying to be helpful by putting Person B. on the right track to discovery. Of course sometimes you just want to get something done, learning be damned. But then you are asking for a favour and not advice.

  4. John

    I certainly agree that polite, considerate, replies are (generally) the most appropriate, but I don’t think the question of what reply is the most considerate is as simple as suggested in point 2, because unless B knows A’s level of knowledge, they could be hurtful by explaining too much. B might take it as implicit that A probably knows less than B (otherwise A wouldn’t have asked B in the first place) but might think (in this example) that explaining about choosing a BIOS option is only one step away from saying “don’t forget to press Return at the end of the line”.

    There’s also the question of how to answer in a way that helps A to actually learn and understand, and I think that requires leaving A to work out some of the details.

    Also, on point 3, when I’m in B’s role I don’t necessarily know where the good documentation is (especially if it’s something I learnt other than through documentation) and I sometimes feel I’ve been invisibly condescending if I google something for someone and send them some of the results (even if I do a bit of filtering on the results).

    It’s an excellent point about advice-seekers vs favour-seekers. But although I’m much better at reading people now than I was when I was younger, I still sometimes find it hard to tell when someone’s phrasing something as a request for advice but really want me to do it for them, and it seems a bit blunt to ask “Do you actually want me to do this for you?” Any suggestions on how to tell / what to do in these situations?

    1. Restructure!

      I certainly agree that polite, considerate, replies are (generally) the most appropriate, but I don’t think the question of what reply is the most considerate is as simple as suggested in point 2, because unless B knows A’s level of knowledge, they could be hurtful by explaining too much. B might take it as implicit that A probably knows less than B (otherwise A wouldn’t have asked B in the first place) but might think (in this example) that explaining about choosing a BIOS option is only one step away from saying “don’t forget to press Return at the end of the line”.

      I agree. When I ask for advice in person while female, I often get mansplaining about how to do something simple (they assume I don’t know how to use a GUI, so they explain it), when my problem is something more complicated (something is broken). I prefer it if they assumed I had a higher level of knowledge, and if it’s too high for me, I would be the one who brings up my lack of knowledge.

  5. Vinaigrette Girl

    Elitism is, in my experience, worst-case with maths, and secondly in CS, where your maxim “Explain at their level” intersects with a wide spectrum of Person B’s inability to comprehend what Person A doesn’t “get” in the first place because “it’s obvious” and a mutual inability to explain what needs to be said and how to say it. In industry, people who can cross this divide both ways are golden.

    People who are good at maths and computation self-select to teach it and to continue to study it and branch out into other related activities (CS and physics, for examples). People who *might* be good at computation but who need to come to the abstract through the very practical, and who don’t learn by “playing” because they just want the machine to DO something, are the ones with whom natural geeks need to communicate.

    But there’s a very different mind-set, from the start. It has been suggested that learning by playing tends to be a culturally male trait; women traditionally have more varied tasks to accomplish in a day and playing is a luxury. So, for many people, Becoming good at dealing with computers takes a lot of hands-on experience. There aren’t any classes that will teach you how to debug NetworkManager or how to reconfigure your X configuration so that gdm doesn’t fail. So those of us who like figuring out the answers to such problems have only a handful of options: 1) learn everything using Google, 2) learn everything by asking an expert, 3) both 1 and 2, or 4) give up. defaults to Choice (4) because they do not have the time, really, they don’t. And/or they haven’t the aptitude to learn through play.

    And (not totally unreasonably) they’d like to know why there aren’t any classes, or relatively decent guides, to debugging NetworkManager: or failing that, they come to ask you.

    1. John

      I think that some parts of working hands-on with computers has to be learn through hands-on experience; in particular, diagnosing problems and finding fixes isn’t something where you can just go by rules from a book or a lecture.

      I gather the same goes for playing the violin.

      The medieval latin terms for the two types of learning, I gather, are “scientia” (knowledge) and “usum” (something like “knack”). There’s a medieaval treatise on music that explains how to play the violin, concluding with “That is the scientia of violin playing. It also has a usum.”

      I think the same goes for fixing computers.

  6. Jess Hamrick

    @Lilivati “perhaps because so many more women are involved in the field and the department”

    I think it’s probably less that there’s more women involved as it is that the culture itself is different. I’ve talked to many male friends who feel the same way about the hacker culture; it’s certainly not limited to one sex or the other.

    @Jyotirmoy “Giving advice, when you are not obliged to do so, is a sort of favour.”

    Absolutely. But even if you won’t give advice or help (because you’re busy or don’t feel like it or for whatever other reason), you should try to refuse politely. It’s best to either be helpful or don’t help at all — giving some half-baked answer makes it seem that you expect the questioner to already know what’s going on (which makes them feel stupid), and/or that you’re somewhat willing to help (meaning they might come back to ask you again, which may be undesirable if you’re busy).

    @John and Restructure! “unless B knows A’s level of knowledge, they could be hurtful by explaining too much”

    Yeah, that’s the other side of the same coin. You don’t want to explain too much, but you don’t want to explain too little. At least, when I’m talking to budding programmers (as opposed to users looking for help using a program), I generally assume that they are competent enough to know how to use a computer in a general sense; that they’re just not familiar with the specific program or the details. I try to base my answer on how they ask the question (and, conversely, try to ask questions that convey my experience): if they include details that imply they sort of know what’s going on, then I’ll assume they know more, and I’ll explain less. If they give a vague, general sort of question, I’ll assume they don’t know what’s going on at all.

    @Vinaigrette Girl and John “defaults to Choice (4) because they do not have the time, really, they don’t. And/or they haven’t the aptitude to learn through play.”

    I agree with John that a lot of knowing how to fix computers and software comes from hands-on experience, and that (like learning to play a musical instrument), you can’t do all of it just by reading about it or asking questions. But, on the other hand, it’s really hard to start learning a new instrument if you don’t even know how it works. If you aren’t good at musical improv and don’t already know any theory, then learning how to play the piano without a teacher or at least a book is hopeless. Likewise, if you aren’t sure to start with computers, then for many people it’s hard to get anywhere without some pointers in the right direction.

  7. Katherine

    My engineering classes at university were a bit like that for some people (I didn’t encounter it much because I didn’t ask classmates for help often). Also all the IT departments I’ve encountered have taken a “geez the rest of you are idiots” approach to everything ever.

  8. Shauna

    Great post.

    I’ve learned most things I know about programming, electronics, AI from textbooks and websites and googling. I am very familiar with that terrifying feeling of, “Not only do I not know – I don’t even know what I don’t know.” It’s one thing to work your way solitarily and steadfastly through a pre-charted course. It’s another thing to feel as though you’re walking around in the dark (with earmuffs and noseplugs for good measure).

    Learning is hard! It takes a long time! Good teaching can be a big investment for both teacher and learner, so I understand why some people might hesitate to help — but dismissiveness towards someone who needs to learn is just awful. A lack of knowledge is not a sign of weakness or stupidity or inferiority. It just means they’re coming to this area a little later than you. That’s really all. A difference in the passage of time.

    I think this also ties into competitive vs cooperative atmospheres. I was walking by a building on an Ivy campus the other day with a friend. I pointed out the design of the building — a huge main room with open offices on several different levels. He said he’d spoken to someone in the department and apparently it was designed so that students could see each other’s work and be spurred to even do better by the comparison. I said that sounded like a terrible environment. He said it sounded great to him. I don’t think there’s anything wrong with having a competitive personality, but I don’t know many “meritocracies” where cooperation is valued over competition and a nurturing form of teaching is encouraged over sink-or-swim.

    If women have been socialized to be less competitive, and tend to come to these fields with less knowledge/experience/later in life, then yeah, these atmospheres make it harder to succeed.

  9. spz

    from personal experience:
    It may take some time to realize you just lost someone three corners back or never picked them up in the first place because in this area of your expertise, the knowledge you thought was common actually isn’t. Or the third attempt to explain something still meets bewilderment. It’s not always arrogance, sometimes it’s just the one asked isn’t a particularly good nor experienced teacher, and the larger the knowledge gap, the more organized, structured the information needs to be. This is something I am rather bad at, and it’s pretty frustrating to not succeed getting the knowledge across. *lament*they just don’t understand me!*/lament* :-$
    Being able to give an organized view on a moments notice instead of a wildly hopping mind map would help, but I can’t. The info dumps I generate do help people who only need the details (and especially the ‘cautious, here there be dragons’ footnotes) but know the landscape already, for others they seem to be pretty useless. It’s very tempting to not even try.

    In other words: if you ask someone something and they aren’t a teacher, and brush you off, it may not be because of any shortcomings you could potentially have, but because of shortcomings they are painfully aware they do have.

  10. Restructure!

    This comment is not a response to the post, but an offshoot.

    Person B assumes they know what PXE is and that they know how to use it, or at least that they can figure it out for themselves. Unfortunately, the documentation on PXE is unhelpful and misleading and never mentions needing to change a setting in your BIOS. Person A tried to figure it out themselves using the vague information given to them by Person B, but only managed to waste an hour and become even more confused!

    But if Person A did manage to figure it out themselves after an hour, then wouldn’t it not feel like a waste of time, but rather an accomplishment through brute force effort? Is it elitist to struggle through something and then feel that you got so much smarter by roughing it out yourself? And then cherishing the experience and thinking of it as part of the normal learning process? Is this masochistic?

    Would this be like masochists applying the Golden Rule, or is it elitism?

  11. Richard

    Good article, Jess.

    As for elitism, while this problem is rampant in academia, these attitudes exist everywhere in the real world, even in non-technical fields (e.g., fashion, business) and in places that seem far removed from the elite (e.g., the MA RMV). I believe it is partially a product of a culture of self-reliance and individualism, rather than a focus on community.

  12. nobody

    Apple developer documentation. I’ve always been a linux command line kind of person. I recently decided it would be a good thing to redo a piece of software that people keep begging me to release to the wide world in a user friendly format with a gui. I’ve never done anything with a gui before. I thought it would be easier to try on a mac because they have the unixy underpinnings that I know and love but they’re supposed to be user friendly. Oh, the agony!

    The documentation comes on two levels. You can either read the documentation on how to use the developer environment and interface builder, full of inane details. For instance you’ll get a full page of lengthy explanation that boils down to “if you want to open a file, click the File menu in the top left hand corner of the screen then select Open.” Only they manage to add enough more details to fill an entire page and is even more eye-glazing than what I just wrote. And it goes on in great detail for every single thing about the software. Or you can read something that pretty much says “jargon jargon with your jargon jargon jargon jargon. And don’t forget to Jargon, or your jargon will jargon.”

    I am soooo not up on my gui jargon. I’ve never done a gui. Why would I be reading the documentation if I had? So why is all the documentation for developers geared at people who probably don’t know how to turn on their computer or at people who already know everything? Hint to Apple: probably if I managed to download the developer tools all by myself, I probably know how to open a file. Grrrrr!

Comments are closed.