Designing (engineering) large-scale software systems is a high level job. Implementing the system's guts in the latest commodity language (Java and C#, for example) is not as high level.
There is a world of a difference between Programming and Software Engineering.
My concern is that when all the 'low level' programming and tech support is outsourced to other countries, how do you climb the IT knowledge ladder? All of the finest IT people I know started at the 'bottom'. There's gonna be a lot of lost knowledge and understanding at some point.
The currently outsourced 'low level' IT people will be at a distinct advantage when the 'high level' jobs need staffing.
The IT Industry in the US is in trouble in the future.