Recently, I’ve done three kinds of teaching:
- how to fly airplanes on instruments and helicopters VFR
- third grade mathematics (to 11th graders at the local high school)
- software engineering for Internet applications
I’ve got an S.B. in math from MIT and I’ve built dozens of RDBMS-based Internet applications, so my comparative advantage is largest in teaching math and teaching software engineering. Yet I enjoy flight instruction the most, even though I can give any of my students a list of 10 better flight instructors.
I figured it out today. The students at the local high school aren’t interested in math. They don’t care that an equation corresponds to a set of points in the x-y plane; they just want to graduate and/or pass some sort of test. Most computer programmers, including a fair number of my students, aren’t that interested in a code review from an expert. They are satisfied with mediocrity, a warm cubicle, and a steady salary.
Pilots, on the other hand, want to be better. They understand that being better means staying alive, they recognize that they could do better, and they are eager for feedback and suggestions. So even if I’m not a great flight instructor, the students’ desire to learn makes it a great experience.
I can understand why high school students don’t care. Having looked at the curriculum, it is hard to imagine why they would care given that the unionized civil servants (teachers) don’t bother to motivate the material in any way.
Why doesn’t the average CS major or software engineer care, though? Confronted with an expert such as Jin S. Choi, author of http://philip.greenspun.com/ancient-history/webmail/ (a one-month part-time project), you’d think they’d say “I will work day and night until I am as good as that guy.” But they seem to think that they can get by on 1/10th of Jin’s capability, which has historically been true though with offshoring might not be anymore, and they are more resentful than grateful if you try to push them in Jin’s direction.