Sign In

Communications of the ACM


Non-Myths About Programming

NASA Apollo program software engineer Margaret Hamilton

Margaret Hamilton, chief software engineer for the development of the NASA Apollo program flight software, sitting in a mockup of the Apollo space capsule while checking programs she and her team developed. Hamilton received an Exceptional Space Act Award

Credit: NASA

Viewing computer science in a broader context to dispel common misperceptions and provide more accurate guidance to students who are deliberating its study.

The full text of this article is premium content



As a programmer for a university, we get to confront this problem from time to time, especially during hiring season. Mordechai is free to insist that this is how things are and must be, but when we look at enrollment numbers, women do appear to be selecting professions that don't involve sitting in front of a computer screen, that don't work long hours, that genuinely meet and talk with people: teaching, social work, pharmacy (pharm D), psychology, nursing, journalism, interior design. I get the impression that biology is lumped in there as well, although bioinformatics is only going to be more crucial to scientific progress in the future, which, data shows, again flips to men.

It would seem these women have found a number of "real life" careers that cater to their preferences. Many of these myths can be solved (save sitting in front of a computer screen all day). But it will be difficult to negotiate with industry on behalf of people who claim to dislike the nature of the job.

Kimbol Soques

Comment-on-the-comment -- interesting that Anonymous includes "teaching" and "nursing" in "professions that don't work long hours." Teaching (at any level) makes for very long days, though not all the hours are spent within the classroom or school. From what I see of the lives of my friends who are nurses, their days are equally long or longer. I side with Dr. Ben-Ari -- computer-related job hours may be long, but the myth lies in that other jobs have shorter hours. The 'shorter-hours' connection seems more to be the worker carving out more appealing conditions, regardless of profession. And if teens and 20-somethings (or 40-somethings?) understand that, they'll be able to choose careers based on something more abiding.

Mordechai Ben-Ari

Sorry for not responding earlier, but I have been on a trip. Thanks to Kimbol for the response. To reiterate (paraphrasing Churchill) my basic contention is that computing is the worst profession, except for all the rest.

To give some perspective, we recently had a strike by the social workers (mostly women, of course). They work extremely long hours for zero pay, often getting called out in the middle of the night to take care of a child at risk. Their case load is so heavy that don't have to time to "genuinely meet and talk with people".

Currently, we have a (partial!) strike by the doctors -- another profession that is now attracting women. Here, too, the hours are long (residents working 6 to 8 26-hour shifts a month), the pay is low until you're a famous specialist, and when you're responsible for 40 very ill patients, you don't have to time to "genuinely meet and talk with people".

Maybe interior designers have it easier (I'll probably be told off by someone who knows better...), but long hours for low pay is the norm in many occupations. I recall reading that in hunter-gather societies, 4 hours of work a day is sufficient to enable people to live, but (unfortunately?) we're no longer there.



Is this article available any where that isn't behind the ACM pay wall? I think this is an article that is very pertinent to folks who don't read Communcations and I would hate for this to miss the people who really need to be aware of this.

Mordechai Ben-Ari

My essays and keynote speeches are available at:

This particular document is freely available under a CreativeCommons license, although not as formatted in the CACM.


As a (frustrated) software engineer working in industry, I have to dissent on several points made in the article:

* Programming is boring: It is certainly true that practically all professions have their boring aspects. At the same time, it is certainly not the case that people making this particular point about programming tend to ignore that general proposition. What people mean is that, on the whole, programming is _more_ boring than many other professions of similar level of qualification. Who could deny that in earnest? The point should become apparent if you compare programming to the work of a medical specialist, as the article does it, though failingly. A heart surgeon, for example, has a very varied work environment, and very varied tasks, ranging from keeping themselves up to date with respect to the newest developments in a fast-changing field to making life-and-death decisions at the operating table in real time. There are many examples of that kind, the article misses out on that.

* You spend most of your working life in front of a computer screen: The article is right on that point for sure, a programmer's life is just like that. Yet, what is more, the profession has it in its genes, so to speak, that it always is at the forefront of adopting all kinds of electronic means of collaboration. That produces an ongoing trend whereby people get glued to their screens ever more.

* You have to work long hours: Programming has its special, and particularly bothersome, take on this issue in that it is subject to that idealized image of the fanatic geek hacking away for days with almost no sleep, and thereby achieving miracle productivity no ordinary programmer could dream of. Other professions tend to regard such ways of working as bad because they are viewed as quality-degrading. The article rightly makes that point. It misses to make the point that extreme workaholics often are considered heroes in the programming profession, which is not a good thing.

* Programming is asocial: That's probably a very subjective issue. My own impression is that the kinds of people entering the profession have indeed become less varied over the years. At any rate, it is a scientifically establised fact that varied
work groups perform better. The diminishing
number of woman programmers alone is, therefore, bound to have a detrimental effect on the profession.

* Programming is only for those who think logically: The more accurate point is that programming is mainly for those who can think more or less logically about vast amounts of small details, most of which are pretty trivial when taken in isolation. That's how complexity chiefly arises in commercial environments, where most programmers end up. University curricula with their emphasis on math and algorithmics tend to obscure this reality. Still, it's a point apparently not lost on people choosing other professions.

* Software is being outsourced: On that particular point, I find the article especially weak. Surely there are other fields that are subject to outsourcing also. That still leaves many fields where outsourcing presents much less of an issue.

* Programming is a well-paid profession. That depends a lot. In general, the financialization of the advanced economies has created a strong income bias towards professions on the business side of things.
The dot-com boom with its influx of programmers that chose the profession pro-cyclically has also created a tendency towards lower-end wages.

The article misses out also on the following things:

* The age bias: Programming is particularly addicted to the cult of being young. This makes it particularly difficult to be an old member of the profession.

* Modern, agile methods make programming even more boring. That may sound like a contradiction in terms but it isn't since agile methods and extreme programming draw much of their inspiration from assembly line metaphors -- You sit in front of your screen, working away with minimal "waste" on tasks the change control board is constantly throwing at you. Another particularly boring development consists of having to write unit tests, which can require as much effort as writing actual code. Still another consists of the division of work between people writing requirements, actual programmers, and people carrying out tests (which are not to be confused with programmers writing unit tests).

* Risk-averseness in an industry still reeling from the dot-com shock. Many firms that burnt their fingers when the dot-com bubble burst have developed a top-down culture that leaves little room for initiative.

The most important point, however, consists
of the combination of all of these points.
What other highly qualified profession has
that many issues speaking against choosing it? No wonder that people are opting for other careers. Margaret Hamilton with her
achievements is certainly very impressive, but the reality is that most programmers end up in a cubicle, a fact that the article actually acknowledges. The space-capsule-inspecting minority will always be tiny.

CACM Administrator

The following letter was published in the Letters to the Editor of the September 2011 CACM (
--CACM Administrator

In his Viewpoint "Non-Myths About Programming" (July 2011), Mordechai Ben-Ari said programming requires logical thinking, which is certainly true, but to write a program that interacts with anything API, device, UI a programmer must also be able to imagine all contingencies and define appropriate responses. Such talent is orthogonal to following a theorem proof or manipulating algebraic expressions that would be needed for, say, a good grade in high school mathematics.

Tom Moran
Saratoga, CA



I agree the definition of logical thinking should be as broad as possible. However, it is an empirical question whether success in high school mathematics predicts the logical thinking needed for programming. I conjecture that the correlation is positive (not 1.0, but certainly not 0.0, orthogonal) and thus a reasonable predictor for use by a guidance counselor.

Mordechai Ben-Ari
Rehovot, Israel

Displaying all 7 comments

Log in to Read the Full Article

Sign In

Sign in using your ACM Web Account username and password to access premium content if you are an ACM member, Communications subscriber or Digital Library subscriber.

Need Access?

Please select one of the options below for access to premium content and features.

Create a Web Account

If you are already an ACM member, Communications subscriber, or Digital Library subscriber, please set up a web account to access premium content on this site.

Join the ACM

Become a member to take full advantage of ACM's outstanding computing information resources, networking opportunities, and other benefits.

Subscribe to Communications of the ACM Magazine

Get full access to 50+ years of CACM content and receive the print version of the magazine monthly.

Purchase the Article

Non-members can purchase this article or a copy of the magazine in which it appears.
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account