I completely disagree. When I had to look for a new job a few years back I found that most all jobs are contract jobs for which you need to compete (and suffer) with Indian H1B workers who will work for less and many times without benefits. Rates are pretty much fixed between the employer and contracting company so that you essentially lose PTO, company provided healthcare options, 401k matching, Stock benefits etc. Also consider the H1B visa holder is beholden to the company that sponsors them and must pretty much do anything they want or need. I found that the market is absolutely flooded with H1Bs and its saturated.
So now that contracted positions have become the 'new normal' (just check the job boards such as Indeed etc), American technology workers are thrown into the same churn of contracting jobs along with H1Bs. Your best and only hope is to be picked up as a full time employee (as some time of the companies choosing). 'Contract to hire' means pretty much nothing as well as companies don't really need to oblige. Also the normal tactic of most companies is to hire you full time for a salary minus any costs of PTO, Health Benefits, and 401k. This is where salary negotiation essentially falls apart.
Overall, this is a crusher to the American technology worker. I know one would argue the cream will rise to the top, etc etc... but its about money. There is no cream rising anywhere for these companies.
The American worker is pretty much screwed with few alternatives here. The H1B visa holder at least can go back to their country and have made a good bit of money relative to their currencies and obtain higher statuses.
If were were to go crazy and not cap the H1B, I believe technology work in the US would cease for Americans. You would be better off looking at any other industry which pays benefits such as PTO, Health Benefits, and 401k to its employees. And recommending a Computer Science degree to young people? Forget it!!!