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.
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.
"What man has done, man can aspire to do." -- Jerry Pournelle, about space flight