Yes, there is some degree of generalization involved, needed to discuss this in a forum thread, but in my opinion one of the two mistakes is way more serious. I believe you understand what I meant.
Indeed, a good CS program is a great foundation for becoming a programmer. But CS is not about programming, at least not in the sense that gets discussed when Spolsky laments the "perils of Java Schools". Also, a CS researcher may not even be particularly interested in actual programming languages, preferring to focus on theoretical matters. Some of them are barely distinguishable from applied mathematicians.
People who want to learn programming may get impatient when they are taught about graph theory, lambda calculus, big-O, Turing machines, algebra, calculus, statistics, computability, etc. Not saying they necessarily will, and in fact all of this may surprise them in a good way, but many times -- which is what you often read in this kind of articles -- they become frustrated: "what is this nonsense? Why don't they teach $LANGUAGE? Everyone is using $LANGUAGE! All these CS types live in their ivory tower and don't even understand what is being used to build $MOBILE_PLATFORM apps! None of this helps me get my startup running!". The conclusion is obvious: academia "doesn't get" the real world.
In reality, however, it's more of a case of mismatched expectations. CS is -- if you look at it with squinty eyes -- a kind of applied mathematics; one in which you get to play with both idealized and real-world computers. Ok, that's another oversimplification, but it's no coincidence the founding fathers (and mothers :P) of CS were mathematicians, logicians, physicists, and the like. They would scoff at the notion that "you don't need Calculus".
It's perfectly fine to find the research/theoretical aspect of computers uninteresting. It's perfectly fine to want to learn Ruby/C++/whatever and just build your site. But it's not fine to go into CS, and find it too theoretical because they don't just teach you Python (or whatever language is currently being used in the real world), or force you to sit through algebra. In that case, you simply picked the wrong career path, and it's not academia's fault.
Indeed, a good CS program is a great foundation for becoming a programmer. But CS is not about programming, at least not in the sense that gets discussed when Spolsky laments the "perils of Java Schools". Also, a CS researcher may not even be particularly interested in actual programming languages, preferring to focus on theoretical matters. Some of them are barely distinguishable from applied mathematicians.
People who want to learn programming may get impatient when they are taught about graph theory, lambda calculus, big-O, Turing machines, algebra, calculus, statistics, computability, etc. Not saying they necessarily will, and in fact all of this may surprise them in a good way, but many times -- which is what you often read in this kind of articles -- they become frustrated: "what is this nonsense? Why don't they teach $LANGUAGE? Everyone is using $LANGUAGE! All these CS types live in their ivory tower and don't even understand what is being used to build $MOBILE_PLATFORM apps! None of this helps me get my startup running!". The conclusion is obvious: academia "doesn't get" the real world.
In reality, however, it's more of a case of mismatched expectations. CS is -- if you look at it with squinty eyes -- a kind of applied mathematics; one in which you get to play with both idealized and real-world computers. Ok, that's another oversimplification, but it's no coincidence the founding fathers (and mothers :P) of CS were mathematicians, logicians, physicists, and the like. They would scoff at the notion that "you don't need Calculus".
It's perfectly fine to find the research/theoretical aspect of computers uninteresting. It's perfectly fine to want to learn Ruby/C++/whatever and just build your site. But it's not fine to go into CS, and find it too theoretical because they don't just teach you Python (or whatever language is currently being used in the real world), or force you to sit through algebra. In that case, you simply picked the wrong career path, and it's not academia's fault.