My Weekly Goal

I've decided that I want to write at least one post a week. Written communication is surprisingly essential for someone who programs for a living - although it's really not that surprising if you've been in the field for very long.

Or if you think about it for a minute, because developing code is communicating in the written language. The language is just less subtle than English, at least. Though that might actually be a lie.

Consider the phrase, "I had coffee with her yesterday." Depending on the context it could mean two entirely different things. If you're referring to a business colleague, it's likely that you had some type of casual conversation, and likely did some networking. On the other hand, if you used it in the same context as one of the newer GTA games, you might say, "I had coffee with her yesterday," and follow it up with a wink. Which would imply that you had a slightly more intimate experience than just a casual conversation. If you really did just have coffee with someone, you certainly wouldn't want to use the latter form unless you wanted to spread some misunderstandings.

I think that might be why some of the most successful programmers are also really good writers. Because the computer honestly doesn't care what or how you write. You could have a code segment that looks like this

def fire_angry_weasels(badger, broccoli):
    return broccoli/badger

Obviously you're not doing anything with weasels or badgers here. You're simply doing a really weird sort of division. But that makes no difference to the computer. You may as well have written the code like this:

def fffffff(aaa, bbb):
    return bbb/aaa

Which the computer turns into the same operations as it would the first example. The difference that we're concerned about is that it's actually more useful for the poor programmer who has the misfortune of coming back and maintain your code later, because we didn't bother to attach any incorrect English meaning to what the code is supposed to do. If I call a function called fire_angry_weasels I sure as heck expect to see either angry weasels flying out of a cannon, or conflagrated, or losing their jobs. I don't expect to be dividing broccoli by badgers.

So good programming and good written communication have a symbiotic relationship. If you are a good developer that means that you excel in writing code that not only solves the problem at hand, but is also code that is easy to comprehend, make changes in, update, and fix. Being a good developer means writing for the weakest link - other developers (including, and especially yourself). You need to be able to write code that clearly and concisely transmits your intent to people who read your code.

Writing good prose is a similar endeavour. You seek to communicate your thoughts and intents to other people - human beings - in a way that they understand and are moved by the message that you share.

And that is why I want to write at least one post a week. Because I want the practice of communicating my ideas to other people through the written medium.

Who knows, maybe I'll change some part of my world?