I used to think like you. I was a year and a half into my degree and was wondering why I'd ever need to learn what a B-Tree does. Or the algorithmic complexity of merge sort. Or why I'd need to learn Haskell. But, it turns out, you actually do need those things to be a good web developer. I know, because prior to my current job, I was a good web developer (I'm now working on a new test automation suite, but I do web dev on the side), working among a sea of awful web developers (yeah, I would think that maybe I sucked, but I was the person managers called on when they needed a project done on time, or to fix something that someone else screwed up. Customers specifically asked for me). Awful developers had 2 year degrees in CIS, or none at all, or a degree from the local school who has probably the worst CS department in the country (I'm looking at you, UCF. I had a person tell me they had never heard of a tree structure, and had no idea how to traverse one. WTF).
So here's the thing. You can go learn PHP or C# or Java and become a web developer without a degree. And you will probably think you are very good at your job, and you will probably be happy with your paycheck. But then you're going to turn out a piece of shit web app. It will happen, trust me. Everyone, even those with degrees, turns out a piece of shit at first. It won't work right, it will be too slow, it will not conform to UI standards, so on and so forth. Now you're going to have several problems. One, unless you're really bright (which statistically, you aren't), you won't know where to start with regards to making your app run faster, or work better, or do all the things that it needs to do to be a usable app. And that sucks for you, because it's going to take you time to learn that sort of thing, which you could have learned part of in college. And now your employer is going to wonder "why did we hire this kid when there are 10 kids with degrees waiting for jobs? He's no better, and he's costing us time and money". And that's going to suck for you because you are no longer going to be happy with your paycheck. And then someone like me is going to have to fix your shitty web app. So I guess it works out for me, cause I get paid, except that I hate fixing shitty web apps.