Production quality HTML, CSS and JavaScript aren't trivial by any stretch of the imagination. A good background in computer science should help out quite a lot.
BS. I was hired as a web-dev to do front-end HTML/CSS/Javascript at the ripe age of 18... and that was to work on one of the most prestigious websites on the Internet, the BBC News Website.
I already had been doing front-end stuff for several years. I wasn't any less able to perform the job than the CS graduate peers who started in the same role the same time as me.
11 years later, I've not done badly for someone with no formal CS training.
I agree with you, which is why I didn't say "should be required", I said "should help out quite a lot". I was responding more to the original posts implication (which I may have mis-understood) that front-end engineering isn't a demanding discipline.
I found stuff I learned in my CS degree helped me understand closures in JavaScript for example, and the compilers course I did has helped out with a bunch of things.
Not necessarily. Learning to program C++, learning how to design a programming language, and learning about Big-O notation are arguably somewhat removed from web development.
I have a BS in CompSci, and I don't feel like I needed to get it to do quality web programming. Design patterns, AVC, etc were all things that I learned outside of my degree.
I think that people's definitions of "quality" web programming vary a lot. Google's Web UI Engineer interviews do ask for C++/Java knowledge, how to design a programming language, and Big-O notation, for example. And then people complain about how Google's interviews have nothing to do with reality.
The thing is - they do. Everything I was tested on in my interview was pretty analogous to something I've faced in my job. If you don't know your server's language, how will you write code that interfaces with the client-side software you're writing? If you don't know how to design programming languages, how do you evaluate various templating systems on the server side or JS libraries on the client side? If you don't know Big-O notation, what'll you choose when faced with the choice of attaching event handlers to each child in a DOM tree vs. using event bubbling and dispatching on the particular target? (Never mind that most Google interview candidates don't know about event bubbling in the first place and wouldn't be able to write a tree-walk if their job depended upon it.)
I'm a web UI engineer. My last two days at work were spent writing a JIT with LLVM for a templating language. Google Wave is all based on implementing operational transforms (a grad-level CS concept) in JavaScript. Maps has a fair share of computer-graphics concepts embedded in it.
You don't need to understand CS to do a web UI, but that limits you to the same type of web UIs that other people have already done. Pulling JQuery or Prototype snippets off the web and sticking them together. There's a whole other level of performance and flexibility you get by understanding the fundamentals, which most web developers completely ignore, and then they wonder why they don't need CS concepts.
I already had been doing front-end stuff for several years. I wasn't any less able to perform the job than the CS graduate peers who started in the same role the same time as me.
11 years later, I've not done badly for someone with no formal CS training.