The Software Developer Labor Market
Posted on April 9, 2009 Comments (11)
With the economy today you don’t hear much of a desperate need for programmers. But Dr. Norman Matloff, Department of Computer Science, University of California at Davis, testimony to Congress (Presented April 21, 1998; updated December 9, 2002) on Debunking the Myth of a Desperate Software Labor Shortage is full of lots of interesting information (for current and past job markets).
No, it’s false and dishonest… The industry has been using this “temporary need” stall tactic for years, ever since the H-1B law was enacted in 1990. In the early- and mid-1990s, for example, the industry kept saying that H-1Bs wouldn’t be needed after the laid-off defense programmers and engineers were retrained, but never carried out its promise. It hired those laid off in low-level jobs such as technician (which is all the retraining programs prepared them for), and hired H-1Bs for the programming and engineering work.
Unlike Dr. Matloff, and many readers of this blog, I am actually not a big opponent of H-1B visas. I believe we benefit more by allowing tech savy workers to work in the USA than we lose. I understand people fear jobs are being taken away, but I don’t believe it. I believe one of the reasons we maintain such a strong programming position is due to encouraging people to come to the USA to program.
I also do believe, there are abuses, under the current law, of companies playing games to say no-one can be found in the USA with the proper skills. And I believe those apposed to H-1B visas make reasonable arguments and this testimony is a good presentation of those arguments.
Suppose you are currently using programming language X, but you see that X is beginning to go out of fashion, and a new language (or OS or platform, etc.) Y is just beginning to come on the scene. The term “just beginning” is crucial here; it means that Y is so new that there almost no one has work experience in it yet. At that point you should ask your current employer to assign you to a project which uses Y, and let you learn Y on the job. If your employer is not willing to do this, or does not have a project using Y, then find another employer who uses both X and Y, and thus who will be willing to hire you on the basis of your experience with X alone, since very few people have experience with Y yet.
Related: IT Talent Shortage, or Management Failure? – Preparing Computer Science Students for Jobs – Engineering Graduates Again in Great Shape (May 2008) – What Graduates Should Know About an IT Career – posts related to computer programming
We started using Ruby on Rails at work over 2 years ago, and at that time it definitely qualified. Finding great developers with Ruby on Rails experience was hard. And we certainly were not restricting ourselves to such applicants (having that experience was nice, but not required). And I think it is still early, though not very-early to move into Ruby (and Ruby on Rails) programming. Another benefit of such new areas is you often work with others that are very interested in the craft of programming with a high desire to do great work (at least I know with Ruby it has been that way in my experience).
It should be noted that other technical fields do not show this rapid decline of work in their area. For example, consider civil engineering majors. Six years after graduation, 61% of them are working as civil engineers, and 20 years after graduation, the rate is still 52%; compare this to the decline for computer science majors from 57% to 19% seen above.
Industry lobbyists have tried to dismiss the large attrition rate among computer science graduates by saying “They all became managers!” But civil engineers become managers too, and yet we don’t see a large attrition rate for that profession. Another analyst then postulated that computer science graduates have a greater tendency to become managers than do civil engineers, but this is not the case either. If anything, the opposite is true: The NCSG data show that among those who have been out of school 16 years or more, 13% of the computer science graduates were managers, while 18% of the civil engineers graduates held managerial positions.