I don’t necisarrily agree. I think a good solid CS degree from a school with a good program is the foundation to a broad understanding of the field. You will then need to go on and specialize to some degree, but flexibility and general knowledge are key. I went from a project where I designed and wrote a Java framework, to another where I did XSLT programming, to another where I did integration architecture and helped make a technical recomendation between vendor products. Who knows what I will be doing next. If you can only handle one thing you will not survive. Now, from a business knowledge perspective specializing can have some benefits, assuming you choose the right field. Right now if you have a medical or financial background and can code you are golden. Who knows tomorrow though…
also I am speaking as someone who went the exact opposite route. I got in during the dot com era, skipped college, learned from books and on the job. I am now back in school finishing up a math/CS degree.
As a final depressing caveat. I am a senior developer with a good resume, but I spend every day waiting to hear that my comapny is going to outsource. I have no real job security, and I cannot imagine what someone out of school with no experience is facing in todays market…
Oh and my school claims that enrollment in their CS department is down 60% from 4 years ago…