Much of the foreign work is pretty crappy (their schools are *way* behind ours and less folks can afford to buy their own tools to become self taught).
Ever heard of IIT? Probably the best engineering school on Earth, and IIT grads are some of the world’s biggest movers and shakers. IIT applicants who can’t quite make the cut frequently end up at MIT and Stanford. There are excellent engineering schools all over the world, not just in the US.
The reason Americans aren’t applying to engineering or CS programs like they used to isn’t because they are lazy or stupid. It’s because those jobs are perceived as being difficult, not lucrative and lacking in prestige and security. Again, there is no shortage of American medical school applicants, and everyone knows how tough medical school is. The reality is slightly different of course, engineering can be very lucrative, especially for those with a lot of experience. The problem is mainly one of perception. Almost every day in the media, there’s a story about engineering jobs being outsourced to India or China. Americans (despite their reputation) aren’t stupid and when they read these stories over and over again, when they see their parents getting laid off, they won’t choose that profession.
Keep on telling yourself that some jobs are safe from outsourcing. Pathology and radiology work are being outsourced. Legal work, actuarial work, pretty much any professional job can be outsourced now. Doing laundry? Picking strawberries? Mowing the grass? You might be safe.