Both the summary and some commenters make the same huge mistake by putting IT people and programmers in the same bucket. A C++ programmer has completely different skills and responsibilities from a PHP/HTML programmer, who has a completely different job from a network/system administrator. The latter could be considered IT (and their pay is usually lower), whereas the former are developers (requiring extra creativity and more skill, and are better paid). In my experience working in the Bay Area, there really is a shortage of competent high-skill systems developers/programmers (the kind of guys who design Google and Facebook infrastructure, like Big Table), but not a shortage of PHP or Java programmers or sysadmins.