Programming jobs: a sanity check
Reply to James, a member of the Singularity Institute’s Berkeley house, who was weighing a move to the Bay Area for a programming job and had asked the house list whether the labor market for programmers was as favorable as it appeared. The points are numbered in response to the structure of his original message.
A) There is no such thing as a general “labor market”, and the idea that there is is a dangerous lie spread (literally) by evil big corporations. What there is are different markets for different forms of human capital. A market is inefficient if either the demand exceeds supply, or the supply exceeds demand. You’d be crazy to hire someone off the street for $400K a year, but crazy not to hire Steve Jobs for $400M a year. The scenario you point to is one in which supply exceeds demand: the price level is too high, and so the market is flooded until price levels drop. (Consider both salary and pleasantness-of-job to be part of “price”.) That does happen sometimes, especially in declining industries.
However — and there’s a huge amount of data to support this — the current scenario is exactly the reverse. Demand exceeds supply: people who want good programmers at standard programmer salaries can’t hire them. That explains why lots of software companies have crazy perks and free cafeterias and massages and stock options and so on; wages are sticky, so this allows firms to compete for a limited supply without raising prices.
To look at the evidence, consider people with comparable levels of human capital. The programmers hired out of college by Google are mostly well-above-average people at elite schools. Mid-career, they might make $150K or $200K. But if they went to work in another industry — an investment bank or consulting company or corporate law firm — they might make seven figures, and could likely make double what almost all programmers make. Keep in mind that ~1% of wage earners, about 1.5 million people, make more than $400,000 a year. To put that in perspective, a 99th percentile score on the (pre-2004) SAT was 680 / 800. Not that SAT scores predict earnings all that well, just to give an idea of how (non-)exceptional that is.
B) Middle-class jobs (i.e. “professionals”) aren’t day jobs, but a large percentage (maybe the majority?) of jobs paying $70K+ aren’t middle-class. The largest other category is probably high-prole jobs: truck drivers, electricians, plumbers, police officers, etc. all commonly make more than $70K. This really is a social class thing rather than a money thing; for more info, I recommend Paul Fussell’s essay on status , especially the section starting “Back, now, to the classes.” The self-made upper class do tend to work a ton, but programming is far from upper class, although entrepreneurship can be. You can also, of course, work a ton because you just like to or feel like it rather than having to (plenty of Googlers do).
C) Akrasia issues are definitely a serious concern, and probably by far the largest problem. I can’t really recommend any general solution, but at least for me, what largely works is the power of suggestion. If you place yourself in an environment where the people physically next to you expect you to work, you do a lot of work.
D) (picture).
More importantly than the currently-ridiculously-inefficient American labor market, there’s no inherent limit on the total number of jobs, in CS or in any other field. Any number of people can make a lot of money in programming as long as the work they do creates a lot of sellable value, and that’s been on the rise very fast since the dot-com bubble ended. As Peter notes, tech is the one major exception to the general trend of less innovation.
E) Programming isn’t really a middle-class or (heaven forbid) upper-middle-class job; since software took off during the 90s, it’s been a mix of high prole and a new intellectual class that Fussell calls Class X. Standardized recruiting pathways are the hallmark of the middle class and especially the upper middle class, such as doctors, corporate lawyers, investment bankers, etc. Giant companies like Google do some standardized recruiting, just because they’re so big, but that’s still probably a minority of the actual hires.
It’s true that programming involves a lot of jargon, and has its own community, with its own social norms, own internal status measures, etc., and that you’ll initially rank low on those status measures due to lack of knowledge/experience/reputation. But so does any well-developed art or field of study, including rationality (“Bayesian”, “applause light”, “semantic stopsign”, “color politics”, etc.). And personally, I’ve found that programmers don’t pay that much attention to status anyway relative to other groups.