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?