> with the boom in startups lately, a degree is seldom necessary

This is true. What do you do when the boom ends though? Companies went through layoffs in 2008, in 2000-2001, in the early 1990s etc. What will you do once you're married with kids, laid off and then any job opening available needs a college diploma. Yes, you're OK for the next year. Will you survive the next downturn though, and the one after that?

> In addition, during these 3 years I could optimize for my specific niche: iOS development

Specialization is good, but you never know what might happen. Whether or not it's likely, it's conceivable Android could kill off most iOS jobs in a few years. At that point a broad underpinning of CS theory and a diploma are helpful. Will you be doing iOS development 20 years from now? It's hard to say.

> kept up with individuals that have over 15 years of experience in the field with degrees

Some people get degrees without ever seeming to have learned much. It's not something that should affect your decision one way or the other. When time gets tough and Craigslist job postings start saying "BSCS required", an e-mail from you saying that you have "kept up with individuals that have over 15 years of experience in the field with degrees" is not going to mean much. They'll be knee-deep in resumes of people who have a BSCS. Yours will go right to the waste bin, in many cases.

> I'm forced to take things that don't interest me like psychology...half of the work that I put in won't even be relating to my field

Most of the pioneers of computer science did and do have an interest in human psychology - Marvin Minsky, Noam Chomsky, John McCarthy, Alan Turing and on and on. I'm not sure how you came to the conclusion, two years into a CS program and without knowing what the psychology course was teaching, that it was irrelevant to computer science.

> Every adult that I talk to (all of whom have degrees) swear by them and say how they're such a great fallback but I'm having a hard time connecting the value, especially in the field of computer science.

When the economy goes south, it is better to have a degree than not to. Also, while theoretically someone can do a program of self study, I've never met anyone without a CS degree who understood pushdown automata, theory of computation and so forth. It is helpful to have an underlying intellectual framework. It is possible to be a code monkey who can put together for loops and if statements in PHP or Objective C and so forth, and make money doing it, but an intellectual framework allows people to do more. I see people self-studying practical things such as learning a programming language, but it's very rare for someone to spend months studying theory of computation, or representation of floating point numbers, or formal mathematical definitions of computational complexity, and so forth. So there are gaps in their knowledge. They can muddle along, but then one day they will have a critical race condition crashing their program. As they never studied mutual exclusion, they will only have a vague idea of what will do. Software in general is famous for mutual exclusion bugs, precisely because so many people who don't know what they're doing can jerry rig for loops and if loops together to get something going, but have no deeper understanding of theory, architecture and so forth.