Yes, it most certainly does. In the long run, the developer with the better grasp of fundamentals (e.g., discrete maths, data structures, algorithms and so on) will produce better code. NB, I'm not saying that the "naive" web coder can't produce good code. Nor am I implying that CS education always makes you a better developer. On average, however, that's exactly the case.
Even with generic web 2.0 stuff.
1) Do you receive magic fairy dust during college that makes you more productive and removes bugs from your code? No, I don't think so.
2) Will someone who knows the things taught in a typical 4-year undergraduate CS education be a better web developer? Obviously (?) yes; you can look at any of them and clearly see that they are good things to know. Will you point to some particular thing that you think is useless? Let me list some that seem reasonable for a lot of web development: non-trivial data structures, for understanding databases; experience with multiple languages; continuation-passing style; general system and network architecture (e.g. the OSI model) -- and so on.
If by "web developer" you mean writing http://www.hasthelhcdestroyedtheearth.com/ then I guess no, you don't need to know much about anything for that.
That is why the matrix is conveniently broken into specific sections.
Your post is missing any supporting arguments for this claim.
I know a lot of 'Rails guys' and their dreams certainly aren't crashing down. If anything, they enjoy their lives more because their programming education has been focused on making things, before making things fast.
Conversely, there's a lot of guys with CS degrees who ended up jaded with the idea of making things and became Unix admins, mid-level managers, or PMs.
We all know rails has problems with scale, and that these problems can be overcome. The way to overcome these problems is through optimal and performant coding/data-storage patterns, and to practice these one requires knowledge of CS-type matters.
Now Rails or Rails-esque apps obviously will not encounter these issues until they reach a certain size. Therefore unless one has the requisite CS-style acumen, one's projects have a cap on their maximum success/popularity.
Assuming that when we say "dreams" we are referring to hackers' projects becoming big and successful and popular, (thats what everyone around here seems to dream about,) they will not be realized without someone around who knows their big O from their divide and conquer.
If you can make something (or likely many things, quickly) you can be lucky enough to get the point where scale is a problem. At which point you can pick up these skills where you need them - they're not difficult, especially if they directly apply to a problem domain you're working on rather than a arbitrary one.
The Rails guys I know who these issues typically end up with a quick move to JRuby and pick up what they need.
If you can't make something quickly, all the premature optimization won't help you with the problems you'll never have.
I also believe that teaching algorithms before logic and engineering concepts is wrong.
I would rather hire someone who has made more apps than someone who has excellent knowledge of algorithms but has made no apps. Would you?
This is rather a false dichotomy, isn't it? Who can obtain "excellent" knowledge of algorithms without ever making anything? Very few people can learn so much without ever doing.
Nobody is suggesting that it's better to not make something than to make something. The real suggestion is that it's better to make something good that you won't have to throw out later than to make something substandard, born of ignorance. Having reasonable background knowledge about algorithms, data structures, and architecture makes it much easier to get it right than if you're solving those problems as you come to them.
> Nobody is suggesting that it's better to not make something than to make something.
Certainly. But they do focus on optimization as the core of programming. It isn't - turning logical problems into code - aka, making programs - is.
However, I think your specific example doesn't reflect the argument I imagined you making. Your comparison is someone smart who doesn't know the tools (Ruby, Rails, Javascript) with someone who knows them well. If it were a short project, at least, I agree with you; I'd probably take the guy who knows the tools.