Should coders learn to write prose?

Does spinning a good yarn translate into good code writing?

shakespeare-600x450.jpgflickr/tonynetone
Would this guy have been a great code writer?

If Charles Dickens wrote code, would it have looked something like this?

if theBestOfTimes {

    theWorstOfTimes++;

}

This question popped into my head after seeing this question over on Stack Exchange about whether programmers should take writing lessons in order to write better (more “expressive”) code. I agree with the general sentiment of those that answered that, no, taking writing courses won’t help you to write better code. Writing code, while certainly a creative activity, is very different than creative writing. Being able to spin a good yarn doesn’t translate into being able to write well functioning (and easily understandable) scripts, functions or procedures, though it may make you more popular in the lunchroom.

However, all programmers should know how to write in whatever language their business is conducted. Like it or not, as a developer you have to be able to communicate concepts and ideas, through writing and speaking, to both technical and non-technical folks, alike (dim though the latter may be). Writing technical specs, architecture documents, white papers, technical opinions, end user documentation, etc. are all part of the job, which, it turns out, is surprising to some coding newbies.

This reminded me of the time 25 years ago (this week, as a matter of fact) that I turned up at MIT as a wide-eyed, pimply-skinned freshman. One of the first things we all had to do (aside from unpack our underwear and regardless of what your major was going to be) was to take a writing exam. At that time, MIT had a two-phase writing requirement, one phase of which could be passed by taking this exam. I was a fairly decent writer, so I passed it, but I saw a lot of very, very bright folks fail the test; these people then had to take a writing class. If you didn’t eventually pass the writing requirement, you wouldn’t graduate.*

These days, MIT has replaced that writing requirement for all undergraduate students with a more comprehensive communications requirement. It requires students to take four communication-intensive courses, two in humanities, arts and social sciences and two in the student’s major, that teach oral and written communications skills.

What kind of writing skills (if any) are required of students at other top computer science schools? I took a spin through the undergraduate requirements at a few and here’s what I found:

Stanford has a two-phase writing and rhetoric requirement (boy, I like the sound of that!) so that all undergrads will be able to “express themselves effectively in writing and speech.”

Cal-Berkeley has an entry-level writing requirement that all incoming freshmen must pass. In addition CS majors must also complete a reading and composition requirement.

Carnegie Mellon University seems to be less concerned about writing skills, thought they do requiring CS majors to take a technical communications course. However, any CMU students or grads should feel free to correct me if there are other writing requirements for an undergraduate CS degree that I missed.

So, while the depth of the writing and communications requirements for computer science majors vary across programs, it’s good to see that they all require something along these lines. It really is a skill that you’ll need, even if you dream of being squirreled away to write code alone (or in pairs).

Keep in mind, though, that while writing skills won’t help your coding, per se, they sure don’t hurt your ability to write good - or at least entertaining - comments in your code. If I had known that 25 years ago, I might have taken more writing classes.

* MIT also, famously, had (and still has) a swimming requirement for all students, which is a serious issue for some. Luckily, I passed that on my first try as well. Whew!

Insider: How the basic tech behind the Internet works
Join the discussion
Be the first to comment on this article. Our Commenting Policies