Nowadays this question is asked frequently. A lot of guys in their 30s realize that they are the oldest guys in their groups. 20+ guys don’t see wise sages around. What is going on? It was debated on /. without any productive outcome (as usual).
Let’s take a look at the problem using available statistics. One nice source of data is the National Center for Educational Statistics. I made a chart using Table 280. "Earned degrees in computer and information sciences conferred by degree-granting institutions, by level of degree and sex of student: 1970-71 to 2002-03" (only totals are used):
Click on the thumbnail to open big picture in a separate tab and continue reading.
Interesting, isn’t it? Let’s look at it closer:
- Number of Ph.D. degrees is less than 1,000 every year. It is mostly flat. From 1987 to 1990 their number doubled and was practically flat after that.
- Number of M.S. degrees grows steadily with small variations.
- Number of B.S. has a peak in 1985-1987. After that the number of graduates declines and we see a plateau from 1991 to 1997. Wow! These are dotcom glory days!
- Starting 1999 we have an explosive grows in Bachelor’s degrees and moderate grows in Master’s degrees.
Of course there are computer programmers without degrees, but we are interested in trends, not in absolute numbers. I believe that this statistics reflects trends correctly.
Just out of curiosity let’s see how it corresponds to important events in the history of computing. In most cases a person decides on becoming a computer programmer because of some social trends rather than technical improvements. That’s why I am not going to talk about internal events, which changed the industry, like OOP, IDE, networking, and so on. (Maybe I’ll talk about that in the future). One more note: it takes time to get a degree, which means that events don’t have immediate effect and we will experience a lag of 3-6 years.
Now let’s get down to business:
- 1977 – Apple II is launched breaking barriers of home computer market. We can see that the curve starts going up since 1980.
- 1981 – IBM PC is introduced. The price was right for deep penetration of businesses market. The curve goes nuts in 1984.
- 1984 – Apple Macintosh is launched with famous George Orwell’s 1984-inspired Super Bowl ad. Macintosh brought GUI to masses. While it was a major event, I don’t see any spikes caused by it. The probable cause is people tend to choose a profession based on perceived rewards (consciously or subconsciously), and the money were in business sector, which embraced IBM PCs at that time.
- 1990 – Microsoft starts to sell Windows 3.0. It was the first really useful and thus accepted GUI for IBM PC-type computers. (Microsoft Axiom: "it takes 3 tries to get it right"). Apparently it didn’t affect number of graduates.
- 1990 – H-1b visas are born, when the "Immigration Reform and Control Act of 1990" is signed by President Bush. To be perfectly honest the program didn’t go full speed until ~1994-1995. We can see that the Act was signed during the slump on negative slope of our curve. Some critics of H-1b predicted that influx of highly qualified professionals from abroad will make Computer Science and related disciplines unattractive, but instead we see a huge grows starting 1998.
- 1991 – Tim Berners-Lee debuts the World Wide Web. No major impact. Yet.
- 1994 – Internet becomes a social phenomenon. It was the first year of e-commerce. I bought a T-shirt online and some books. The whole experience was horrible but exciting. A lot of kids are excited by WWW, browsers, and web sites popping out like mushrooms after rain. 4 years later we will see an explosion of Bachelors in CS.
- 1995 – Microsoft debuts Windows 95. Switch to 32-bit architecture makes data processing easier. New OS sports updated GUI, which is important for home computer market.
- 2000 – We were waiting for Y2K bug but it didn’t come to our party.
- 2000 – Dotcom bubble bursts. It coincides with Telecom crash. Our curve doesn’t show any short term impact. Unfortunately data for 2004 and 2005 is unavailable as of now. I expect to see a dip.
Now let’s go back to our old timers. You can see that before 80s we didn’t have a lot of programmers. Guys, who got their degrees in 80s, were 20+, which makes them 40+ now. Hardly an old age. In any case they are outnumbered by recent generations of programmers, which makes them scarce. Add H-1b and L-1 visa holders in the mix and old timers become practically invisible. Yes, many of them can be managers by now. It is not a big deal given their numbers. To sum it up: we will see a fate of old programmers in ~15-20 years. Not now.
You probably noticed that I used U.S. statistics. Other countries have different trends. From my personal experience in many cases they lag American trends by ~5 years or more. It means that today they have even smaller number of old programmers, if any.
In general it brings another question: how important to have old programmers around? Or in more general terms: what are the merits of book knowledge vs. real-world experience? Let’s talk about it some other time.