Many of the people who go to the "top schools" have been brainwashed by our corporate culture into believing that it's the only way to be successful, and so they waste absurd amounts of money.
If we're talking about Ph.D. students at top schools, which we seem to be, then those guys generally aren't going into a lot of debt to get their degrees. I was briefly a Ph.D. student in a top 15 C.S. dept.; my tuition was 100% covered and I got a $15k/yr stipend. This was 15 year ago. Not going to make you rich, and I might have struggled if I'd had a family, but as a single guy it was workable.
The US is awash in certain kinds of skilled tech workers: Java programmers, web programmers, iOS app programmers, and more. It's not hard to find them, nor is there any kind of shortage.
My employer has had trouble hiring competent Android devs in a moderately tech-centric metro area outside California. As an Android guy myself I can say that I get 2-3 emails a week from local head hunters, so it seems like other employers are finding it challenging as well.
But for more complex work, the best qualified workers are from overseas.
Yes and no. Generally speaking the absolute best people in the world are probably not going to be U.S. citizens simply because the U.S. represents a minority share of the world's "really bright people". The U.S. share will far outstrip its share of the world population, but it's still going to be a minority. That said, if you limit the question only to the U.S. labor pool, it's not my experience that the very best developers are predominantly non-citizens.
Go look in any US comp-sci graduate program, and try to find the Americans.
My dept. was about 60/40 in favor of U.S. citizens, but that's just from memory and I can't find current stats. It looks like nationwide the split is approx. 55/45 in favor of permanent residents vs. temporary residents among graduate C.S. students. Link here (appendix table 2-21).
I can't speak to the quality of perm. residents vs. temp. residents except to note that most employers aren't in the market for "cream of the crop" graduate students. Undeniably there are some that are. But most aren't, because those guys don't come cheap and are highly selective about what they're willing to work on (because they can afford to be), and a lot of companies just don't need someone with that level of theoretical "chops". At least, not badly enough to merit what they'd have to pay such a person to come work for them.
More close to home, I'm relatively certain that a "cheaper junior person" could not do what I do at my current job. Apparently my employer is similarly certain or they'd find a cheaper junior person to do it.
"Better" can be defined in a ton of different ways. Interesting work, an opportunity to get your feet wet in a new technology, high pay, low workload, way-above-average coworkers, short commute, etc. Be sure to take into account however many of these matter to you.
As a rule of thumb, I try to stay at least a year unless the place is truly intolerable. So far I've never worked anywhere that I felt justified bailing in less than a year.
Because they exist, are valuable for the job and it's a proven fact. It's not as if I ask 20% more because my garage band can rock the 'hood. I bring extra stuff that's valuable to the company in the first place and indirectly saves thousands of dollars per year. The problem is that the hiring process members don't see that value because they are blinded by "OMG 20% more fuck it" fallacy.
I think the difference here is that you're basing your expectations on the ideal in which hiring managers correctly understand what's valuable to the company and I'm basing mine on what is (apparently) the reality in your field, where they are oblivious to the value of soft skills. If you know that going in and yet insist on being paid 20% more then, when you find yourself unemployed, it's by choice. You could be employed if you'd accept 20% less, but you won't. Ergo you're not employed. You can't change hiring managers' ability to appreciate soft skills. You can change your personal asking price.
It sounds like you're just in a bad spot. As you point out, big data analysis is mostly a big company thing, and big companies are the one who are most blind of the things you bring to the table that would merit higher pay. I wonder if you'd be treated better in a full-time on-site role where there's more direct face-to-face interaction?
Companies value soft skills at ZERO.
Then why would you expect to be paid 20% more than the 22-year old based on your soft skills? This is a perfect example of what I'm talking about. The 30-year old who's unemployed because he's asking 20% more based on skills that employers don't actually value is out of touch with reality. He doesn't understand what employers actually want and/or are willing to pay for.
That said, your description of how hiring works doesn't match with my experience in small companies. My current employer doesn't even have an H.R. department per se. We have no idea how many lines of code a given candidate can or can't churn out. Our recommendations are based almost entirely on three things: 1. how well does this person seem to know the things we need them to know, 2. how likely does it seem that he/she is a quick learner who can pick up new skills as needed, and 3. does this person seem like he/she might be kind of a jerk, or is he/she someone I'd want to work with? Age doesn't really come into it, except insofar as it affects the above three criteria. On our app dev. team we have three ~40-year olds, one ~45-year old and one junior guy who's probably ~30 or late 20s. We used to have another ~45 year old until he left a couple months ago.
Not to mention how much can you sacrifice from a personal perspective, aka life-work balance. There are things a 22-year old would do for free but a 35-year old wouldn't or couldn't unless he would be okay with his work-life balance being screwed big time.
In theory I can see this being true. In practice I haven't seen it work that way. On every team I've been on where there were junior guys (e.g. 22-year olds) and older guys, it was never the case that the junior guys worked crazy hours while the older guys worked normal 40-hr weeks. I've never been willing to work crazy hours like that and I've never had too much trouble finding work.
I am 35, have a family and my work-life balance is fucked because I have to make sacrifices to stay competitive. I work from 5 PM to 2AM, my soft skills are valued at zero by the company...
Can I ask what do you do? I've never had to work shifts. At the risk of sounding harsh, it seems like you've chosen a field where it's more-or-less impossible to differentiate one's self based on the quality of one's work. Every employee is viewed as approximately equal and more-or-less fungible. Moreover, there's no willingness to accommodate employees' desire for work/life balance. That sounds like a terrible field to be in. That's not a criticism of you; I'm just giving an objective assessment of what you've described. I'm also sensitive to the fact that career-switching is difficult, time-consuming and often expensive.
Sure. But I'd put my hours up against any of them.
Okay. But you're an outlier in your profession. Medical residents and partner-seeking attorneys are all expected to work long hours. Regardless, even if the avg. hours worked by software dev's were on par with the avg. hours worked by partner-track attorneys that wouldn't detract from my point, which was that women go into those two fields despite the long hours. Ergo "the long hours" isn't a great explanation for women not going into software dev.
Part of that was my willingness to take on the hard work that others were "too good" for or were worried that they were being taken advantage of if they had to work extra.
I was mostly responding to what seems to be the prevailing view on slashdot that working "crazy hours" is part and parcel with software dev. In my experience that's not the case.
How are you going to ungeekify programming, or even science?
Good question. It's interesting that computer science (and math, and electrical engineering, and physics) have the geek stigma while other STEM-y disciplines (biological research, chemistry, civil engineering) don't. If I had to guess, I think it might stem from the former being seen as "arcane" and "inaccessible", regardless of whether that's actually true. The former also tend to have subcultures build up around them that might be a turnoff for some women.
We can try to show that not all female STEM workers are uncool.
I don't think that would be enough. Mainly because even if not all female STEM workers are uncool, they still have to work around a bunch of uncool male STEM workers and who wants that? The whole field is tainted with the stigma of geek culture.
But notice what I did. I offered something, but I then thought twice about it. The reason? In trying to achive the mythical gender balance, there are people who will bring out their own pet theories. But sad to say, most of them I've heard lately all say one thing. Men are pigs.
In general, men are pigs. And I say that as a man. But I don't think "men are pigs" by itself is a good explanation for women not choosing STEM careers.