As an American, the visa stuff makes me sad, because it tells me that the system is broken. But what really gets to me, as a newbie developer, is the interview and hiring commentary. It makes me feel like there's just no hope for somebody like me-- I don't have a CS degree and come from the world of humanities and liberal arts. The furthest I went with math in Uni was Discrete. I don't take tests well, and I'm no good with heavy duty algorithmic methodology (though I do know some of them). I don't have any formulae memorized. I tend to think of programming like I do writing: I have great grammar, punctuation, and spelling.
I'm afraid I would fail miserably at these gauntlet-style tests applied by big SV companies. I love technology and I love building things and what I'm doing now, but the path of achievement and improvement professionally from novice to indispensible pro often seems cloudy to me. I think our culture needs to spend more time and money on apprenticeship and helping less experienced developers reach that next rung on the ladder. I'm happy that there seems to be some movement now in that direction, with Khan Academy, Codecademy, Code Year, &c.