Firstly, a lot of the oft-repeated reasons probably do contribute: Math and Computer Science are more competitive (the first day of frosh week we were literally comparing penis size math contest marks). They’re considered geeky and anti-social, although I think the people opening sockets, tracing physical location by looking at the binary and machine coding matrices on 24 are supposed to be CS types.
I’m going to propose another explanation: Women are more trusting and egalitarian when they choose their degrees.
Case in point, a friend of mine is changing her degree from philosophy to computer science. She’s smart, and she wants to make new things.
So why did she go into philosophy?
I think of philosophy as a backwater degree that you get to drink, meet girls and do twenty minutes of work a week for a few years because you aren’t ready to grow up.
Coming out of high school, however, she thought that philosophy was about thinking, understanding and digesting tough unsolved problems about the universe and the human condition — that there would be spirited debates running late into the night where great young minds would come to grips with great problems old and new.
She trusted a philosophy degree to live up to its impressive pedigree and the marketing material that universities provide.
In reality, over the millennia, the scientists left, the mathematicians left, the historians left, even the sociologists left. The philosophy degree that you’re left with is an attempt to cobble together a discipline without having to do anything difficult.
The other problem is that women are more inclined to believe that all degrees are equally valid (or at least to believe this idea is more true); that sociology students study equally difficult problems from a sociological perspective, for instance.
The egalitarian approach becomes problematic when you look at the different disciplines as being equals because you can be swayed more easily by prejudices about them. The stereotypical picture of a hacker staying up all night working on code becomes “a different way of solving problems” not a reflection of the difficulty involved.
If you thought you could solve problems sitting in couches at a coffee shop talking about them instead of by unit testing and stepping through a debugger, which would you choose? Thinking that deciding “we need to make the product more responsive” and implementing a caching mechanism are both equivalent contributions is a deceptively tantalizing and strangely common but ridiculous mentality.
I’m hesitant to propose somehow making high school students less naive and trusting. Although being more honest about how degrees really differ would probably be helpful, a school gets just as much tuition from a student studying basket-weaving as biology so I can’t figure out who would benefit enough to actually do this. So I have nothing in terms of a solution.
There probably are some residual elements of an old boys club, but I suspect they’re fading away (my highschool CS teacher was a woman). I suspect that the percentages of females in CS will stabilize in the 25-35% range and the calls for something to be done about that will stabilize in the noise-from-groups-that-are-upset-about-everything range.
Discalimer: I’m gender agnostic when it comes to people’s skills, this is only one of thousands of possible explanations to this gender imbalance. I reserve the right to change my mind to better suit the evidence.
postscript:
There’s a third reason which might affect the gender balance: many CS courses are awful.
Computer science teachers have the benefit that their students are often excited, involved and learning the material on their own.
The fact that many computer science students can already program and that the serious ones will apply the theory on their own lets the faculty be lazy.
How often do you hear about a physics dropout that made millions in applied acoustics, or the first year sociology project that brought file-sharing to the masses? Computer Science students doing cool stuff before they graduate is such a cliche that I’ve known second year students to bemoan not having hit it big yet.
If the best reason to study CS is that you would’ve anyway, you’re appealing to a somewhat limited demographic.
I applied to Google as an after-thought, I had bought the hype and I honestly thought I wasn’t smart enough.
Executive summary: I’m not
Apply 3 times, twice by accident and once with incomplete forms. This is convienient because you can get a phone call inviting you to an interview and an email saying they aren’t interested at the same time.
Don’t fill out the Self Evaluation: Google sent out a self-evaluation along these lines:
On the scale of 1-10 (10 is the best), how do you rate your HANDS ON experience in:
1. If you rate yourself a 10 that means that you wrote and published a book on the subject.
I filled it out on Google Docs, published it and sent them the URL… for a random comic I found on reddit (damn CTRL-key!). So rather than discuss my competance as a C programmer, I decided to tell them that MIT graduates didn’t like girls.
Ignore their phone calls: Go to another country where you have no cell-phone reception immediately after giving them your cell number. Bonus points if it is to visit Microsoft. More points if you can’t use your answering machine.
Have a phone interview at work, I think my boss finds it flattering the Google is considering poaching his most moronic employee. Assume yours feels the same way.
Actually, it’s a little worse than that — some people don’t. Which means you can’t jst assume the opposite of everything you read.
As a programmer, this is hard to get used to. We have a pretty effective mthod for sepearting wheat from chaff — does the code/idea/algorithm/bugfix work? — so the internet is a great place for finding out anything code related.
It’s a bloody awful place for finding out the answer to “What is a reasonable starting salary for a software developer?” Which, despite the fact it involves numbers and programmers, is impossible to solve.
I’ve discovered the following facts thus far:
-There are, like, a billion awesome programmers out there that can’t find jobs
-There is a shortage of programmers
-A reasonable expectation for a starting salary is between 0 and 200 000 a year
-Whoever is posting the message is a super-awesome programmer
-The author works at a startup and makes *a lot* of money
-big companies pay way more than startups
-Google is overvalued
-Google is undervalued
-I should start my own company
-nine out of ten of companies fail
-etc…
Basically 90% of the content is opinions, and even worse, most of it is what the author wants to believe or is just grabage to attract clicks.
Outliers are too noisy, the average joe doesn’t get excitied enough to post so most of the noise comes from people seeking pity (and lying) or people bragging (and lying).
Self reporting is unreliable, to be generous to the point of decpetion.
Priority one is selling ads, in this case I was lucky that there are sites that actually sell this information so they have a vested interest in it being correct. In most cases they just sell ads, and real information is expensive to produce and so bland — you don’t get to the front page of digg saying water is wet.
/ranting
The best 100% free resource I found was this post from Joel on Software. Even then it’s clear many of the posts are grandstanding (”Sr Unix Admin, No college, 92K yr plus 10K bonus” really needs some mention of experience) or optimistic (”$500,000+ from part time Internet Business” but no URL to plug?).
Here is my conclusion:
Software jobs with CS start at 50-80k out of school and then rise to 70-120k over the next 15 years.
Honestly I would’ve settled for confirmation of things I already believed:
-Big company == more money
-Longer hours == more money
-Higher cost of living == more money
-If people get excited about a job as children you get less money for it (see video games and saving the world)
And the first result is that a professor’s quality and easiness aren’t strongly correlated.
Actually, here’s a more honest graph:
> uw$quality2<-uw$quality+runif(length(uw$quality), min=-.05, max = .05)
> uw$ease2<-uw$ease+runif(length(uw$ease), min=-.05, max = .05)
> plot(uw$ease2,uw$quality2, xlim=c(1,5), ylim=c(1,5))
Looking at the distribution of “quality” marks:
The data isn’t normally distributed — not even close (the average is 3.4), and if a prof has only one vote then that vote really skews them far more than it should (a prof with 50 votes averaging 4.5 is probably better than a prof with a single 5). So I’m going to multiply the distance from the mean by the root of the number of votes:
Much nicer. Except there’s still one prof originally rated 2.3 — but 198 times who gets slaughtered down to a -1.5. Maybe we don’t need to worry about a few edge conditions.
Loudspeaker: May I have your attention please — the Department of Homeland Security has raised the threat level to (ominous voice) Orange (/ominous voice).
Well, they finally got my swiss army knife. I’ve remembered to put it in checked luggage every other trip, I just didn’t check anything this time. Apparently you can store things in a zip-lock bag for $1 a day, but they couldn’t tell me how to get it back if I did — they seemed honestly confused as to why someone might not want to just throw such a useful thing away. Again I wonder how much anti-Americanism is the result of people trying to visit, aren’t we past the idea that someone can take over an airplane with a pen-knife yet. some good news though, apparently inhalers aren’t a problem any more and my laptop can no longer be a bomb, maybe they just bug every person for only one thing.
Also, I don’t mean to be rude, but if you can’t fit into the seat without raising the armrests, that means you’re flowing into me, and it’s uncomfortable.
I just had a conference call to prep me for some interviews Wednesday and Thursday. A 30 person conference call is weird, it keeps being interrupted by “mrmmrmrmlle has joined the conversation” and it’s so awkward when they ask everyone to introduce themselves. Actually the whole thing felt a little like a summer camp.
Apparently I should expect to answer questions like “how would you design a vending machine in hospital” rather than trick questions. That and I should review my 200 level CompSci courses (that’s easy, I only took one).
I’m heading into over seven hours of interviewing, four of one on one interviews, three of activities (tours, a discounted shopping trip), a lunch and a dinner.
The weird thing is I’ll know by Thursday night if I have the job and they want an answer Thursday night. Which is a bit tight. There are maybe 30-40 of us being interviewed as product managers and they’ll probably hire 40% of us. There are 19 groups I could end up at depending on who likes me.
It was weird what some people were worried about, for instance: would there be whiteboards involved? And they stressed that casual clothes were acceptable to no end.
I sent my resume to unnamed company today, and they insisted that I give them a plain-text copy and a “MS Word format” copy.
That causes a couple of problems for me. My latest resume is in OpenOffice format, and I can’t don’t trust it to save word documents that are pixel-perfect, so I loaded it up in Office 2007 — only to find out they required .doc format specifically.
Resumes are the most annoying documents to write because they aren’t so much about transmitting information as they are marketing material that someone will go over looking for any reason to not-choose you. So I like to go through a lot of iterations to figure out exactly what works best. And now I have to maintain
the original OpenOffice format
HTML version (I’m re-thinking this one)
Word 97-2003 version
PDF Version
plain text version
…or just re-generate them every time (which is awful for the plain text & HTML versions). This company then wanted me to re-build my resume in an AJAX applet that kept misbehaving.
If it hadn’t been for a specific job I wanted at this company I wouldn’t have bothered — it makes me wonder how many qualified people they’re alienating with their application process.