The purpose of a degree is to get knowledge (yes!) but, more importantly, work and get connected with people in the field and get a proof of your ability and the work you put in in the form of a degree.
Now, if you want progress further in the field, maybe you think about teaching or doing research, this is going to be pretty important.
On the other hand if only thing you are going to do is programming for a big co then this is, in my opinion, pretty much a huge waste of time.
You can teach yourself all the skills needed to be better developer than CS degree would ever teach you, better, and in shorter time while working for big co and getting paid at the same time!
Understand that programming in itself is pretty basic skill when compared with other skills necessary to be a good developer:
- debugging complex systems,
- dealing with complexity in large systems,
- getting good at very specific software stack that is used for your project,
- learning how to communicate with your team, your boss, your stakeholders,
- and so on.
Learning those things takes more time than learning how to program and learning them can only be done while working for a company.
On the other hand you can learn to program on your own and if you are really committed, just get a copy of CS curriculum and do it on your own.
There is some worth to having a CS degree (it gets you into interviews more and maybe a bit higher salary). But I think this is false thinking.
First, you only need to find one job. If you exclude all companies that require CS degree there is still huge number of good employers with as good rates to offer.
Second, your CS degree also means you just lost about 4 years of real world experience (I assume you would still need to spend about a year learning on your own before you can realistically start work as a programmer). This additional experience would count as much or even more than the CS degree and it would also be huge economical advantage for you (getting paid instead of getting in debt?)