Friday, May 19, 2006

Programming's Image Problem

It's not about math.

The vast majority of programming jobs these days have nothing at all to do with algorithms. I have never, in eight years of professional programming, implemented my own data structure outside of an interview.

That doesn't mean what I do is mindless. Programming these days is looking at a problem, surveying a vast toolset, and selecting the right tools to solve the problem in the right way. It's easy to do badly and incredibly difficult to do well. You have to know how all the tools work and how they work together, be familiar with their drawbacks, limitations, and bugs (both documented and non-), and know when it's the right time to use each one.

Then you write some glue code, work around some new undocumented bugs, cast the bones a few times and you have a working system. This is what most people with four year CS degrees do all day.

Yet if you're good at math in high school, they suggest computer science. Computer science undergrad programs, in general, are heavy on the calculus. We're selecting for the wrong traits here, and in the process I think we're scaring away a lot of women.

If instead we looked for organization and pattern-recognition skills in high school and encouraged those folks to look at programming, I wonder if we'd see a shift in the gender balance.

European study: CS dropout rates tied to national culture

Evidently, dropout rates for women in CS are influenced more by the national culture than by any particular personality profile. In other words, women don't drop out because of some inability inherent to all women; the culture around them is a more important factor.

This is a European study, and the US, with its myriad subcultures, resembles Europe in many ways. It'd be interesting to see a US study that looked at similar issues.

Read the study yourself. It's got lots of other good stuff, too.