This viewpoint is based on my keynote speech at the Sixth International Computing Education Research Workshop, held in Aarhus, Denmark last summer. The talk began with the presentation of a short play, Aunt Jennifer, in which Tiffany, a high school student, attributes her mother's dreary and poverty-stricken life as a checkout clerk in a supermarket to rotten luck, while attributing the pleasant life of her Aunt Jennifer, a software engineer, to good luck. Despite her high grades in mathematics, Tiffany rejects her guidance counselor's offer to help her obtain a scholarship to study computer science.a
The decline of interest in studying computer science is usually attributed to a set of perceptions that students have about the subject. Many educators react to these perceptions as if they were myths and try to refute them. I believe the perceptions of students are roughly true when viewed in isolation, and that the proper way to address these non-myths is to look at them within the context of "real life." When examined in a broader context, a more valid image of computer science can be sketched, and this can be used to provide more accurate guidance to students who are deliberating whether to study computer science.
Here, I will express the non-myths in terms of programming.
It is one of the unfortunate facts of life that all professions become routine and even boring once you develop a certain level of skill. Of course there are innumerable "McJobs"intrinsically boring occupations in factories and service industriesthat many people must do. But even prestigious professions are not exempt from boredom: I have heard physicians and attorneys complain about boredom. Consider physicians: either you become a general practitioner and at least 9 out of 10 patients come to you with routine, "boring," complaints, or you become a specialist, adept at performing a small number of procedures. After you have done them hundreds or thousand times, surely boredom sets in.
We can partly blame television for the impression that certain occupations are never routine or boring. The patient is always diagnosed and cured within 45 minutes, which is precisely the amount of time it takes to catch and convict a criminal. Occasionally, there are flashes of reality even on TV. "Law and Order" shows how detectives crack a case by following one small, frustrating clue after another. But even here, the 45-minute straight-jacket rules. Lt. Van Buren instructs her detectives: "Well, the victim was drunk, so check every bar within 10 blocks." Immediately, the scene cuts to the bartender who provides the next clue, but we don't see the hours of fruitless investigation by the detectives and the junior police officers that led to this moment.
The issue is not whether a subject is boring or not, but your ability to live with particular types of routine that can lead to boredom. Tiffany should be asking herself whether she prefers the routine of working as a psychologistlistening day-in, day-out to people complaining that their parents screwed up their livesover the routine of constructing dozens of menu entries for the interface of an application.
Non-Myth #2: You Spend Most of Your Working Life in Front of a Computer Screen
For someone to refuse to study computer science for this reason is simply ridiculous. Many people sit in front of computers all day. Computer screens are ubiquitous in all professions in finance, administration, government offices, customer service, and so forth. I am certain my travel agent spends more time looking at her computer screen than I do. From watching movies like Wall Street and Working Girl, I gather that securities traders spend their lives looking at six screens simultaneously.
Our medical system has recently undergone extensive computerization: a patient's history, test results, and diagnostic images are stored on a network of computers. During a visit to a doctor, the patient sits quietly while the doctor reads the history, studies test results, orders X-rays, writes prescriptions, and summarizes the visit, all on a computer. Of course doctors continue to perform physical examinations, but many modern diagnostic and surgical procedures involve "scopes" of various kinds, so that the physician is frequently looking at a computer screen.
The decline of interest in studying computer science is usually attributed to a set of perceptions that students have about the subject.
Tiffany is free to decide that options trading is more exciting than programming, but that choice is not going to save her from the constant use of computers. Certainly, sitting in front of a computer developing software for an insurance company is preferable to sitting in front of a computer entering data from insurance claims.
People who work in high-tech industries complain about long hours, but this is true of many occupations, including prestigious professions, in particular, in the early stages before you achieve a high level of competence and the freedom to work independently. The competition among young attorneys to clock hours is notorious. Young scientists work long hours in an effort to expand their list of publications during the short period before they are reviewed for tenure.
In 1984, Libby Zion, an 18-year-old student, died in a New York hospital from a fatal drug interaction. She was being cared for by young, overworked, interns and residents, who were not aware of a medication she had been taking. New York subsequently enacted a law forbidding residents from working more than 80 hours a week. In comparison, spending 50 hours a week working as a software engineer doesn't seem so bad.
A career as an airline pilot sounds more adventurous than a career as a programmer, but Tiffany should not choose to become a pilot in the expectation of fewer hours at work. Spending long hours in a cubicle in a hi-tech firm, where your hours are flexible and you are free to go out for lunch or to the gym, is not as difficult as being cooped up in the small cockpit of an airplane for many hours at a time, on a schedule over which you have no control.
Yes, but it depends what you mean by asocial. It is true that a programmer spends long hours by herself in front of a computer screen, although there are also meetings with team members and customers. There certainly are "social" professions where you are in constant contact with other people. The problem is that in most cases the human contact is superficial and asymmetrical, because you don't "chat" with your "clients." You may not even want to develop a warm relationship with your clients, for example, if you are a police detective interrogating hardened criminals.
A physician is almost always in contact with other people, but much of that is superficial contact with patients. A consultation may take just 15 or 20 minutes, once every few weeks or months. Certainly, the contact is asymmetrical: I tell my doctor every detail of my life that is related to my health, while she tells me nothing about hers.
Nursing is considered to be one of the most caring of professions, but the reality of modern medical care is far from the romantic image. I recall being hospitalized for tests and feeling stressed out, but Chrissie Williams and Donna Jackson (nurses from the BBC medical soap opera "Holby City") did not come over to hold my hand and reassure me. The nurses at the hospital were themselves stressed out with the responsibility for 40 patients, and they barely had time to perform the myriad technical aspects of the job such as administering medication and measuring vital signs.
It is reasonable for Tiffany to choose to become a social worker because she likes helping people directly, but she must remember that she will not become a friend to her clients.
Non-Myth #5: Programming Is Only for Those Who Think Logically
Well, yes. The nature of programming needs clarification. I define programming as any activity where a computation is described according for formal rules. Painting a picture is not programming: first, it obviously does not describe a computation, and, second, you are free to break whatever rules there are. At worst, they will call you an "Impressionist" and not buy your paintings until after you are dead. Constructing a Web site and building a spreadsheet are both programming, because you have to learn the rules for describing the desired output (even if the rules concern a sequence of menu selections and drag-and-drop operations), and you have to debug incorrect results that result from not following the rules.
Tiffany's good grades in mathematics imply she has the ability to think logically. She may prefer to study music so she can play violin in a symphony orchestra, but she should certainly consider studying computer science and her guidance counselor should insist this alternative be thoroughly explored.
Of course it is. However, the share of software being outsourced is relatively small compared with that in manufacturing. This is not a fluke but an intrinsic aspect of software. Almost by definition, "soft"-ware is used whenever flexibility and adaptation to requirements is needed. If a machine tool is going to turn out the same screw throughout its entire lifetime, it can be outsourced and programmed in "hard"-ware.
Software development can also be a path to other professional activities like systems design and marketing, since software reifies the proprietary knowledge of a firm. A bank might outsource the building of its Web site, but it is not likely to outsource the development of software to implement algorithms for pricing options or analyzing risk, because this proprietary knowledge is what contributes directly to the bank's success.
It would be reasonable for Tiffany to prefer designing jewelry over studying computer science, but not because software is being outsourced. It is more likely that her jewelry business will fail when confronted with outsourced products than it is that her programming job at Boeing or Airbus will be outsourced.
Non-Myth #7. Programming Is a Well-Paid Profession
That's great. Potential earnings shouldn't be the only consideration when choosing a profession, but it is not immoral to consider what sort of future you will be offering your family. It would be a good idea to remind Tiffany that the chasm between the life-styles of her mother and Aunt Jennifer is not the result of luck.
I recently read the controversial book Freakonomics by Steven D. Levitt and Stephen J. Dubner.1 The third chapter"Why Do Drug Dealers Still Live with Their Moms?"based upon the work of sociologist Sudhir Venkatesh3 is quite relevant to the issue of potential earnings. As a graduate student, Venkatesh was able to observe and document the lives of the members of a drug gang, and he eventually obtained their financial records. These were analyzed by Levitt, an economist, who came up with the following conclusion, expressed as a question: So if crack dealing is the most dangerous job in America, and if the salary was only $3.30 an hour, why on earth would anyone take such a job? The answer: Well, for the same reason that a pretty Wisconsin farm girl moves to Hollywood. For the same reason that a high-school quarter-back wakes up at 5 A.M. to lift weights. They all want to succeed in an extremely competitive field in which, if you reach the top, you are paid a fortune (to say nothing of the attendant glory and power). The result: The problem with crack dealing is the same as in every other glamour profession: a lot of people are competing for a very few prizes. Earning big money in the crack gang wasn't much more likely than the Wisconsin farm girl becoming a movie star or the high-school quarterback playing in the NFL.
Ambition to succeed in a glamour profession is not something to be deplored, but a young person must receive advice and support on what to do if she is not the 1 in 10,000 who succeeds. If Tiffany wants to become a professional singer, I would not try to dissuade her, but I would prefer that she pursue a CS degree part time while she tries to advance her singing career.
I found the striking image appearing the beginning of this Viewpoint on the NASA Web site. The image shows Margaret Hamilton sitting in a mockup of the Apollo space capsule. Hamilton was the chief software engineer for the development of the Apollo flight software. She and her team developed new techniques of software engineering, which enabled their software to perform flawlessly on all Apollo missions. Later, she went on to establish her own software company.
Hamilton looks like she is having a lot of fun checking out the programs that she and her team developed. I am sure the long hours and whatever routine work the job involved were placed into perspective by the magnitude of the challenge, and there is no question she felt immense satisfaction when her software successfully landed Neil Armstrong and Buzz Aldrin on the moon. I do not know if Hamilton felt locked out of the male-dominated "clubhouse,"2 but my guess is that the difficulty of the task, the short schedule and the weight of the responsibility felt by the whole team would have made such issues practically nonexistent.
Teachers, parents, and guidance counselors have the responsibility to explain the facts of life to talented young people: computer science and programming may seem like boring activities suitable only for asocial geeks, but a career like Margaret Hamilton's is more fulfilling and more rewarding than what awaits those who do not study science and engineering based upon superficial perceptions of these professions.
Figure. 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, one of only 128 awards granted from 1990 through 2003.
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.
June 28, 2011 09:57
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.
July 07, 2011 07:27
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.
July 13, 2011 06:02
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.
This particular document is freely available under a CreativeCommons license, although not as formatted in the CACM.
August 08, 2011 05:29
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.
May 15, 2014 12:53
The following letter was published in the Letters to the Editor of the September 2011 CACM (http://cacm.acm.org/magazines/2011/9/122792).
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.
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.