Report Shows Just How Wrong Silicon Valley Is About A Tech Worker Shortage
businessinsider.com
businessinsider.com
If the people with the greatest innate love of and aptitude for programming are evenly distributed among the world's population, 95% of them are born outside the US.
care to back up that anecdote?
The policy pressure will be just as effective for the other 95% of employers that are interested in keeping salaries as low as possible.
Since no one else is challenging you on that assertion, look at the graph on page 3 in the paper published by Microsoft:
http://www.microsoft.com/en-us/news/download/presskits/citiz...
The lead sentence is:
"The United States faces a growing economic challenge — a substantial and increasing shortage of individuals with the skills needed to fill the jobs the private sector is creating."
> The shortage is of really good programmers.
From your quote:
"... individuals with the skills needed"
Compatible statements, no?
I support immigration reform for top talent. I just have a low tolerance for BS.
This is a position paper from one of the greatest users of H1b visas on immigration reform. It's worth about as much as the fox giving advice on how to build henhouses.
An A-class candidate will get offers from plenty of places, and they will demand good wages, generous startup funds, a job for the wife, access to equipment and so on. If they find the employer distasteful, they will leave because they can, and then all this investment will have to be written off, and there will be another search.
Consequently, there is some wisdom in inviting B-class candidates, because the chance is greater that they will come and will stay. A failed search is expensive as well, someone will have to pick up the teaching load, and there won't be a grant application that year.
So the real question is, are employers current expectations reasonable or not? I would guess that hiring a less than best engineer that can produce you wealth would be better than hiring no one and thus produce no wealth. It's a simplistic model, granted, and a less than best engineer may end up decimating your wealth with crap code but...who knows?
My impression just got even more negative. In general the more meta you make your description of yourself, the less likely you are to be doing anything obviously useful.
My view on this particular subject goes farther. If you aren't competent to express your ideas with a database schema, then I don't want you to try to tell me how I should be manipulating the information stored in a database. Because you don't understand what is or is not doable. And if you are competent to write that schema, then you are likely to make yourself useful writing code using it. This goes in reverse as well. Until you've got experience actually using databases as a tool, you're unlikely to design good schemas.
Why is this? Well, part of it is because, as always, a liberal arts degree isn't meant to be job training in the first place. This gap is especially pronounced with software people though, since a CS degree can be very theoretical and: A. might teach a lot of "stuff" that most programmer's don't use (or don't use very often), B. doesn't always include enough of the "stuff" that programmer's do need, and C. can be overly general, when "practice" in this field is highly specialized and includes lots of niches.
Another part is because employers don't do enough to fill in the gaps and help train younger employees. Ideally, employers would hire new CS graduates and spend a year or more grooming them, teaching then the specialized skills they need in that specific domain, and helping them ramp up. But American employers are so averse to providing training, taking a long-term view, and "playing the long game" that it's ridiculous.
One thing that might help, would be if more schools started offering a Software Engineering degree in addition to Computer Science degrees, and if more students started choosing the SE degree. But even then, again, a liberal arts degree isn't supposed to be "job training" and the SE degree would still probably turn into more theory and not enough "how to actually build something" than what employers would want.
Net-net, I think employers are going to have to bite the bullet at some point, and accept that you have to hire and groom "green" people if you want to compete. And maybe universities should start offering a few more classes on the "nuts and bolts" aspects of building systems. Perhaps some partnerships between universities and local community colleges could be involved.
No matter what, though, I don't think you're going to be able to look for fresh graduates who, for example, walk in the door knowing Hibernate, Spring, PostgreSQL, Camel, JMS, Lucene, Maven, Ant, JUnit, SAX, JDOM, STaX, JSON, Hadoop, etc. But, unfortunately, employers are largely looking for folks to walk in the door ready to contribute with highly specialized skills from day one.
Computer Science graduates are doing OK. It is Information Science graduates who are in pain here.
Please don't do that. That kind of snark doesn't add anything to the conversation and creates antagonism where there should be none.
Computer Science graduates are doing OK. It is Information Science graduates who are in pain here.
No, Information Science graduates are just in more pain. And that's entirely expected, as a recent IS graduate is even less prepared to go out and work in the "IT World" than a recent CS graduate... if you assume that's a reasonable career path for them (and given the limited number of academic jobs, it probably is).
On how CS grads are doing, new grads have an unemployment rate below the general public, in an age range where unemployment is much higher than the general public. And if you go out a few years, unemployment drops in half. This sucks if you are one of the unemployed, but overall I consider this doing fine.
I'm not only talking about problems with the degree itself, I'm talking about a mismatch between "skills sought" and "skills possessed". This is true regardless of whether your degree is Computer Science, Information Science, Software Engineering, Math or "Other". And in either case, I posit that a significant step towards addressing the problem would be for employers to return to a mindset of "we'll hire green people and train them in the more specialized skills" as opposed to expecting everybody to come in with tons of highly specialized knowledge.
Please No. That is what they do in Japan and I'd feel that's the number one reason programmers get paid shit in Japan. They hire straight out of school with no experience with salaries starting at around $30k. At 15 years experience you'll make somewhere between $45k and $60k.
Programmers in Japan make less than flight attendants
http://www.worldsalaries.org/japan.shtml
Some people would say that's a reason they're in trouble. As the world switched to software being more important then hardware they didn't switch to valuing those that make software.
Web technology is in vogue now, but you could spend 3 years teaching people rails and node.js only to have them graduate and find that the world is moving on to something else and now embedded programming knowledge is more important.
Our Jobs who art in Heaven hallowed be thy name
Of course there is a balance and if you're routinely turning away great candidates there's probably a problem with your interview process that should be checked out.
I used 'flawed' in the sense that interviewing is a hard problem in general.
Edit: Fixed
Both of those suggest an organization which hosts contests and events for training would be programmers. An example of a group that does this for business types is DECA [1] which my kids participated in at high school and learned a lot of quite practical business experience. If we could create an organization that had similar sorts of events (DECA does role plays for dealing with work situations and tests to demonstrate general knowledge) We could achieve two things, one we could create visibility for these people to industry who is looking for them, and we could give them confidence and skills they would use in their future employment.
As far as I can tell from the course descriptions, graduates of this program are not preparing to invent the next generation of technology breakthroughs: http://www.infosci.cornell.edu/academics/degrees/ba-college-...
A Cornell undergrad wanting to be a hardcore technologist, would major in "Computer Science" in the College of Engineering. But that would be more effort.
Silicon Valley needs people who can code, not people with "5+ years of experience using MS Word"
From the actual report: "People who make technology are still better off than people who use technology. Unemployment rates for recent graduates in information systems, concentrated in clerical functions, is high (14.7%) compared with mathematics (5.9%) and computer science (8.7%)."
CS grads fulfill the promise of their training when they can convert theory into practice.
IS grads fulfill the promise of their training when they can convert theory into more theory.
This is significantly less employable.