I don't think you absolutely need a cs degree. Depending on the field it may help. The cool thing about code is its one field were a degree does not matter as much if you have skills and can prove you do with a product of some sort.
Some fields need that piece of paper more then others. If you can come in with no degree but with a functional program/software/game that is badass, nobody cares. At least thats what I think.
It completely depends on what you're working on and what your role is, but typically most developers have experience with at least 1 compiled language, 1 scripting, and 1 database (assuming we are not talking web dev). You should also have a good understanding of data structures and algorithms. You're going to have to be more specific to get a clearer answer.
Most employers these days do have college education as a prerequisite for computer science jobs. Besides, you may find it very difficult to advance in your career without a formal degree. Programming experience and professional certifications will make you more desirable to prospective employers, but I don’t think they are a substitute for a relevant degree in the field. Besides, you will have many more options to choose from once you graduate with a degree in computer science. If you want recommendations for college, I can tell you that California College San Diego is one of the leading institutes offering computer degree programs. In fact, you can earn your computer science degree (http://www.cc-sd.edu/computer-science-degree.html) in as few as 36 months at CCSD.
It is not impossible to get into the field without a 4 year CS degree. For example, you could take more of an information systems / database position with a 2 year degree and eventually be promoted from within. I highly recommend a 4 year degree, preferably in CS. I'm currently pursuing an engineering degree, which is far more involved than necessary. The degree itself won't do much more than get interviews.
Note that virtually all positions have a 4 year degree listed as a requirement. Any other path to a software career will only hurt your lifetime earning potential--and by a lot.
Also, the first thing that comes to mind when people read a question like this is laziness. To become successful in this field, you absolutely have to be serious about learning. You'll need to read, you'll need to listen, and you'll need to think. In other words, if you cannot commit to completing a degree, you probably won't ever commit to advancing your career beyond entry-level, either.
A degree isn't absolutely necessary, but it will certainly help you get your foot in the door.
If you don't have a degree, then you better have something else that will get those doors open for you.
That something else is, of course, some 'sample' or 'demo' that you've written yourself that has enough wow factor to it to overcome the lack of a degree. If you don't have that something else, then your only other option is to look for a job in some support position that will provide the opportunity to get promoted to a junior programming position at some point in the future.
Something like a System Test/SQA job is a good stepping stone into programming (though expect to work in that position for at least 2-5 years). Tech Support jobs are another possibility, though a bit more difficult to make the transition from (they just aren't as closely tied to the development cycle).
The reality though; unless you're some wizbang natural programming genius, 4 years of college is going to be a faster and better paying avenue to a programming position than going the 'independant' route.
There's also a lot of engineers and scientists who go into programming jobs. Since they will have had some exposure during their degree courses. For jobs which also require a high level of numeracy, the engineers and scientists may actually be a better choice than straight CS grads.
This may seem like a stupid question, but I'm naive in terms of computer science careers. I have a B.S. in Psychology and I have decided to change my focus and education goals towards a M.S. in CS. From the small amount of exposure I have had with the CS career field, is a M.S. > a B.S. the same way it is in most other fields?
P.S.: A Bachelors in Psychology wont even get you a free cup of coffee at Denny's in today's job market. It was fun and rewarding to learn about, but honestly I should have pursued CS or engineering from the beginning and studied psychology on my own time as a hobby.
And... I don't think C.S. will get you a free cup of coffee at Denny's anyway... if you want free cups of coffee at Denny's you just need to know someone at that Denny's.