I have to agree. I am a self taught php programmer for almost 10 years. When I went in for a programming job interview, the employer (who was a programmer turned middle-management) asked me about OOP structures and algorithyms. I really didnt know what to say because I wanted to show off my experiance, but I was a little embarrassed about my lack-of-textbook-knowledge.
Self taught programmers all have unique skills and experiences, but I think the thing that all of them lack (including me) is formal and enterprise-level programming structures (for example, programming for others instead of programming for yourself). The self taught programmers may not have the prettiest code, but "gosh darn it, it works" (most of the time).
I am all for learning code practices and structures through a classroom environment, but only IF the teachers are teaching CURRENT languages and practices in a way that the novice programmers can "invent" their own methods, then learn to apply what they already know to a solidified structure. Its just like learning a new language (like Japanese). If you're not emersed in it, or just study the book examples, you're not really learning. Its only when you can discover what you're doing and learn where and how to apply it instead of just following the examples that you can truly understand and apply what you know to future situations.