I think one big advantage of doing a CS degree hasn't been mentioned yet. When doing a degree, you spend several years surrounded by very smart people with a far more diverse variety of specialisations than you're likely to get
at a single company. A smart mind can make good use of those resources. And of course if you want to go into academia or research, it's pretty much a must.
You can get a degree by going to classes and writing a thesis and doing nothing else. Then it doesn't have much more merit than the piece of paper at the end, which may give you a slight edge in a job interview. But if you actually open your eyes and look around
while you're there, you can find there's a lot more to be gained than just a piece of paper. And sometimes while doing that, you get an opportunity that you would never have gotten otherwise. Like the opportunity to go study in Japan for a few years.
Just my 2 yen.
> When doing a degree, you spend several years surrounded by very smart people with a far more diverse variety of specialisations than you're
likely to get at a single company.
It gain of it depends. If you've been classes where all teaching staffs having no experience on real world programming, the gain may be negative. (In the "programming project" which worth 6 credits, the curriculum said we shall form groups to produce a website
following the software development cycle. Being taught by someone with no real world experience, while the workflow is the same as on the textbook, the detail is quite "acedemic", I'd say...