Learn Java really well. Learn a visual microsoft language, VC++ should be good. Also learn some kind of web database thing like php/mysql or xml/asp/sqlserver. Knowing ANSI SQL by heart is a big help. Right now I see a big field on making applications for mobile devices. About the college degree, even if you're good at programming with a big portafolio, the degree will help you get the job even if it's not requiered. If there are two people to pick from I would pick the college grad just because you would have more knowledge of other things besides plain programming.