Apr 21

Tim O'Reilly

Tim O'Reilly

Women in Computer Science

In a recent NY Times article entitled Computer Science Takes Steps to Bring Women to the Fold, Cornelia Dean points out that the number of women in computer science has been on the decline since 1985:

Women received about 38 percent of the computer science bachelor’s degrees awarded in the United States in 1985, the peak year, but in 2003, the figure was only about 28 percent, according to the National Science Foundation.

At universities that also offer graduate degrees in computer science, only 17 percent of the field’s bachelor’s degrees in the 2003-4 academic year went to women, according to the Taulbee Survey, conducted annually by an organization for computer science research.

The article details efforts at a number of universities to draw more women to computer science, and analyzes the factors that keep women away:

“Women are the canaries in the coal mine,” Lenore Blum, a computer scientist at Carnegie Mellon University, told an audience at Harvard University in March, in a talk on this “crisis” in computer science. Factors driving women away will eventually drive men away as well, she and others say....

The big problems, these and other experts say, are prevailing images of what computer science is and who can do it.

“The nerd factor is huge,” Dr. Cuny said. According to a 2005 report by the National Center for Women and Information Technology, an academic-industry collaborative formed to address the issue, when high school girls think of computer scientists they think of geeks, pocket protectors, isolated cubicles and a lifetime of staring into a screen writing computer code.

This image discourages members of both sexes, but the problem seems to be more prevalent among women. “They think of it as programming,” Dr. Cuny said. “They don’t think of it as revolutionizing the way we are going to do medicine or create synthetic molecules or study our impact on the climate of the earth.”

They're right: computing is not about computers any more: it's about a new approach to virtually everything. That means, perhaps, that the problem isn't that there aren't enough computer science students, but rather than computer science hasn't been sufficiently integrated into the mainstream curriculum for all students! More exposure to the excitement and potential of computers in other fields would inevitably draw people from those fields to explore CS in more detail. (That being said, a huge number of the folks who read O'Reilly books have little or no formal CS training anyway -- they are self-taught.)

(There's another point, not made in the article, that might also dissuade women from CS careers, though. Given the frat-boy attitudes that have been highlighted as part of the discussion on civility following the Kathy Sierra imbroglio, I have to say that there's something to this argument. If the attitudes I've seen reflected in my comments about civility on this blog are as common as they appear to be, computer science would appear to be as friendly to women workers as the local junkyard, with attack dogs outside and pinup posters on the walls. Now, those of us in the industry know that that isn't so at all -- there are far more caring and insightful nerds than there are those who are rude and socially inept. But as in so many areas, all it takes is a few bad apples to give a field a bad name.)

Returning to the point that pure programming may not appeal as much to women as the application of computers to other areas, the article continues:

The Advanced Placement high school course in computer science may be part of the problem, according to Dr. Cuny. “The AP computer course is a disaster,” she said. “It teaches Java programming, which is very appealing to a lot of people, but not to others. It doesn’t teach what you can do with computers.”

She and others think the course needs to be redesigned.

But Dr. Lazowska said the criticism was somewhat unfair, given that introductory college computer courses, which the AP course is designed to replace, typically emphasize programming as well.

At one time, said Barbara Grosz, a computer scientist and dean of sciences at the Radcliffe Institute for Advanced Studies at Harvard, students entered college with little idea of what computer science involved, “so they would try it and find out how much fun and how interesting it was, women included.”

Now, though, she said in an e-mail message, “they get the wrong idea in high school and we never see them to correct the misperception.”

These comments echo my own feelings about the poor teaching of math and science in general. From the earliest grades, math is taught in the abstract, with little or no focus on what it's really good for. Start building things, for example, and you realize how useful that geometry and trigonometry are.

There's really a lesson here about pedagogy: if you start with what people want to do, they will go to great lengths to build the skills that will help them to get better at reaching their goals. But if you teach the skills in the abstract, even the most exciting field can become deadened.

Still, the basic point of the article, that we need more women in CS proper, is important. Women have insights, perspectives, and values that men lack (and the reverse.) Kathy Sierra is a great example, for the breakthrough work she'd much rather be known for than for the recent fracas. The Head First series of books, which she developed, illustrate a whole new approach to teaching CS topics. These books have become the #1 bestsellers in every category that they have been published in to date, indicating something about the power of Kathy's insights. And I consider her Creating Passionate Users blog to be the most insightful source of understanding how to build great computer products.

It could be that Kathy's insights are unrelated to her sex, but my guess is that the female perspective is part of what got Kathy to see the bigger picture of how computer science is about people and how they learn as well as about computers.

tags:   | comments: 36   | Sphere It

Previous  |  Next

0 TrackBacks

TrackBack URL for this entry:

Comments: 36

  George Maney [04.21.07 07:52 AM]

"computing is not about computers any more: it's about a new approach to virtually everything."

This is a really unfortunate and unjustifiable idea. Regrettably, CS academics are trying to push this idea as in Jeannette Wing's notion of "Computational Thinking". Remember that computer science merely encodes everything. It actually explains nothing. It's about informatics rhetoric rather than rationalization.
Applied science, not automated analytical philosophy, explains everything for all practical purposes. Yet the foundations of computer science rest on applied analytic philosophy rather than on applied science. Computational thinking is really just a systematic way to trivialize applied science thinking. It's not some new unified universal pansophical science of everything.
Note that accounting majors today often get more basic, natural, applied, and (remarkably) mathematical science than CS majors. Liberal arts majors often do better than CS majors in application programming after a few years of experience. The reason is simply that they have far better practical exposition skills.
So general managers and CIOs are increasingly reluctant to hire BSCS graduates today. They don't need folks with deep expertise in formalisms and formats. They need programming professionals with diverse practical perspectives that can do good routine code design and development. They need folks that are enterprise, economic, and engineering literate as well as minimally computer literate.
Yet in BSCS majors typically have no taste, talent, temperament, or training for these practical applied science disciplines. All too often they are contemptuous of these applied sciences. Folks of this sort just aren't very competitive in today's world of cutthroat global capitalism.

  Greg Wilson [04.21.07 07:57 AM]

The best survey of scientific research on the under-representation of women in science, technology, engineering, and mathematics (STEM) is Stephen J. Ceci and Wendy M. Williams's Why Aren't More Women in Science? (American Psychological Association, 2006, 159147485X, reviewed at [1]). Considering how explosive the topic is, Ceci and Williams' collection is refreshingly even-handed.

As Michelle Levesque (now at Google) and I pointed out in 2004, as bad as the situation is in computing as a whole, it is many times worse in open source: measured by such things as recognizably gendered names in mailing lists and newsgroups, or participation in Google Summer of Code projects, the male/female ratio in open source is several hundred to one [2]. In brief, whatever computing is doing wrong, open source is doing wronger. (I found it particularly ironic that the presentation by Eben Moglen (general counsel of the FSF) at the KMDI Open Source conference that year drew explicit parallels between open source and the race rights struggle of the 1950s and 1960s, but made no mention at all of the women's rights movement of the same era...)

We were pleased to see a panel on the subject at OSCON 2005 [3]; sadly, with the exception of GNOME's Women's Summer Outreach Program, little seems to have been done since.

[1] review of Why Aren't More Women in Science?.

[2] Open Source, Cold Shoulder.

[3] OSCON 2005 panel on women in open source.

  David Megginson [04.21.07 08:06 AM]

Perhaps a Computer Science program is the wrong place for most people to learn about computers. Consider, for example, that your degree is in Classics, Larry Wall's is in Linguistics, and Jon Bosak's is in philosophy (I studied Medieval Philology, myself). It's not that a Computer Science degree prevents you from doing something important with IT, but I'm far from convinced that it helps.

  Tim O'Reilly [04.21.07 09:48 AM]

David -- I couldn't agree more. See my comment on that above, re CS needing to be integrated throughout the curriculum. Very few O'Reilly authors have CS degrees. That being said, there are lots of benefits to a CS degree. A lot of self-taught programmers are missing many skills that would make their lives much easier. But self-teaching also often means that you find a more creative way to solve problems.

George -- I can't quite follow your comment. You start out by saying that you disagree with my comment about computers being part of everything these days, but then the rest of your comment seems to support my point.

  Tarek [04.21.07 09:57 AM]

My big beef with the concept of "Computer Science" being the right background for people who will eventually program is that it has no analog in other fields.

If you want a bridge built, you don't hire a physicist, you hire a civil engineer. So why hasn't the field of software engineering taken off? (or maybe it has and I'm not aware of it...)

  R [04.21.07 10:24 AM]

David makes a very valid point (my first degree is in English Lit and I'm currently doing a PhD in CS) but there is definitely something wrong...sometimes my department can be a rather dispiriting place! It seems fitting here to remember a great academic and supporter of women in the field, Karen Sparck Jones, who had recently remarked "I think it's very important to get more women into computing. My slogan is: Computing is too important to be left to men."

  Tim O'Reilly [04.21.07 10:47 AM]

R (Rachele) -- Can you be more specific about why your department can be "dispiriting"? What factors, if any, do you identify as the source of that feeling?

  Rachele [04.21.07 11:17 AM]

I can try Tim...mainly the fact that there are so few women around, at all levels. It's hard to say why that bugs me - it's not like I feel I'm missing out on gossip and giggles, and there are lots of lovely people there who I can count on as friends and colleagues. I love what I do and being one of 10% or 15% isn't going to stop me. But sometimes you do feel a bit isolated, you can't build quite the same kind of support network as you could in a more female-heavy department, and you worry that if the gender gap continues further up the ladder, people in charge of decisions might not be aware of problems women might encounter as they try to progress in their career. Are women are put off by the CS hacker-nerd-stereotype? Yes, I'd say they - we - are. I agree with what the original article said - we could do a lot for CS if people realised that there's more than just coding for coding's sake. Hope this makes some sense!

  Jo Bond [04.21.07 11:37 AM]

I am a female that started working in the computer industry on mini-frames as technician in the 80's. I continued in the field through the rapid evolutions of DOS, processor speed, and memory until I got bored with what seemed to be the idea of computing faster and making it smaller for the sake of doing so. The mystic and fascination I had with computers had waned because I had become knowledgeable and proficient at my job and also because it had become "gear." And "gear" is a very much a guy thing. Also, the industry didn't need technicians for PC's. I changed careers.

I didn't pursue writing software because that seemed boring. Computers were used for accounting (which I did see the benefit of faster speed) and general number crunching (one of my customers was NASA). Other than that I saw the industry being driven by gear heads - owning a gadget for gadgets sake and men who held latent 12 year old desires to play games, blow things up or shoot people. I thought, briefly, that I would pursue programming and revolutionize computing for women or girls by developing games or useful programs just for females. I didn't because I couldn't figure out why I really needed a computer to do household things or "woman" things.

Women by nature are social (we go to the bathroom in twos) and cooperative and men are independent and competitive. Computers are independent.

I love my computer now and I remember enough to be dangerous. I am the family geek. We have Vonage and a household network and some very useful gadgets like a digital camera. I love the internet and the instant gratification of finding answers to questions with just a few keywords. I still don't play games or use it to organize my recipes. I use it to write, email, shop (minimal), research for shopping at a store, follow threads to explore new ideas, look for free education - languages and such, desktop publishing (community newsletter) and a few other creative pursuits.

At the risk of sounding negative I still can't figure out how to appeal to women to encourage more participation. My 26 year old daughter grew up with computers in the house. She would help swap out parts and reconfigure them. She knew how to write a batch file at 10 years old. Now we use our computers to email and exchange photos.

Where is computer science going? Better marketing? Better gaming? It seems hallow. But that's just one womanÔøΩs perspective.

  Rachele [04.21.07 03:16 PM]

PS - re: your next blog post - Gina Trapani is the kind of person, or woman, who could entice more girls to computer science...

  George Maney [04.21.07 03:38 PM]

You're right Tim, computers are all over the place. Your car probably has many dozens. Even so, we've just begun to scratch the surface of potential applications. Surely less than one percent of total latent practical software value has been realized so far.

Note, however, that CS people are playing an ever less important role in getting all these computers into everything. Automotive engineers, not CS folks, write the code for most of those computers in your car. CS skills seem to have declining value everywhere except in IT infrastructure including languages, tools, operating systems, etc.

Practical software always involves an analogical duality of software and subject matter side models. Customer value is always about the subject matter side, never about the software side. In today's software world software professionals need a good working understanding of both sides.

Yet few CS people are prepared to grok more than trivial subject matter side model meaning. They are merely skilled at metaphysical methods like entity-relationship and object-oriented approaches
In applied science applications these pattern programming method generalize away subject matter mechanistic meaning. Mechanism elements are replaced with metaphysical elements.

This is pattern, rather than principled, applied science modeling. Today this sort of modeling is obsolete and outlawed in all other practical pursuits. It just happens to be the economic and engineering optimal sort of modeling for low information quality clerical informatics predominant in institutional IT today.

So in fact it is illegal, throughout the industrial world, for CS people to write the safety-critical software in your car. Automotive engineers do this with a totally different mechanistic modeling culture.

The mechanistic models, methods, and mindsets of this specialized software culture are mostly incomprehensible to CS folks. So CS folks have no place in these increasingly common sorts of applied science-intensive software cultures. Eventually these emerging mechanistic software cultures will become predominant and finally pervasive.

The mainstream pattern programming culture is the last genuine craftwork modeling culture surviving today. A BSCS is as much about socialization into this craftwork culture as it is about skill building.

Is it beneficial to introduce high school students and liberal arts majors to the CS craftwork modeling worldview? It may be, but only as a survival skill, not as a theory of everything.

Pattern programming is just an important tool, it's not some kind of indispensable truth. CS surely doesn't explain either cognition or the cosmos.

Someday we will finally get over the odd notion that pattern programming is perfectible. Someday well will get serious about understanding how to mass produce custom computational software models. Only then will we begin to realize the full potential benefits of practical computing. Only then will computers be in all the myriad places they should be today but are not.

Note that we've been mass producing synthetic hardware computational models for twenty years now to extreme advantage. All the digital hardware in each of your indispensable digital gadgets is synthetic.

All of the software should be synthetic as well. Eventually it will be synthetic. Hardware, after all, is just frozen software.

Then we won't need all those pesky programmers anymore. Mass custom synthetic software will be disposable, demand-driven, and DIY. And, of course, there will be endless new worlds of informatics book publishing to conquer.

  George Maney [04.21.07 03:57 PM]

Getting women into the CS fold is one thing. Keeping them there is apparently another. A Computerworld article  here suggests that this is becoming a big problem:

"The U.S. economy is expected to add 1.5 million IT jobs by 2012, according to Department of Labor statistics. At the same time, Stamford, Conn.-based research firm Gartner Inc. predicts that by 2012, 40% of women now in the IT workforce will move away from technical career paths to pursue more flexible business, functional, and research and development careers."

  Tim O'Reilly [04.21.07 05:01 PM]

George, now I understand what you're saying, and I largely agree. Interesting perspective about the automotive industry. Are you saying that they actively screen out people with CS degrees? Or that they place emphasis on automotive engineers with computer background?

  steve [04.22.07 01:32 AM]

I think this line of thought is missing the point, and I don't think it has anything to do with "frat-boy" attitudes. Women are just as capable of handling that kind of interaction and they don't need things softened up for them.

The main problem with computer science is that nothing new has been invented since 1950. Turing and von Neumann hammered out the problem so thoroughly that we're still on the same architecture 70 years after it was invented.

Computer science is another name for applied mathematics (and I'm saying this as someone who worked in CS), and has very little to do with computers. What most people think of as "computer science" is really Information Technology.

There just isn't a lot that is attractive about IT, and men are also leaving IT in droves. Why study difficult subjects for 3 or 4 years only to become a helpdesk monkey? This is not a men vs women problem, this is the fact that IT sucks as a career.

If IT can become a worthwhile career, like finance and HR and the other areas of business, instead of being the disposable scum techheads that are treated with contempt, then we might see a new wave of interested people.

  Tim O'Reilly [04.22.07 07:13 AM]

steve --

You must know a different part of the IT industry than I do (and duh, Silicon Valley is atypical of the whole of IT.) I think of IT as an intensely creative area, with lots of room for innovation, initiative, and curiosity -- but you're right, there have got to be an awful lot of dead-end IT jobs.

But isn't that true of every career? Many people put up with it and shouldn't.

As poet Mary Oliver said,

"Tell me, what is it you plan to do
With your one wild and precious life?"

Computer science is a foundation, not what you build on it.

  George Maney [04.22.07 09:39 AM]

The future of practical software is clearly about experts that can program, rather than programming experts. Given the choice today nearly all general managers and CIOs will preferentially hire the applied science expert than can program today for informatics and automation software projects. There is a surely a serious shortage of these folks today.

These folks are likely a major and growing proportion of the customers for you books. They would probably take a lot more CS courses (and buy a lot more books) if these had a lot more mechanics and a lot less metaphysics.

Today these courses and books are mostly about perfecting metaphysical pattern thinking skills. Note that applied science economic, engineering, and enterprise courses are always about perfecting mechanistic principled thinking skills.

Pattern and principled thinking skills in most ways are antithetical. Mature applied science thinking is necessarily pattern-free.

Computational thinking is pattern thinking. ItÔøΩs really the sort of craftwork thinking that supported all practical pursuits from the dawn of agricultural civilization until the early 20th century. CS futilely attempts to perfect this sort of antique thinking by formalization.

So computational thinking is not a wonderfully innovative new way of thinking but a woefully inadequate old way of thinking. The history of practical information over the last century has been about the radical replacement of mythology with mechanics, about replacing patterns with principles.

The comforts and contentments of life in modern mass society are enabled and engendered by these modeling improvements. Today we live in a massively, minutely, meticulously, mechanistically modeled society. It is exactly the power, precision, and profundity of current best practice principled mechanistic modeling makes this society possible

The best CS folks are pattern freaks. This is hardly a secret. Moreover, itÔøΩs a good thing, at least for some kinds of software such as infrastructure software. ItÔøΩs a bad thing for high information quality automation software of the sort found under the hood of your car.

Here principled applied science thinking is required by common sense, custom, and the courts. In automotive engineering pattern thinking, as a matter of law, is always negligence per se.

In every practical pursuit today there is a shortage of experts that can program. CS folks usually end up in the automation software world only as a last desperate resort. They tend to be unproductive and unhappy in these situations.

This seems to be increasingly true in informatics and automation software generally. Here CS folks are pattern modelers misplaced in the very foreign world of principled modeling.

The informatics software world is changing because of the rapid rise of global cutthroat capitalism. Institutional information models are becoming increasingly specialized and sophisticated.

So informatics customers are desperate for and determined to get higher information quality. They are demanding much more mechanistic practical meaning in practical software. This is the key competitive issue everywhere in informatics today.

Textbook CS techniques donÔøΩt work very well at all for higher information quality software. These focus on metaphysical software techniques of systematic subject matter trivialization. This is what we hire programming experts to do.

This is not what experts that program need to do. They need to get as much applied science mechanistic meaning into informatics software as possible. Metaphysical models, methods, and mindsets are counterproductive. Computational thinking is counterproductive.

There have always been two very different sorts of software cultures: one mainstream and the other mechanistic. The mechanistic culture has always been tiny compared to the mainstream one. Today the mechanistic culture accounts for only a few tens of billions of dollars of economic activity worldwide annually. This is the culture of scientific, engineering, statistical, and automation software. This is the culture that provides most of the software for your car.

Eventually the mechanistic software culture must grow to dominate and displace the mainstream software culture. This is what practical software customers want and will inevitably, if not immanently, achieve. This is actually happening today, albeit slowly. It may be a decade or more before this trend hits escape velocity.

In the CS world digital computers have always been seen as marvelous mathematical machines. Yet practical software customers have always seen computers as marvelous machine tools of mass modeling and mass management. This is also the view of experts that program.

CS academics and authors donÔøΩt understand this mechanistic view. For this reason thereÔøΩs a vast value vacuum here for information and infrastructure to support this view.

So today the academic CS world cannot fill this vacuum. These folks donÔøΩt consider this to be a legitimate part of their mission. Their mission is professing and perfecting pattern programming.

The problem is that the success of the mainstream pattern programming software culture is getting in the way. Spectacular success has spoiled CS. CS was originally revolutionary but has become reactionary. CS has become orthodox, outdated, and obstinate. If this continues it must soon become obsolete.

What we really need is a new kind of mature mechanistic computer literacy. This is a horrifying heresy in the CS academic world today.

Instead the CS folks, increasingly short of CS majors, seek to sell their syllabus to a wider academic audience. IMHO this merely prolongs the inevitable radical reinvention of CS.

  George Maney [04.22.07 11:10 AM]

Tim, you wrote ÔøΩI think of IT as an intensely creative areaÔøΩ. IT is creative, but this may not be a good thing. Note that mature applied science thinking usually involves far more critical thinking than creative thinking.

Note that in reality pattern programming thinking is really traditional rather than technological thinking. Actual programming practice is about drawing on the vast accumulated legacy of patterns to make programs work.

This huge legacy of pattern traditions is the product of fifty years of tinkering. Today there are myriad thousands of specialized topical pattern programming frameworks.

This is why pattern programming experience is usually far more important than education. Somebody whoÔøΩs done it before knows the layout of the applicable pattern space.

So, in reality, pattern programming intensely re-creative rather than truly creative. We keep on writing the same old code patterns over and over again with very minor variations. Thus every day in IT is Groundhog Day.

Moreover, pattern programming involves huge amounts of wasted mental motion. Everybody whoÔøΩs done professional programming for more than a few weeks knows this all too well.

In fact pattern programming demonstrably involves orders of magnitude more wasted mental motion than equivalent applied science principled modeling. This is one of many reasons why applied science folks stopped doing pattern modeling over fifty years ago. Some other reasons are lack of range, resolution, reliability, and reusability.

This is also why pattern programming is strategically economically and engineering mature now and forever. This is why god doesnÔøΩt have a better way to do what we do today in pattern programming. We have simply reached the limits of the horsepower available in human heads.

All of the benefits of principled practical model automation and automated modeling factories results from radical reductions in wasted mental motion. Today these benefits are resulting in leaps and bounds improvements in model productivity and possibility in many applied science disciplines today. The cumulative advantage in some cases amounts to four, six, or eight orders of magnitude. Semiconductor EDA is on the way to doing even better than this.

No reasonable extension or elaboration of pattern programming can be advantageously automated. The simple reason for this is that three of the five kinds of lifecycle models employed in pattern programming practice are mostly mentalware rather than modelware. So pattern programming automation requires end of the world as we know it miracles.

There are mature methods of mechanistic model automation, including automated model synthesis, that could be widely applied to software mass custom production today.

This is the only practical way to get rid of all the wasted mental motion in software production. This is the only workable way forward in sustaining IT industry long-term progress and profit.

The problem is feedstock. Synthetic software encoding requires mechanistic subject matter model feedstock. This is IP-intensive. It is a capital-intensive software production alternative to current labor-intensive approaches.

Today we understand the all the automation science necessary to do the IP feedstock and synthesis tool chains. Even so, no progress is likely as long as the perfectibility of pattern programming is seen as intrinsic and inevitable.

Synthetic software production uses a very different kind of three model software lifecycle package. This approach is totally mentalware free.

Today there is no infrastructure or investment available to build out this alternative approach to mass custom IP-intensive synthetic software production.

This is a really good thing for you, Tim. The reason is that your business is built largely on the IT mania for pattern programming style fads, fashions, factions, and feuds.

All mature applied science modeling disciplines focus furiously on perfecting model substance rather than style. Wasted mental motion, not a big problem in these other disciplines, is why pattern programming is so profoundly different and difficult

The same old style of programming quickly gets old. Even so, Turing equivalence tells us that we will never have more powerful programming languages than those we have today. So pattern programming style should be irrelevant.

Here again the problem is the odd notion that pattern programming is perfectible. The vain hope is that some magic format or magic formalism will somehow make all the wasted mental motion go away.

It fact we know exactly how to make all the wasted mental motion disappear. Just switch from the five model lifecycle package to the thee model software lifecycle package. Just replace all the metaphysical mentalware with mechanistic modelware. Three of the five models in the pattern programming package are totally redundant anyway.

This is just the same three model lifecycle package that all mature applied science modeling disciplines use. This is the same sort of three model package employed in applied science model automation today.

Building out synthetic software lifecycle automation will enable IT to be creative in the best sense. This will allow us to do all that we can, must, and eventually do in practical informatics.

This is the sort of true creativity that IT needs. This is the sort that that will deliver, rather than defer or defeat, radical improvements in practical software customer value.

  R. S. Doiel [04.22.07 02:48 PM]

I tend to agree with Tim but I don't think he goes far enough. I have both a humanities and computer science background and as someone who straddles those two academic worlds I'd like to point out something I've observed in computer science and software engineering. There is little reward given for rendering the complex and elusive as clear and understandable in computer science or engineering. If you point out the lack of clarity in an explanation of something complex and its hindrance to understanding the typical response in engineering is that you're asking to be spoon fed. This I think is very very silly. If you write an unclear article in the humanities you are taken to task for the lack of clarity. Obscurity in the humanities generally isn't rewarded. Engineering and computer science would improve by taking this point of view. The best engineering and computer science I've seen is clear and understandable even while complex whether the instance has been source code or human targeted text. In engineer we need to honor this and point it out as part of moving towards the goal of being more inclusive. A historic example of this in the field of math would be Silvanius P. Thompson's excellent Calculus made easy. While I enjoy the obfuscated source code contests I don't think we want them as the goal of our discipline.

  Naveen [04.22.07 04:57 PM]

George: Are you actually saying anything? What do you define as pattern programming? What do you mean by mechanistic models?

  George Maney [04.22.07 08:17 PM]

Hopefully IÔøΩm saying quite a lot Naveen, but itÔøΩs not what most software folks are used to hearing. So it may take a little time to sink in.

Pattern programming is what the vast majority of software professionals actually do for a living. The genius of this sort of programming is huge constructive modeling spaces of applicable programming patterns.

Mastering a great diversity of useful programming formalism and format patterns is what CS programming courses are actually all about. This is much of what TimÔøΩs books are about. These are a great preparation for a professional pattern programming career.

Note that pattern programming isnÔøΩt the only interesting and important sort of practical programming. Pattern programming professionals are often shocked to learn that many tens of thousands of software professionals do a radically different sort of applied science-intensive programming, mostly in high-end informatics and automation software specialties.

Many of these applied science experts that program (and often have advanced applied science degrees) donÔøΩt have much formal CS training. IÔøΩm one of these applied science experts but I have completed many graduate CS courses.

Today this is really a whole separate, and rapidly growing, software world. Tim might find a nice niche market here for computer books far more accessible to these applied science experts that program than those available today.

The accessibility of CS courses and books has always been a huge problem for these folks. They just donÔøΩt get along well with patterns at all but they really grok principles. So they have their own very different principled way, a mechanistic rather than metaphysical way, of thinking about software that works well for them. The same is mostly true for basic scientists and natural scientists.

Most pattern programmers find this other sort of programming far more foreign than familiar. Some even find it a bit frightening at first because it seems so utterly incomprehensible at first. CS courses usually donÔøΩt deal with this other very different principled sort of practical applied science software programming.

Mechanistic practice models are that sort that practical software customers understand and use all the time. Pattern programming professionals mostly donÔøΩt understand these very well at all in any depth.

These are applied science enterprise, economic, and engineering practice models of the sorts used to design you car. Many hundreds of different kinds of mechanistic applied science practice models are required to support the lifecycle of a car.

They are very different from the metaphysical (OO, ER, etc.) pattern models employed in mainstream pattern programming. Even so, mechanistic subject matter practice source models are always necessarily the starting point for doing practical software production. Thus these mechanistic models are the ultimate genesis of the practical applied science meaning of all kinds of practical programs.

  Tim O'Reilly [04.22.07 09:54 PM]

George, it would help us to understand what you're talking about if you could get very concrete. Give us an example of "mechanistic applied science practice models." Your comments are intriguing, but I'm having trouble matching them up to anything concrete.

  Tim O'Reilly [04.22.07 10:49 PM]

George, I also can't resist sharing with you this fabulous passage from GK Chesterton's biography of the poet Robert Browning. When talking about the obscurity of much of Browning's work, he wrote:

"A man who is vague in his ideas does not speak obscurely, because his own dazed and drifting condition leads him to clutch at phrases like ropes and use the formulae that every one understands. No one ever found Miss Marie Corelli obscure, because she believes only in words. But if a young man really has ideas of his own, he must be obscure at first, because he lives in a world of his own in which there are symbols and correspondences and categories unknown to the rest of the world. Let us take an imaginary example. Suppose that a young poet had developed by himself a peculiar idea that all forms of excitement, including religious excitement, were a kind of evil intoxication, he might say to himself continually that churches were in reality taverns, and this idea would become so fixed in his mind that he would forget that no such association existed in the minds of others. And suppose that in pursuance of this general idea, which is a perfectly clear and intellectual idea, though a very silly one, he were to say that he believed in Puritanism without its theology, and were to repeat this idea also to himself until it became instinctive and familiar, such a man might take up a pen, and under the impression that he was saying something figurative indeed, but quite clear and suggestive, write some such sentence as this, "You will not get the godless Puritan into your white taverns," and no one in the length and breadth of the country could form the remotest notion of what he could mean. So it would have been in any example, for instance, of a man who made some philosophical discovery and did not realise how far the world was from it. If it had been possible for a poet in the sixteenth century to hit upon and learn to regard as obvious the evolutionary theory of Darwin, he might have written down some such line as "the radiant offspring of the ape," and the maddest volumes of mediaeval natural history would have been ransacked for the meaning of the allusion. The more fixed and solid and sensible the idea appeared to him, the more dark and fantastic it would have appeared to the world. Most of us indeed, if we ever say anything valuable, say it when we are giving expression to that part of us which has become as familiar and invisible as the pattern on our wallpaper. It is only when an idea has become a matter of course to the thinker that it becomes startling to the world."

In short, it seems to me that you are speaking from some deeply held and thought-through views on the right approach to computer programming, but you are using language that is difficult for those who have not walked the path with you in thinking about this to understand. Perhaps there is a group of people who know what "mechanistic applied science practice models" are, but I'd assume that this is not one of them, and try to start from the beginning.

  Adam [04.23.07 12:22 AM]


In general I agree that more exposure would help. There was a paper attended a couple of years ago which conducted a longitudinal study of how computers were presented in girlís magazines and how women were presented in computing magazines. It wasnít pretty. Perhaps because of how it is presented, most of the women who do my computing courses (I tend to get a 50/50 gender mix) are there because they didnít really want to do programming, but nevertheless either chose to enroll in programming as a one-off elective, or alternatively decided to do Information Systems and discovered (normally to their horror) that they were being forced to do one programming subject.

Nevertheless, I donít think we should give up, either. At uni I have something of a reputation for retaining female students into later computing courses, as I maintain the 50% breakdown into second year. This makes me uncomfortable, as Iím always being asked what it is that I do for the women ñ and that sounds like I treat them differently from the men. The thing is, I donít. If I managed to do anything right, it was by asking myself why I loved programming. And my answer was that I loved problem solving ñ I liked the creativity and logic far more than I love the programming itself. So my courses focus on programming as a fun, problem solving pursuit, that just happens to involve computing. Today, a couple of students (who were struggling with the Eliza assignment Iíd set) mentioned that programming was the only subject they looked forward to, as it was the only one which they got to enjoy problems and be creative in. I was really happy (and thus wanted to share).

So the thing is, we can sell computing to women. But the focus isnít on jobs, as the article suggests, but on enjoyment ñ convince girls (and boys) that programming is fun, for exactly the same reasons that we find it fun, and then theyíll be interested.

(As an aside, most of the women I know in programming came to it from another discipline ñ maths mostly, but also sciences, humanities and occasionally business. Iíve figure that they were exposed to programming as part of their degrees and found it enjoyable ñ as Tim suggests).


  Shelley [04.23.07 05:54 AM]

"So the thing is, we can sell computing to women. But the focus isnÔøΩt on jobs, as the article suggests, but on enjoyment ÔøΩ convince girls (and boys) that programming is fun, for exactly the same reasons that we find it fun, and then theyÔøΩll be interested."

It sounds good on paper, but unfortunately isn't working. Instead of bringing the women to the fun, perhaps we need to look at expanding our concept of 'fun', and then we women will join in naturally.

Computers, the internet and the web, the technology to work with all of this are all becoming increasingly accessible across all fields. The days of a select group of a certain type of person (typically male, white or asian) gathering together to practice arcane rituals that form a barrier of participation are over. It's just that, like kicking the dinosaur in the tail, the message of this change hasn't traveled to the brain yet.

Rather than move the women, and many like minded men, to the computer sciences, move the comp sci fields and classes to the people: embed information system options, or computer focused classes in the other fields. Rather than computational linguistics being the province of the computer science people, embed it into the department of psychology; put data organization into the library sciences.

In other words, there are few women because the field is designed from the ground up to be antithetical to women--and a lot of men, too.

This article touched on this, heavily. Now, if only people will actually pay attention.

PS Tim, you added the caveat, but the 'tech field' you see in Silicon Valley really doesn't resemble most of the field as it's practiced elsewhere.

  Adam [04.23.07 06:09 AM]

Good point, Shelly. Although while I teach programming these days, my undergrad degree is in Philosophy - arcane rituals aren't the exclusive province of computer science. :) And thus I agree on two levels. As a humantities student, I don't think we always need dedicated three-year programming degrees, and thus I can see why it would make sense to offer computing to people in other areas. While as an academic, I started by teaching programming to business students as part of Information Systems, so I'm (to a lesser extent) one of those teaching programming outside of computer science (although I've since been subsumed by a Comp Sci department). This is why I get the 50% women in my class - they didn't enroll to do CompSci, but another degree. Once they're there, though, I would still argue that the focus should be on showing them what we love about the discipline, rather than convincing them that it offers wonderful job opportunities. (It isn't a bad career, by any means, but few people seem to continue in programming if they chose it primarily because of "good career prospects").

As an aside, one interesting arguement I've been following suggests that paired programming, when offered at first year level, helps with female student retention, as it shows students that programming doesn't have to be an anti-social pursuit.

  George Maney [04.23.07 08:11 AM]

Tim, sorry for getting way off topic. This was thoughtless of me, it wonÔøΩt happen again. Surely this is the wrong audience for this material. Thanks for the Chesterton.

HereÔøΩs something on topic. Note that the Gartner study tends to confirm a model often found in labor economics textbooks. Models of this sort are always very blunt instruments. This one has some obvious problems.

Even so, this model works particularly well for BSCS majors but it also works pretty for the empirical engineering fields like civil engineering as well as financial market trading.

Labor economics tells us that people choose lifetime career paths that maximize lifetime earnings. The thing is that IT salary profiles over time are highly skewed towards a very substantial early career premium.

This is because salary profiles tend to reflect professional productivity. IT productivity peaks early, within the first five years of a career. In other institutional professions productivity peaks at ten (engineering) or twenty (accounting) or even thirty (wholesale banking) years.

So while IT salaries are higher initially they become less advantageous over time. If you spend your entire career in IT then you may not do all that much better than an accountant, personnel reprehensive, or logistics planner.

So IT is an optimal first career from an economic perspective. Thus people that start out in IT disproportionately move to other second careers after ten, fifteen, or twenty years of experience.

So why donÔøΩt more women do this? Childbearing and childrearing are obvious answers.

Reentering IT with a five year motherhood resume hole is problematic. In many ways this is starting over in the IT world. You donÔøΩt just pick up where you left off. This is a big slide backward on an IT career path. This is far less true of other institutional professions. An accountant can pretty much pick up where she left off.

Trying to raise a young child while working in the controlled chaos of a typical IT shop is equally problematic. This is a really hard life that may well make you less competitive at work thus limiting pay and promotion.

If you have children early then most of the early career earnings premium of an IT career disappears. If you defer children until your second career then this second career (not to mention successful motherhood) becomes much riskier. Thus your second career earnings potential gets severely discounted.

This textbook model suggests that IT will preferentially attract males plus females not intending, or not intent on, children. This is pretty much what weÔøΩre seeing today.

Few females are willing to make decisions about kids definitively in their early twenties. Thus a pattern programming career is economically risky for most women. Non-economic disincentives like severe social isolation and such may not be decisive but are surely daunting.

Women planning to have children will preferentially choose career paths offering high career flexibility and high cumulative experience premiums (e.g. banking and insurance). These alternatives will be far more economically attractive than IT in terms of lifetime earnings for these women.

  adamsj [04.23.07 08:40 AM]


Right audience, wrong thread. I'd be interested in hearing what you're talking about elsewhere.

  Shelley [04.23.07 10:11 AM]

Adam, your point is good, too, about showing how much fun it can be. I love to develop, I never lose the thrill of seeing an application of mine go 'live'.

But my intro was very different--I had never had experience with a computer, and got into comp sci when my logic teacher suggested I try a computer class. I was pre-law at the time. Eventually I switched over to be a double major: comp sci and psychology.

My first teacher had a PhD in English, and used to use Chaucer in his examples. It made the examples so much fun!

Maybe that's why women are decreasing, too--the earlier classes were taught by people with English backgrounds, or philosophy, or even music; not engineering, which we have now. Considering that the engineering field is the one that shares the problem with too few women, it was a bad idea to focus most of the field in the engineering discipline.

I was in a good discussion once on Agile development practices. I suggested that the reason why this has taken off could be to counter some of the more 'extreme' developer behavior, and was needed to actually balance the fact that it is too skewed to men. Having said that: pairs programming, eh yuck.

  Shelley [04.23.07 10:18 AM]

"If you have children early then most of the early career earnings premium of an IT career disappears. If you defer children until your second career then this second career (not to mention successful motherhood) becomes much riskier. Thus your second career earnings potential gets severely discounted.

This textbook model suggests that IT will preferentially attract males plus females not intending, or not intent on, children. This is pretty much what weÔøΩre seeing today.

Few females are willing to make decisions about kids definitively in their early twenties. Thus a pattern programming career is economically risky for most women. Non-economic disincentives like severe social isolation and such may not be decisive but are surely daunting."

George, I must agree with the others, I'm having a difficut time understanding what you're saying. I will note, though, that I've worked in IT over 20 years, and most of the women I worked with had children.

A little more real life, a little less abstract model, if you please. It is difficult enough for women in the field without unfounded hypothesis being tossed in as sureties.

  George Maney [04.23.07 10:53 AM]

Shelly, this is kind of an abstract model, but it's the one that many managers will use to explain the lack of women in IT. Clearly it's not a very good explanation. Unfortunately it often gets in the way of looking for better explanations.

As I said, this textbook model has got some big problems. You pointed out one of these, which is that an IT career in not nearly as big a barrier to having kids as economists expect. People always insist on doing things that economists expect them not to do.

The point is that there are lots of social science arguments to explain the lack of women in IT. The IT industry spends lots of money on social science personnel studies. The problem is that none of the social science models work very well at all. Survey and other methods of testing these models don't provide much confirmation and sometimes none at all.

Here's a question: Does any know whether the percentage of women in IT varies much across nations? Is this an issue in Europe, Japan, India, China, elsewhere? Or is this just a U.S or North American issue? If there is a lot of variation then this might provide a good clue.

  Raquel [04.24.07 12:50 AM]

I'm a woman and I¥m MCSA and I'm studying for the MCSE.

  S. J. Michael [04.27.07 09:29 AM]

I am so glad you wrote this column. I just returned from your Web2.0Expo, rather irked about the lack of female and diverse panelists in the sessions. I have been in the software industry since 1989, and while the 90's seemed to bring more openness in opportunity for women, it seems that lately we have returned to the dark ages of the Boys Club.
On Sunday at the tutorial sessions, Kelly Goto was a highlight. But she was followed by two male muttering hacker types who didn't even bother to introduce themselves or outline the session agenda before launching into a discussion of code. This day represented to me the best and worst of what the computer industry currently is: Human/Machine, Female/Male.
The Nokia party was also annoying. A salesman was bellowing into the microphone, "Hey GUYS, check out these new mobile devices!" while busty blondes chicks circulated in tight t-shirts. If you are going to use sexism to sell, why not balance it with something for the ladies as well?
The software industry needs both technology innovation and user centered design philosophy to truly succeed, and I was disappointed to see the imbalance in females representation in this conference.

  Joe [04.30.07 08:02 AM]

"There's really a lesson here about pedagogy: if you start with what people want to do, they will go to great lengths to build the skills that will help them to get better at reaching their goals. But if you teach the skills in the abstract, even the most exciting field can become deadened."

What most students want to do is to get a high paying job where they get to take long lunches, fly around the world, and play video games.

The idea of starting with what they want to build is also naive give the fact that in a class of 100 students you will have 100 different things they want to do. Which one do you pick? biology? video game design? music synthesis?

The fact that most people who read oreilly books do not have degrees in CSE is due to the fact that there has always been an undersupply of CSE graduate. If you look at the numbers of say, engineering graduates, you will see that almost 100% of CSE graduates now work in CSE, while for other majors such as chemistry, physics, civil engineering, the number is much lower. That is, CSE is where the jobs are so people end up doing it regardless of what their degree is on. This trend has been true since the first CS degrees were given.

Finally, I see a lot of complaints about CS degrees doing too much theory. The fact is that if you look at the CS curriculum in most universities there will be only *one* class in "computability and complexity theory" in the whole 4 years. Most of the other classes will be on programming, object-oriented programming, software engineering, algorithms, etc.

  Fahmida [04.30.07 10:54 AM]

I'd like to repeat George's question:

"Here's a question: Does anyone know whether the percentage of women in IT varies much across nations? Is this an issue in Europe, Japan, India, China, elsewhere? Or is this just a U.S or North American issue? If there is a lot of variation then this might provide a good clue."

Answers, anyone?

  rektide [05.04.07 10:05 AM]

Jo, my own generalized experience with CS and engineering is that there are plenty of people looking for easy pay and free lunches, but that they tend to make rather poor engineers when the day comes. theres a huge body of CSE's doing what they're doing because computers are fledgling young technological marvels that show huge promise and potential in directing the future course of humanity, and good engineers want to enrich that process as best as they can. the mystery is, if the world is increasingly being pervaded by these systems, why would this attraction either not apply or not be seen by women college goers, or what disadvantages of the field override the chance to work with such fledgling and dynamic new medium?

open source in particular is exceedingly poor at attracting women. perhaps my own sense of value of open source is hyperinflated, but to me that speaks very clearly that women either dont realize what potential they have in carving new dynamical interface systems for themselves or the world, or that they are not intrinsically drawn to improved software for an improved world. to be fair, the development model for most open source is that of the great man theory of history, which coupled with often shoddy docs leaves a rather uninviting starting place for new developers. stick around, hang out, subscribe to the mailing list, join our slowly simmering revolution.

building entirely new computer interfaces is really really simple. people have no idea how malleable our systems are, how easy it is to envision and bring about change. to all students, no matter your discipline or gender, i highly encourage you to be critical of your computer environments, and to dream and create better alternatives.

  T.Rue [05.10.07 09:08 PM]

I've noticed how this "computational thinking" concept by Wing has been spread in less than a year thru the www. But is it really taking off or just the result of promotional hype?

Supposedly its for everyone, yet comming from someone with an extensive background in the computer software industry and sponsored by a known felony of a company known as microsoft (endless world wide anti-trust suits).

This is a good example of, to use an analogy, the elite social standing roman numeral accountant protecting their vested interest in their method of math by taking what is simpler and more powerful than their ... vested interest.... and making it complexifabulicated.

Only a fool would think nothing can have value was certainly a good sounding argument to convince the general public that the hindu arabic numeral system with its nothing/zero place holder was of no value in comparison to the Roman Numeral system. And it seemed to work for some 300 years.

"Computational Thinking", even the term, is putting the vested interest of software elites before that which holds creator status over "computation".... human beings.

The reality is that there are abstraction action constants that have been in use long before computers were even conceived. Even math is a subset in the scope of abstraction.

To the point: Abstraction physics is the identification of the action constants and can be applied in computer functionality. As a program, a tool that anyone can make use of to automate what ever they do thru computers, even the process of coding.

Proving the action constants are real is as easy as trying to not use them and invariable failing at it.

You can read theory all day long and even elaborate in many different direction, but for "computational Thinking" with $1.5 million in MS backing..... Where is the application, the tool that will easily enable the "everybody" to really honestly apply it (like we today use a calculator to do more complex math than the roman numeral system can handle).....What is the $1.5 million for, if not just promotional hype to say "only a fool would think nothing can have value"....

See link my name leads to for more. And BTW, the application is open source software under the GPL.

Post A Comment:

 (please be patient, comments may take awhile to post)

Type the characters you see in the picture above.