The writer would never, ever, say that about the other professions, such as playing soccer and being a lawyer, to which she compares teaching.
Well, I don't know about this writer specifically, but the between academia and the real world is well known. Actual professional lawyers frequently complain that law school spends too much time preparing students to be appellate court clerks and not enough time on nuts and bolts things like contract drafting and review, even though far more law students will go on to draft and review contracts rather than become Circuit Court clerks. The disconnect between computer science departments and actual tech firms is also substantial, though the variance between schools is large and in almost any school a motivated student can find time for real-world programming instead of mucking around in Lisp or Haskell. Still, there's no course in "defensive programming" in any department that I know of, so it's something that people pick up almost entirely after graduation, or if they're lucky, by osmosis from students who have internships or who read articles on the subject. Doctor's famously resisted Atul Gawande's error-reduction checklist on the grounds that they were already competent enough to avoid most of these mistakes.
Now, neither lawyering or software engineering nor medicine nor teaching can be reduced to a series of rote techniques. They're not sufficient to making a good professional. And they may not even be necessary. But on average they're almost certainly an improvement. Great teachers who haven't specifically learned these techniques are likely to follow them. Great programmers are likely to engage in some defensive practices whether they were taught them or not. But we really have to get away from the idea that just because you have a professional degree means that you've figured out how to be good at your profession. People who have gone to school for a long time like to think that they have some special wisdom they've earned over the years, and that minor tweaks can't possibly make a big difference. But in fact that opposite appears to be true; minor tweaks can turn good surgeons into fantastic surgeons, or good programmers into great ones.
In addition, the specific case of teachers brings up the problem that the US needs a fucking lot of teachers. There are more teachers in the U.S. than there are military personnel, and the education requirements are such that the applicant pool is even smaller. To think that we're going to be able to make a significant improvement in teacher quality without resorting to some mechanical changes that can be taught with relative ease to low-performing teachers is the height of folly. And the same goes for other professions as well.
I can't speak to the other professions, but we'd have better programmers if more of them spent more time mucking about in Lisp and Haskell and less time learning the fiddly bits of the Java Class Library.
That's not to say that there aren't programmers who would have benefited from more "real-world programming" in college and less mucking about in Lisp and Haskell.
I suspect that Amazon is disproportionately likely to hire one of those programmers. At the shallow end of the talent pool, though, most programmers would greatly benefit from mucking about in Lisp and Haskell.
Post a Comment