Orphans Preferred

Contents

Personality Types

Personality Characteristics of Software Developers

Software Demographics

Programming Heros and Ball Hogs

Software Demographics

The stereotype of programmers as young men appears to have some merit too. The average software worker is significantly younger than the United States labor force. The age structure of the workforce peaks at 30-35 years old, which is about 10 years younger than the peak for other types of technical workers. The average age is 38 years old, which is younger than the average age of the United States labor force overall.

The majority of software developers are male. In the latest year for which data is available (1996), 72 percent of the bachelor degrees in computer and information science and 85 percent of the PhDs were awarded to men. In high school, only 17 percent of students taking the advanced placement test for computer science are female, which is the lowest of any subject.

The comparison of programmers to Pony Express riders begins to look less and less like an exaggeration (though I don't have any evidence that computer programmers are any more "wirey" than average).

Education

Many programmers go through a gradual occupational awakening. When I wrote my first small programs, I thought, "Once I get the program to compile and quit getting all these syntax errors, I'll have computer programming figured out." After I stopped having problems with syntax errors, sometimes my programs still didn't work, and the remaining problems seemed even harder to figure out than the syntax errors. I adopted a new belief, "Once I get the program debugged, I'll have computer programming figured out." That belief held true until I started creating larger programs and began having problems because the various pieces I implemented didn't work together the way I thought they would. I came to rest on a new belief, "Once I figure out how to design effectively, I'll finally have software development figured out." I created some beautiful designs, but some of them had to be changed because the requirements kept changing. At that point, I thought, "Once I figure out how to get good requirements, I'll finally have software development figured out." Somewhere along the path to learning how to get good requirements I began to realize that I might never get software development figured out. That realization was my first real step toward software engineering enlightenment.

Programmers take many circuitous paths to personal enlightenment, some resembling mine, some not. As I mentioned earlier in the chapter, and as Table 1 shows, about 60 percent of software developers have obtained bachelor's degrees or higher. According to the United Engineering Foundation, about 40 percent of all software workers obtained their degrees in software-related disciplines. About half of those who eventually obtained a software-related degree did so after first obtaining a bachelor's degree in some other subject. Another 20 percent of all software workers obtained degrees in subjects such as mathematics, engineering, English, history, or philosophy. The remaining 40 percent completed high school or some college but did not obtain a four-year degree. Universities in the United States currently award about 25,000 computer science and related degrees per year, whereas about 50,000 new software development jobs are created each year.

Highest Level of
Education Attained
Percent of Software Developers
High school graduate or equivalent or less
10
Some college, no degree
21
Associate's degree
10
Bachelor's degree
45
Graduate degree
14

Table 1. Software Developer Education

The implication of all these statistics is that a great many software developers are well educated in general but have not received any systematic training in computer science, much less in software engineering. What education they have obtained has been acquired through on-the-job training or self-study. Providing more consistent education in software engineering represents a significant opportunity to improve the level of software development practices.

Job Prospects

Total current employment for software workers in the United States is about 2 million. As Table 2 shows, jobs are divided among computer programmers, systems analysts, computer scientists, computer operators, and network administrators. (These government-statistic job titles might sound old fashioned, but they do include modern software jobs.)

Job Title
Current Number of Software Personnel in the U.S.
Computer programmers
617,000
Systems analysts

671,000
Database administrators, computer support specialists, and other computer scientists
289,000
Computer operators/network administrators
249,000
Total
1,826,000


Table 2. Job Breakdown of Software Workers



Job prospects for software developers in the United States are very good. According to the Bureau of Labor Statistics, computer and data processing services will be the fastest growing job category between 1996 and 2006, with a projected increase of more than 100 percent during this period. The job category in second place, health services, has a projected increase of less than 70 percent. All computer-related job categories except computer operators are expected to increase.

Worldwide, software development jobs are expected to increase as dramatically as they are increasing in the United States. Table 3 shows the projected increase.

Year
Total Programmers
1950
100
1960
10,000
1970
100,000
1980
2,000,000
1990
7,000,000
2000
10,000,000
2010
14,000,000
2020
21,000,000

With a 25,000 job-per-year gap between bachelor's degrees awarded and jobs created, demand for computer programmers should remain high in the United States for at least the next several years. This labor shortage has been a perennial feature of the software world at least since the mid-1960s. Software-related jobs are rated well in terms of salary, benefits, work environment, job stress, job security, and other factors. Desirable as these jobs are, programmers know that there isn't much competition for them.

 

________________________________________________________

Programming Heros and Ball Hogs