Here's the thing about both a degree, and experience - it gets your foot in the door.  Note that you don't have to have a job to accumulate experience. 

Write a program.  Get some people to use it.  Use their feedback to make it better.  Get a programmer you respect to review it and use that feedback to make it better.  Even better if you can get a Microsoft dev to look at your stuff - having someone at Microsoft say good things about you is another good 'foot in the door'.

I don't have a degree.  I was programming before I went to high school, before I went to college.  I will say that a good college CS program will give you some excellent insights into the issues behind the more difficult problems you will see as a programmer. 

I completed more than three years toward a degree at Rice University before I went to work for a startup company during the internet boom.  My three years of dev work there helped me get my foot in the door at Microsoft; as did a friend I had working here.  I started as a contract worker, and after proving myself for six months I interviewed and came on as a full time employee.  I've had a successful career here ever since.

I have another friend I work with who has a PhD in geology.  He worked in the oil industry for a while, but now he's into computers.  The interview is where he really proved himself, but that PhD and work experience - even in an unrelated technical field - was his foot in the door.  What's yours?