http://qs321.pair.com?node_id=540810

is in my opinion, this: The Perils of JavaSchools. Courtesy of Mr. Joel Spolsky..

His thesis boils down to this statement from the post: "I've seen all kinds of figures for drop-out rates in CS and they're usually between 40% and 70%. The universities tend to see this as a waste; I think it's just a necessary culling of the people who aren't going to be happy or successful in programming careers." The reason for those dropout rates?

"You used to start out in college with a course in data structures, with linked lists and hash tables and whatnot, with extensive use of pointers. Those courses were often used as weedout courses: they were so hard that anyone that couldn't handle the mental challenge of a CS degree would give up, which was a good thing, because if you thought pointers are hard, wait until you try to prove things about fixed point theory."

A sensible course of study in any subject starts with basic concepts and moves by steps to the most difficult topics. The monastic metaphor of perlmonks.org reflects the idea of helping individuals move forward. One makes progress initially by mastering the basics and a process of trial and error. Naturally, more difficult topics are likely to take longer to master. I'd be willing to bet that there are any number of monks who are happy and successful in programming careers who didn't bother with a jaunt through an institution that espouses Spolsky's elitist views on higher education.

In my view, the inability of a student to master a subject can be as much a failing of the teacher as of the student.

Edit by GrandFather - removed gratuitous br tags.

2006-04-03 Retitled by planetscape, as per Monastery guidelines
Original title: 'Worst blog post ever on teaching programmng'

Update: jeffa and dragonchild's comments about the need for colleges to manage class sizes are reasonable. To me, the way to handle the problems they raise can be solved in a different way than making an entire class obscenely difficult. In a lower division physics course that I took, the course materials and routine assignments were doable by anyone who put in the right amount of time. However, the final exam as it was designed presented several problems that had aspects that had not been discussed in class. The result was that you had to use both your class knowledge plus your problem solving skills to complete the exam. I thought that was a fair way to stratify the grading curve and thus provide the faculty with a way to set a cutoff point for admission to the higher division. The point being that the faculty expected that everyone in the class could learn the basic material.

With respect to brian_d_foy's comments, I carefully re-read my phrasing and I want to clarify that I don't think of Spolsky as an elitist generally. I was simply referring to his views on CS education. Plus, after re-reading the blog post, I think it is at least partly tongue-in-cheek.

Spolsky mentions "all-Java" schools. I certainly hope there is no such thing. Students should certainly be exposed to more than one programming language in a degree program.

I have changed the title of this from "Worst blog post ever on teaching programming." I admit, that was a little over the top. Hopefully, the new title is more reasonable.