views:

1644

answers:

16

There is a New York Times article about Google complaining about a lack of qualified US programmers even in this economic downturn:

http://www.nytimes.com/2009/04/12/business/12immig.html

They elaborate on how one of the immigrant programmers there was able to solve problems that local ones couldn't:

Enter Mr. Mavinkurve, who floated an alternative: cut the number of colors in each map section to 20 or 40 from around 256. The user would not see the difference, but the load times would be reduced 20 percent.

Mr. Mavinkurve used a rare combination of creativity, analysis, engineering and an understanding of graphics to find a solution that had eluded the rest of the team, said Mark Crady, a manager in the maps group.

Someone showed me a report saying that this is a ploy by employers to get cheap labor.

http://heather.cs.ucdavis.edu/itaa.real.html

Do companies really do write you off for not having the exact major and having the exact language experience?

Do any of you in the industry know the true situation out there right now?

Edit

I see a lot of people here saying that there is a shortage of talent. How do you define talent? Do you consider yourself talented? If you see a growth in the number of people as good as you, would you still consider yourself talented?

A: 

How would complaining about a shortage lead to a DECREASE in costs? That sounds like the exact opposite of supply and demand to me.

Daniel Straight
If you glanced at the second link, you'd see it was about hiring non-U.S. employees, which are presumably cheaper in U.S. dollars.
Kai
... Becuase if they can convince the government there is a shortage, they can hire more H1B's (foreign workers). Historically, H1B workers are cheaper than hiring Americans.
ceretullis
+20  A: 

There is no shortage of numbers but I find there is real shortage of talent.

Joshua
+1 True, the really good ones are always scarce.
lothar
Would you only hire "talent"? And what would you consider to be "talent"?
Unknown
Well, Talent is a master degree person not using a regular expression to validate a phone number and not pairing the answers to the field names, using index numbers.
Dr. Zim
Could this be due to lack of quality control in the education system? Or could it be that the "talent" programmers aren't taking the time to mentor the young and upcoming?
Simon Hartcher
I'd have to say it's not the education systems fault. I've met programmers with no "education" who were amazing and ones with a ton who can't grok while != for. It's the attitude that anyone can do this job. I think the lazy factor is what's killing us. No one remembers the processor anymore.
baash05
+9  A: 

Is it time for me to put in all the old programming languages I've used before but am rusty now on my resume?

It's never time to do that. You could end up costing yourself a job.

Say, for example, that I'm a really good Java programmer, but I'm scared of the failing economy and competition from other programmers so I put Java, C++, Python, Ruby, Perl, PHP, XML and the rest of the alphabet soup on my resume. I interview at a company that's looking for a few Java developers, so I'd be a perfect fit. I get interviewed by a guy who also knows Perl, so he decides to ask me a question about Perl just to keep me honest. Of course I fail to answer the question correctly because I haven't programmed Perl seriously for ages. Now he's wondering what else I lied about on my resume.

Is there a shortage of programmers?

In tough economic times two things happen. People hold onto their jobs when they can, and companies hold onto their talent. It makes hiring paradoxically more difficult.

Bill the Lizard
Well I'm thinking more along the lines of, I know C and Perl decently, but one company only hires perl, ony company hires only C. If I get an interview with either one, then I can have time to prepare, than if I just left them both out.
Unknown
If you can really program in them they should be on your resume to begin with. If you need to cram for an interview, you won't be as productive in those languages as you're trying to present.
Bill the Lizard
I will add, that if you're a student, or recently graduated, it's perfectly fine to put that you're familiar in some languages if you're not trying to pass yourself off as an expert. It's generally better to stick with your strengths, though.
Bill the Lizard
Alconja
+1 love first answer
TStamper
I leave C++ on my resume. Anybody who asks finds out that I speak it with an archaic accent. You see, I know the language but not the libraries.
Joshua
I completely disagree with you on putting old languages on the resume to avoid flunking interviews. If the interviews asks me a Perl question I'll tell him quite honestly that I haven't programmed in Perl for X years and put it on there because I worked with it for Y months and completed Z project.
aleemb
If anything, it will at least get you the interview and show your range of experience in various environments. The job of the resume is not to get you hired but rather to get you the interview. It's during the interview where you decide if the company is right for you and vice-versa.
aleemb
@aleemb: If you can be productive in that language, I agree. If you took one course back in college and finished four assignments in that language, I'd leave it off.
Bill the Lizard
+1  A: 

In my experience, this is highly variable depending on any number of conditions within the local job market you're attempting to break.

If you live somewhere where there isn't much tech work, competition will be increased merely due to the scarcity of jobs, not only from other developer-transplants, but from self-taught locals looking for a career change. Non-college-grads will have a harder time finding appropriate work, as most jobs will be with Heartless Corporation, whose HR departments know nothing about our craft and assume that you must have at least a bachelor's degree to produce quality code.

If you live in an area that's more technically oriented (which doesn't necessarily refine you to Cambridge/California, there are some unexpectedly tech-heavy places (Omaha, Provo, etc.)), there's a lot more opportunity for the freelance/web/non-enterprise developer, and the field is usually more interesting and open-minded. There are often more developers per capita in this area, but I've found it much easier to gain employment in areas like this than in less-tech-savvy markets; there's just a lot more out there, even if there are more devs.

Each has its benefits, depending on what you want to do. If you're looking for a dynamic, steady job, you're probably better off in an area with more tech saturation. If you're looking to start your own web shop, you're better off in an area with less tech saturation, simply because there will be far fewer professional-caliber services to compete against. Areas with more developers are much more frequently home to conferences and good user groups, if you're into that.

There's no need to worry; developers are in relatively high demand and will remain that way for many, many years. If your experience and intent doesn't mesh well with your market, you might want to consider relocating, but there's plenty of opportunity available, no matter where you live.

EDIT: Regarding your resume, yes, I'd include all languages you have significant experience with, even if that experience is years old. Don't misrepresent yourself as a "guru" in eight languages or anything like that, but a section that specifies significant experience is expected. If you're applying places, you've got to get through the clueless HR people, which means making your resume match their requirements list. There's nothing dishonest about this, as long as you're not dishonest about it; don't include techs you've not used, but don't be afraid to include something you're "rusty" with.

cookiecaper
I agree with your edit. Well said.
Dennis
+3  A: 

I have to say I would be taking Dr Matloff's findings with a grain of salt. His exec summary says:

Yet readers of the articles proclaiming a shortage would be perplexed if they also knew that Microsoft only hires 2% of its applicants for software positions, and that this rate is typical in the industry. Software employers, large or small, across the nation, concede that they receive huge numbers of re'sume's but reject most of them without even an interview. One does not have to be a 'techie' to see the contradiction here. A 2% hiring rate might be unremarkable in other fields, but not in one in which there is supposed to be a 'desperate' labor shortage. If employers were that desperate, they would certainly not be hiring just a minuscule fraction of their job applicants.

his paper clearly isn't taking all the variables into account. Microsoft and Google may only hire 2% of applicants, but I'm betting the vast majority they're rejecting are junk. I would agree that there's a shortage of "quality" programmers and it certainly isn't a ploy to get cheap labor. Like Daniel said, supply and demand will ensure that the more talented developers will always cost more, regardless where they're sourced.

lomaxx
But what do you say about http://heather.cs.ucdavis.edu/itaa.real.html#tth_sEc4.1.1 where lesser named companies are getting less than 5%?
Unknown
+3  A: 

No.

To this, I would say almost absolutely not. As stated by those before me, and in the original article itself, the problem is not a matter of having enough bodies. Especially in a poor economy, you want people who can bring value to a team. Take a guess at this ever known a developer who could work about 4x faster/smarter than a fresh batch of graduates? More?

In fact!

I think the problem is just the opposite. We've got far too many programmers. Kind of. Well, not really. But as programming becomes more accessible and less of techno-wizardry, it becomes more common to see people of less natural talent and ability get into the market. Is this a bad thing? I can't really make a judgment about this. What I can say, however, is that it seems to pollute people's perceptions of the developer market right now.

It's simply a matter of getting smart, qualified workers. Bear in mind Google is aiming to only get the best developers, so their standards are high.

Tony k
I have to agree with you about the taint of the profession. To often I've been called in to "complete" a project that was started or worked on by people from other professions. Clients are more then willing to call in a tech writer but insist they can cut code. It depletes the image.
baash05
+1  A: 

RE: Daniel Straight

How would complaining about a shortage lead to a DECREASE in costs? That sounds like the exact opposite of supply and demand to me.

The argument of a shortage of tech workers is almost always made in the context of lobbying for an increase in the H-1b visa limits so that more foreign workers can be hired. There are a number of hoops that an employer has to jump through to hire a foreign worker, but there are many ways that employers 'game' the system.

Going from 65k to 115k temporary visas like the limit was in the late '90s would have a small but significant impact on the labor market and 'supply and demand' says that if you increase supply the wages fall.

Gary.Ray
There is a new scam brewing too. When an H-1b worker brings in his wife on an H-4 she isn't allowed to work here. The anti-American forces in Washington are trying to change this so they can work here too even without qualifying for H-1b status, effectively doubling the H-1b quota.
Bob
+1  A: 

My rule of thumb is: follow market prices. If the average engineering salary goes up, then there's a shortage. If engineers are being paid low, then there isn't. I think that is as good a measure as any.

sybreon
+3  A: 

It's all about trying to gain access to a much cheaper pool of workers. If you need 1,000 coders and you can shave of 50% of the cost you can talk your board of directors into paying you a really big bonus. There's not really anything more to it.

David Plumpton
+1, Ever hear, "there are too many people applying for our jobs, the country urgently needs to reduce this so that we can pay our employees more!" ? There is a direct incentive to talk up shortage: you can pay people less once a bigger labour supply has been created to address the "shortage".
Edmund
+3  A: 

It's a signal-to-noise problem. There is a huge number of programmers, and a fair number of talented programmers. However, the number of unskilled coders is increasing significantly faster than the number of high-quality programmers.

Imagine for a moment that suddenly the demand for painters became very high, and people realized that there was a very good living to be made doing oil on canvas. After about one generation, the number of people trained to work with a paintbrush would increase by several orders of magnitude. And many painters would consider themselves "highly skilled" if they thoroughly understood the mechanics of brush strokes, color mixing, subject composition, and so on. However, how many "good" painters would there really be? How would you go about finding a "good" painter?

The problem with hiring programmers is that there is such an enormous number of "trained" coders who are crappy at the art of programming. And the signal-to-noise ratio gets worse with every graduating class.

The problem with training a coder to be a good programmer is roughly analogous to trying to train a painter to be a good artist. If I knew the answer, I would be very, very rich.

tylerl
+7  A: 

There is no shortage of Programmers but shortage of Good Programmers.

If you have work experience of a software or a language but you have not touched it for long and a bit rusty as you were using other languages in your recent project. You should still put that info on your resume. I am sure a good programmer will not take long to be productive again on a language he worked on way back.

Bhushan
+3  A: 

I'm in an area hit with several bankruptcies and mergers; I can't find a job. At the same time, I've run into a number of H1B programmers (including one guy from Mexico). You'll have to judge from my answers here whether I'm talented.

That's an anecdote, of course, not data. And certainly, I've worked with H1B programmers in the past, and many have been talented guys. But there's no question that a greater supply of programmers (from whatever source) increases competition for jobs and drives down wages.

tpdi
+10  A: 

As a programmer and software engineer, and as much as I like to think of myself as a special and unique snowflake, I would have to say that just about anybody can program. When it comes to the huge mega corps like Google and MS, they are definitely whining for cheaper labor. Other people here have answered that "quality" programmers are few and far between, because they want to be special snowflakes too. While "quality" programmers and engineers can definitely be more valuable, they do the rest of the programmers out there a disservice by dismissing them as low quality.

With proper training and motivation, I have seen low to average programmers grasp fundamental Computer Science, and start to really create elegant and effective designs and implementations. In other words, systemic thinking can be taught. I won't discount the natural ability of great programmers to create scalable stable systems in record breaking time. But to think that the next version of MS Excel requires some group of savant programmers is really elevating our profession onto an absurd pedestal.

Think of architecture; the architect often has several drafters working on a design. Then, skilled and trained craftsmen come in and build the design under the supervision of a foreman. Even James Hubble's designs had crews of laborers and carpenters building them. There is no reason to disrespect the skill of the carpenter or tradesman because he is not an architect. And it would be silly to make the architect drive nails all day in order to call the building his design.

If MS is unable to find craftsmen (programmers) they deem skilled enough to implement their programs, then perhaps they should blame the lack of skill of the architect and foreman, and not the lack of skilled programmers.

Zak
I was with you until you wheeled out the construction analogy :/ You may be right that average programmers can become great programmers, but farming out one person's design for others to implement just doesn't work very well with software.
Jim Arnold
Jim, I respect your opinion, but I don't see any evidence to support your assertion. I design interfaces and class heirarchies that I hand off to junior programmers to implement on an almost daily basis, and it works out great. Documentation (blueprints) is the key. I think the analogy holds.
Zak
Well, likewise, and I'm happy it works for you, but I have seen so many projects under-achieve using this strategy, whereas projects with a more collaborative approach go from strength to strength. One person's design document is another person's overhead :)
Jim Arnold
When I started programming I thought anyone with enough time and training could be good. Now I've seen the truth. Not everyone can code. People can get better and people can grow, but some people value the wrong parts of code and may never grasp it. Not everyone be a talented carpenter/coder.
baash05
Zak you are talking about levels but here the question is not about level. A good programmer doesn't mean that he will be able to develop MS Excel like software from scratch. Its about doing the assigned work properly. Of course training and all will be given but still you will see most people not able to do simple things. Your opinion is correct and I agree with that but the context is different I think.
Bhushan
Sure it's about levels. Google is saying they can't get anyone qualified... BS!! They have tons of programmers there. Those people should be moving up the ranks and training incoming junior programmers. I'll be the first to say junior programmers *can* be retarded. But they can (and should) be taught to be senior programmers. And senior programmers should be taught how to train junior programmers, and given that as part of their job responisbility.
Zak
+6  A: 

That depends on how you define "Who is a programmer?".

Is it "Someone who is able to write some code"?
Or is it "Someone who is able to write code and understand it a month later"?
Or is it "Someone who is able to write code after thinking about it first"?
Or is it "Someone who has experience in writing good code"?

There is this philosophically titled article "Teach yourself programming in 10 years". I agree with the title.

ivan_ivanovich_ivanoff
I'm on year 9 and I'm still got so much more to learn. Anyone who says different is fooling themselves. :) Amen brother.
baash05
+1  A: 

What's "shortage" mean here?

If you have a shortage of, say, grains, then that's a real problem -- people would go hungry.

If you have a shortage of farmers who grow grains, then that's a problem too.

What's it mean to have a "shortage of programmers"? Are people going hungry because there's Java code not being written? It sounds like market forces in action: employers are discovering that good programmers are worth more than they want to pay.

But "shortage"? That seems to imply a deficiency upstream of a real need, and I'm not seeing what real world need we're lacking that simply having more programmers (at a given price point) would solve.

Ken
"Shortage" is simply double-speak for "we can't get what we want as cheap as we want it." It is really that simple.The economy exists for people, not companies. Companies are allowed to participate only at the will of the people, they have no rights and just the privileges people grant them.
Bob
+3  A: 

There is no shortage of programmers.

There is however a shortage of quality companies to work for.

Black Cat
Haha, the opposite of Joshua. I like that.
Unknown