(For the first time in a long time,) Emma makes some good points here. I did see and love Hackers many times, and I taught myself HTML, and I am pretty good at finding printer drivers, and there have been times when my computer science major has made me pretty frustrated. I’ve seen my class of CS majors diminish, leaving perhaps not the most talented but the most persistent.
Should I be majoring in something else, then? I love philosophy, and I made better grades in it than I ever have in CS; the same goes for English and Latin. Had I the power, I might go back eight years and join the high school band, because I find myself wishing for that kind of musical background now that I realize how much I like it.
I don’t think I’d change anything, though. Majoring in drama has reduced my once-all-consuming desire to be an actor to a gentle tug, but I want to write software more than ever. It comes down to a basic internal need to solve problems by building things, and since I still hate math and can’t do much with a hammer, computers are where it’s at.
So I think the frustration comes not from an inability to grasp memory addresses (which, surprisingly, I do understand) but from a simple and terrifying lack of good teachers. I have loved a few CS classes, but I have yet to find a single teacher in my field who wouldn’t be better off doing technical design (as one of them decided to do) or math research. Meanwhile, I’ve had Munson, Bayer and Becker for English, Latin and Philosophy–three individuals who are not only tremendous talents but instinctively connected people. They love what they teach and they love that they teach, and their impact on my life and on thousands of others comes directly from that.
Why? I think it’s the same reason computer science textbooks are, by and large, horrific and devoid of readability: the generation of people now teaching comp sci is not a particularly social group. Think about it–if you were really into CS twenty years ago, enough to want to get a master’s or even a PhD in it, you were probably also the one with the large glasses, a stutter and two or three left feet.
Am I stereotyping here? Certainly, but it’s not without grounds. I’ve had a few excellent math teachers, but none of my CS teachers, wonderful people though they might be, has really belonged at the front of a classroom. That means that only the really determined CS majors can do enough self-teaching to do well. The whole subset of people who do like programming, but aren’t quite as singularly focused–the same ones who would never have read As I Lay Dying without Munson, who would never have studied Vergil without Bayer–is being lost to programming.
I have faith that things will get better. There are popular, social people in my graduating CS class, and while I hardly think that popularity is a really desirable personal characteristic, the fact is that none of us are actively afraid to talk to people. That’s important for the next generation of teachers. I don’t think we’re the first class with this kind of social compass, either, so it may only be a few more years before people who weren’t beat up in high school are teaching CS.
So what if my major isn’t a bastion of geekhood anymore? I’m all for the bourgeoisement of the science, and if that means even jocks are writing Java, then that’s what it means.
Besides, the geeks are still going to be better at it.