okie,
I got into IT because I was a geek programming kid. I did a degree in comp sci and french from an irish university, and then did a phd in the UK (not saying where, that will identify me).
I've decided I don't wanna be a tenure-track slave. As the money for being a corporate slave is better hahah. Seriously, I prefer programming/organising.doing stuff to pontificating on experiments and writing papers.
I did several internships. Basically, in degree/courses you will do programming, but real experience is in the industry, where you elarn all the nice subtle ways in which c++ can shoot you in the foot and fuck you over... argh... learn java, it does its own memory management....
My first intership was with Digital Equipment Corp, they no longer exist, anyway, they gave me bits of stuff to do that the others in the group thought were too boring/basic for them, and they weren't too easy/basic for me. C and C++. Also let me program away to my heart's content outside office hours doing a pet project. Yes, I like programming, I am a GEEK.... Also some Fortran. Don't learn Fortran unless you are planning on specialising in the maths/science field.
Next internship was a bit different as I was in France and I got paid lots more to translate and localise stuff than to program, so I did that. I had a hottie French boyfriend at the time so staying in France was a priority.
After that, I got offered various c++ hacking jobs at my uni, because the prof who supervised my dissertation had lots of industrial type projects going, and the academics need a hacker who doesn't mind working in a uni (not much in the way of promotional prospects there). I did this coz I was waiting for my phd funding to come through, which took a year.
I've been doing various c and perl hacking stuff at my current place of work, BUT the programming/project organisation bit is over now and writing papers is looming on the horizon so a REAL JOB is actually on the cards (as in, maybe even seeing the customer once in a while!).
I would suggest getting a good degree if you can. It will give you basic programming skills which will save you time when you go to write code in the real world - NOTHING sucks more than code written by someone who doesn't know how to indent, lay things out, and avoid the use of GOTO-type statements, urk....
...."fred" is not a good variable name....
Another option, get some certificates. Then start doing a night degree, working your way up from help desk drone to programmer within various companies. Difficult, and long, but worth it....
Re outsourcing to the 3rd world, a lot of the grads out there are not as marketable as people say ebcause their uni's have outdated equipment. cf - eastern europe, produce the world's best mathematicians, coz they have kick ass education, but their technical education sucks, lack of resources.
Best unis in the US are Berkeley (imho best it dept on the planet), JHU (surprisingly), UPenn, Cornell, Ohio (also surprisingly).
circusgirl