"Weedout" Courses Considered Harmful
"The Perils of JavaSchools", by Joel Spolsky, is a wonderfully fun read for students of computer science. A veritable demigod of the software world tells a story -- ringing with appealing truth throughout -- of a tragic fall from grace in modern CS curricula...and at its core, that great deluder Java.
It's relentlessly snarky, and feels relentlessly true, as it lays out in gruesome detail the extent to which kids nowadays are being coddled and left tragically unprepared for the big scary world where pointer arithmetic, abstraction, and recursion are inescapable necessities. It's hard to read it without coming away with the sense that Spolsky has hit upon the great uncomfortable truth in computer science -- that some curricula simply fail to properly train young minds in key concepts.
It's a fun read.
But it's got some problems.
Though I am loathe to disagree with such a titan of my field, I respectfully submit that Spolsky not only misses the broad point of a computer science education, but gets it so badly wrong that he manages to align himself with one of the most pernicious systemic problems facing the field of computer science -- and the broader tech community -- today.
Since I have a great deal of respect for Spolsky, this post turned out very, very long. (Even after I pushed off large portions of the initial concept to other posts.) If you're more in the mood to read a shorter post where I throw out unsubstantiated claims and don't stop to explain everything, I've tried to summarize my main points in a summary-post.
(1)
The heart of the essay is in two early paragraphs:
You