Tuesday, May 15, 2012

Matters of more substance...

I was having a discussion today with the inimitable Mr. Teacup over on Twitter. I decided to summarize my thoughts in a less compact form, thus also giving him room to respond in more than 140 characters, and perhaps we can have a pleasant discussion. Or a well-reasoned unpleasant discussion, or who knows what, but at least we'll have room for it.

I don't know much of Mr. J.W.R. Teacup, Esq., but he has generally proven to be a well read and thoughtful dude, albeit perhaps further steeped in Marxist theory than I normally go for. (I'm more for pu-erh, or a nice chamomile. Marxists are often terribly bitter when oversteeped, although they add a pleasant flavor when part of a blend of other thinkers.) He is not, to the best of my knowledge, an engineer of any flavor, although it's quite possible. Which brings us to the current topic of discussion.

We were both holding forth on a subject somewhat near and dear to my heart, the question of whether everyone in the world should learn to code. He initially pointed out the post by Jeff Atwood titled "Please Don't Learn to Code" in which Jeff, a programmer himself, rightly points out that most people will never need to code, will be terribly bad at coding, and probably ought to focus on other things in life. All of which I hold to be true. However, I still believe everyone in the world should learn to code.

Actually no. I don't believe that. Here's what I do believe. Everyone in the world should be exposed to the practice of logic, of critical thinking, of problem decomposition, of forming hypotheses and testing them by painstakingly changing one variable at a time. The reason why I advocate for programming over any other science or engineering discipline is as follows. Computers are ubiquitous. Computers, at least these days, are pretty much unbreakable to a novice (ah, those halcyon days of setting IRQs by hand!) You can make a mess of things in your little sandbox, but a reboot will fix almost anything you may have done short of deleting your hard drive. Code is highly repeatable, unlike frogs. Type the same line of code 10 times, and it will do the same thing. And the behavior of your code is not already known, unlike the laws of physics, so you can't cheat by looking it up on the internet or in the back of the book. And you don't even need to know algebra!

This makes programming a superb microcosm for teaching and demonstrating the principles of certain types of well structured thought at a fairly early age. I will cheerfully agree that most people will suck at writing code. However, I believe that the process of learning how to write code will make them better people in a fundamental way, similiarly to the way that learning to critically read Stendhal will make them better people, despite knowledge of Stendhal being one of the most useless things known to man. The act of critical thought in and of itself, the ability to analyze, dissect, and be aware of one's own assumptions is a key part of an education, and one that I think is sadly lacking from both engineering and the liberal arts. Engineers avoid literary theory, claiming it's full of unwashed anarcho-Marxist hippies, literary theorists decry engineering as an oppressive tool of patriarchy and false consciousness, and both sides lose out on key intellectual tools.

5 comments:

Beth said...

And here I'm thinking everyone needs to study Marx!

Unknown said...

I think it's good for people to read Marx. I also think it's good for people to read Ayn Rand. Ideally, they'd read both critically, at the same time (along with other works of philosophy and political theory, of course), in a venue that allows people to think about them and discuss them, with a diversity of thought in the room. Sadly, each is usually read during mid to late adolescence, in an echo chamber, and gets turned into a cartoon version of itself that the youthful convert then uses to espouse all sorts of daft nonsense.

Using the tools of deconstruction can be great for sussing out subtle coercion and prejudice in science. But critical thinking skills from science can also be used to suss out the problems in grand philosophical ideas. Questions like "where does this happen in the real world?" and "why does it only work that way some of the time, and only in Western cultures?" can yield a lot of insight into what a theory does and doesn't cover.

Mike said...

Hi Aleatha, thanks for taking the time to write this blog post! These issues are definitely worth talking about in more depth than what's possible on Twitter.

I'll start by saying that I actually do know how to code. I've been programming since I was a kid, my undergrad degree is in computer science. I say that because I don't think my opinion on the issue fits easily into the pre-existing division between engineering people and liberal arts people, and the lack of mutual understanding.

I agree that the process of learning to code helps people develop a certain kind of disciplined, rigorous thinking which can be quite valuable. You can definitely make a kind of liberal-arts-friendly argument about building critical thinkers. But I've seen a lot of hostility towards the liberal arts from engineers, which makes me highly skeptical that this is ultimately why they're pushing for everyone to learn to code. In my experience, a lot of engineers are fairly hostile to the liberal arts, partly because they see knowledge as valuable if it gives you power, which I take as an anti-intellectual position. (This is obviously not universally true, there are plenty of exceptions. I know, because I am one of the exceptions. But there is a vocal strain of hacker activism where that kind of viewpoint is quite common, and the values and beliefs of this avant garde who are engaged in a kind of social change are probably more significant than the characteristics of all engineers.)

So the argument that learning coding is a liberal arts kind of activity could be taken in a different light, as a further argument for the irrelevance of liberal arts. Students can learn critical thinking while they are learning valuable workplace skills, so why do we need the humanities at all?

While granting that coding itself may have some benefits, I weigh that against the culture of software engineering that students would inevitably be exposed to that is so often hostile to other ways of thinking. Looking at the culture of engineering might be a way of empirically evaluating this claim about the effects of learning to code. When it comes to issues of power, sexism, racism, capitalism, etc. to me, the engineering community seems profoundly complacent. Not only is there a lack of critique, there is a vocal strain that seems to have this desire for cultural and political hegemony. If you are like me and think political and cultural issues are vital, it's hard to see how learning to code really advances that goal - liberal arts seems better at that, although I'm wary of overstating how much better.

Unknown said...

Sorry for the long delay in reply! I've been fighting a cold, among other things.

So, to my mind, there are handful of questions on the table. The first is, is there a tangible benefit to learning rigorous thinking, and can you learn this from engineering? You and I appear to both agree that the answer to this is yes.

The second question is, can you also learn the same kind of rigorous thinking from the liberal arts? You appear to be saying yes. I don't actually agree with that. I think the liberal arts teach a form of rigorous thought which is somewhat orthogonal to engineering thought. (Unless you count formal logic as a liberal arts field. However, it's rarely taught as such, so I have deliberately left it off the table.) The liberal arts encourages exegesis and deconstruction, taking something apart and extracting every bit of meaning from it. It encourages debate, point by point. But it doesn't encourage things like methodical investigation, trying variations one by one to see what works.

The third point that you bring up is whether there is a: a hidden agenda at work, and b: whether that hidden agenda outweighs the benefits. I'm willing to grant that some measure of the support for everyone learning to code is coming from people who would dearly love to wipe the liberal arts from the face of the earth. (Although I think you may have over-stated the percentage.) However, I don't think that teaching computational thinking will actually give those people any more leverage than they already have towards wiping out the liberal arts. These are people who don't believe that the liberal arts actually teach anything of value, critical thinking or otherwise. As far as they're concerned, you're all a batch of woowoo Marxists who believe in quantum telepathy and moon power, and want to stamp out all the white people, and your emphasis on deconstruction is just a sign that you're eating your young.

Now, having said all that, are you forced to submit to their judgement, and does that outweigh the good of learning programming? By no means, in my book. Teaching computational thinking doesn't have to result in absorption into the greater hacker/engineer culture, and while there will probably be some cross-exposure, I think that might be a good thing for all involved. There are certainly enough crossbreeds to bootstrap a separate subculture while still teaching programming. There is nothing stopping the philosophy department from teaching formal logic again, or the literature department from teaching "Computational Lingustics for Feminist Studies" (in which we learn that 19th century English literature all fails the Bechdel test, and have the statistics to prove it.)

But from my perspective, the liberal arts have cut off their nose to spite their face, and will not use the additional tools at hand, because they find engineers so personally loathsome. Critical reading and statistical textual analysis are in no way at odds, but I've never heard a liberal arts professor express anything but horror about mathematics, in much the same way that engineering professors express horror about literary analysis.

However, there's something I was hoping you could clarify. When you say "engineers are fairly hostile to the liberal arts, partly because they see knowledge as valuable if it gives you power" are you implying that liberal arts are devalued because they don't give you power? Or that engineers are trying to hoard knowledge from liberal arts people, to disenfranchise them?

Mike said...

To your 2nd question about whether liberal arts & engineering teach the same kind of thinking, I am actually not saying that. To me, that would imply -- quite dangerously, in my book -- that engineering education is the best of both worlds, teaching rigorous thinking along with marketable skills. I agree with you that in principle there's no reason why education can't be inclusive & teach liberal arts & computational thinking side by side.

But I don't think that representing the dispute as an engineering professor & a liberal arts professor who express mutual disdain for each others' methods accurately captures it's history. Science is often reductionistic, which in practice means eliminating some disciplines. Logical positivism was very influential in limiting what would be allowed to count as a meaningful statement. In philosophy, the forcible expulsion of continental philosophers by the more logically minded analytic philosophers from philosophy institutions created an enormous rift between the two. American philosophers who work in the continental tradition are essentially unable to get jobs in the majority of philosophy departments - that's why they end up in departments like literature, film, sociology & so on.

So, it doesn't surprise me that feminist scholars wouldn't be interested in using computational linguistics. The humanities has been pretty effectively marginalized & they'd rather spend their resources keeping their traditions alive rather than furthering the agendas of the tradition that wants to eliminate them. We can see this disparity play out in federal funding, which allocates in the range of $140 billion for STEM research, & $1.6 billion on art & culture, & also in the social status of scientists compared to say, historians.

Wanting both sides to meet in the middle seems a very fair approach, but it ignores the dramatic differences in power between the two. Based on federal funding, a better analogy is not 1, but 100 engineering professors against 1 liberal arts professor.

To me, the best summary of the goal of liberal arts education comes from the Roman playwright Terence: "I am a human being, I consider nothing that is human alien to me." Based on this motto, computational thinking ought to be included, since making it into something alien, as your horrified liberal arts professor does, goes against this goal. I believe that it is profoundly human, because that has been my personal experience.

The problem is that the engineering professor is more committed to eradicating ways of thinking that are also profoundly human because they happen to be erroneous, harmful or impractical from the standpoint of doing good engineering. As someone who has a very broad set of interests, I could never accept those kinds of limitations. I've seen both sides of this divide, & it is certainly true that liberal arts people often do not understand or appreciate more methodical ways of thinking & doing. But no-one would dream of seriously arguing for eliminating STEM disciplines, something that happens with depressing regularity for the humanities.

So I don't believe that this is a dispute where both sides are equally guilty & each should put down their rhetorical weapons & meet in the middle. After going through engineering education & working in companies dominated by engineers, I believe that the goal of equality between the two can only be achieved by taking the side of the weak, not by looking for a neutral middle ground. And since the humanities is far more likely to be critical of power, this is also a way for me to advance my personal political commitments.

Of course, I am aware of the knee-jerk dismissive attitude that some people have towards writing & thinking about Marxism (or worse, psychoanalysis). I'm fine with this -- it's their loss rather than mine.

Regarding your last question: I think liberal arts is devalued because it does not give you power.