top | item 3982354

Please learn to write

516 points| filament | 14 years ago |randsinrepose.com | reply

117 comments

order
[+] edw519|14 years ago|reply
Source of my problems:

  design issues               5%
  architecture constraints    5%
  language shortcomings       1%
  mental blocks               5%
  personal time management    4%
  personal energy             5%
  communication with others  75%
I waste more time just trying to figure out what others are trying to say, sometimes in person and by voice, but mostly in writing. For most emails, I have to click "reply" or call back simply because what you're trying to tell me is so unclear. I think the last time I received a written specification I could actually work from was in 2002.

This isn't a problem of education, country of origin, or any other demographic: almost everyone sucks at writing. It's a real problem.

I suppose the best antidote to poor writing is more writing, especially on-line. Don't be bashful because as OP says, your readers won't be.

Thanks OP for the one "please" post this week that everyone can benefit from. (Did I just end that sentence with a preposition? Need more practice.)

[+] MartinCron|14 years ago|reply
Did I just end that sentence with a preposition?

A preposition is a perfectly acceptable thing to end a sentence with. Seriously. If you find yourself re-writing it as "with which to end a sentence" you're going to come across as stilted and awkward.

[+] mgkimsal|14 years ago|reply
Similarly, I tell people that I can count on one hand the number of times I've had a project fail (or nearly fail) because I or someone on the team couldn't open a database connection, or write to a file, or shrink an image, or what have you (it's happened, but very rarely, and usually because of some arcane weirdness or a truly incompetent person).

Overwhelmingly, projects I've been involved in that failed or nearly failed did so because of basic communication problems - misunderstanding someone, not clarifying, not getting enough detail, making assumptions, etc. Yet these skills are hardly ever taught anywhere. Hard tech skills in schools, certification progams, etc. all cover less than half of what makes a truly useful developer.

[+] Duff|14 years ago|reply
I think you hit it on the head. I'd break down the 75% a little further in my case:

- 25% Poisonous people in key architectural/infrastructure positions who actively make it as difficult as possible to communicate.

- 15% "Mea culpa". I fail to clarify or make an assumption due to busyness, lazyness or missing something.

- 25% Folks who do not take initiative to engage in conversations at the appropriate time. These folks typically pop up with 11th hour critical path problems.

- 35% General nonsense: People incapable of writing english, etc.

[+] barbazfoo12|14 years ago|reply
The way you learn to write well is by reading.

And of course it makes a difference what you read.

Learning how to do anything well takes practice.

But you will not become a good writer unless you read.

As for what you should read,

"Garbage in, garbage out."

What do you think are the effects on your writing from reading blogs like "codinghorror"?

If your aim is to be a better written communicator in business, then you should read business correspondence from good sources.

[+] hkmurakami|14 years ago|reply
Making the online communications situation worse is the proliferation of "short" communication methods (ex: IM, Twitter, FB Status messages, etc.).

Written communication is naturally more challenging than face to face verbal communication. These "short" communication modes make things worse, opening up all sorts of possibilities for misinterpretation and miscommunication.

I felt so shackled by IM conversations, that I disabled GChat earlier this year. I've rediscovered the telephone and how superior it is when I really want to understand the other person. The only modes of only written communication I employ now are blog posts, forum posts, and emails. They all give me the opportunity to thoroughly review my words before setting them free.

[+] backspace|14 years ago|reply
A great engineer is superior to an average engineer mostly due to their communication skills.
[+] mbell|14 years ago|reply
> Did I just end that sentence with a preposition? Need more practice.

For me, grammar is the farthest thing from the real issue. What I find makes it difficult to communicate are situations when the writer/speaker is producing without the understanding that the reader has no fucking clue (or limited understanding of) what they are discussing.

Inevitably what I read or hear in terms of "specs" or "user stories" has an entirely different meaning to the writer/speaker than to the reader. The writer/speaker generally has at least some domain knowledge and often assumes such knowledge that should not be expected of the reader/listener.

Sort of ironic but pretending your someone else "really well" could qualify you as both perhaps insane (under some definitions) and as a really good writer/speaker. The critical point for me is the age old adage "know your audience".

[+] SatvikBeri|14 years ago|reply
I learned to improve my writing quite a bit by using outlines that let me shift through levels of abstraction at will. I write long e-mails and blog posts using mind-mapping software. Being able to re-order my paragraphs & sentences, include or change examples, and step up and down different levels of detail has made it much easier for me to communicate the points I want to make. I've found that this helps even when I'm writing short e-mails or HN comments.

Admittedly my writing doesn't sound pretty. I'm okay with this. My e-mail chains end up much shorter than any other programmer/analyst I know and result in significantly fewer misunderstandings. That's what I call success.

[+] charlieok|14 years ago|reply
It bothers me when other engineers I work with use common terms in ways that don't mesh with their definitions in standards documents.

Please, fellow engineers, read the standards documents, and use terms correctly. Even the ones that you think you know already.

[+] mark-r|14 years ago|reply
This is exactly why Jeff Atwood was wrong. If you can solve your own problem instead of having to communicate it to someone else, you've taken away 75% of the impediment to a solution.
[+] chernevik|14 years ago|reply
"This is a rule up with which I cannot put." Winston Churchill
[+] MartinCron|14 years ago|reply
I'm (primarily) a coder and I've started writing a short weekly newsletter for the users of the application I'm supporting and extending. The basic format is "what happened this week" and "what may happen next week" as well as a "please communicate with us if you have concerns or ideas". I'm now 14 weeks into this experiment, and I've found a things worth sharing.

1. Explaining to your entire user base what you're up to helps you focus your efforts on meaningful demonstrable progress instead of gold-plating.

2. It has been said a hundred times before, but the way to get better at writing is to write.

3. People prefer incremental changes over disruptive redesigns, especially if they are given a heads-up before the incremental changes happen.

4. People care about the quality of writing. I've gotten a bunch of comments about how they actually enjoy reading the newsletter. That was totally unexpected.

5. Tone matters. I've found a good conversational tone that incorporates just a touch of humor and self-deprecation without being too casual. My userbase is non-technical, so I can't leak jargon on them. Metaphors help.

6. Cadence matters. Writing a weekly update is much easier than writing an update "just whenever".

7. Having an editor helps. I generally write the entire message, but pass it along to comrade to send it out to see if anything is confusing, I've made any typos, or forgot to finish one of my sentenc

[+] samspot|14 years ago|reply
This advice sounds fantastic, and I've bookmarked it for reference. Thank you for sharing!
[+] jkeel|14 years ago|reply
One of the best pieces of advice I received for my career was from my university's computer science counselor.

I asked him what I needed to do/study to be better than other programmers. I started asking, "should I study C, Java (it had just come out), etc. He said study something to improve your communication. He said in the real world business just look at you as a computer person. They don't know the difference between a programmer, network engineer, PC support person, etc.

He said anyone can code and the ones that are way better will not be recognized enough by management to make a difference in their careers. Since computer people are sort of known as introverts, just being able to speak well and communicate with everyone will go further than being the expert at language X.

[+] VengefulCynic|14 years ago|reply
Communication skill is a proxy for critical thinking skill - if you can't communicate effectively, your critical thinking skill is either going to be undervalued or underutilized.

For the lack of understanding, communication inputs are misinterpreted, ignored or incorrectly responded to. For the lack of clarity, precision and understandability, communication outputs suffer the same fate. And, as we've learned in networking, inefficiencies in a system (such as the engineer whose emails make no sense, when he/she bothers to reply at all) get routed around.

[+] hkmurakami|14 years ago|reply
Everyone should learn to code. Everyone should learn to write. But we shouldn't necessarily aspire to become professionals in either.

English and Code are tools that are used by others to form the world around us. To understand these tools is to understand this world. To not understand these tools is to be at the mercy of the world's creators.

Knowledge is power; it is both the power to attack and the power to defend. Learn to write and learn to code, not to attack, but to defend yourself in this world.

[+] sitkack|14 years ago|reply
knowledge is energy, being able to apply knowledge to a situation is power.
[+] _b8r0|14 years ago|reply
Being able to write well appears to be a shockingly lacking skill in my industry (pentesting and forensics). It's a really rare talent when you find someone that is capable of writing a good report in appropriate plain business English.

Having that skill is intensely valuable, as I'm sure it is in other areas of IT. How big a role does being able to write well play in your part of the world?

[+] easp|14 years ago|reply
I suppose I could get a blog post out of this, but I can't be bothered, so:

Please learn to use a phone to make a voice call.

I value effective written communication, but part of effective communication is understanding your audience, and in many situations, you audience is only a handful of people. In that case it is a much more efficient use of your time, and theirs, to just have a conversation.

IRC or IM is a reasonable substitute, and a face-to-face conversation, if practical, is even better.

(Writing this in a spare moment before talking to someone face-to-face. Last night I spent the better part of an hour trying to figure out how to address the issue over email before concluding that a short conversation would be more effective)

[+] unknown|14 years ago|reply

[deleted]

[+] timwiseman|14 years ago|reply
"Is there any skill besides coding that allows you to use your ability to make using your ability easier?"

Code is probably far and away the best example, as you point out. But this is true to a lesser degree in areas like metalworking. It is also true to an extent in biology where one biological system can be constructed specifically to help study or mass produce another.

And of course it is true in mathematics, where by moving up a level of abstraction you can develop techniques and knowledge that help in a huge array of problems.

In short, it will be true in any field where the material being worked with is also the material being worked on.

[+] walexander|14 years ago|reply
Absolutely other fields use their "abilities to make their abilities easier". As a coders we live in abstractions and you should be seeing them everywhere.

Writers work with words, but some smart writers invented sentences as tools to help structure them. Some other writers invented paragraphs to structure those sentences. Some even smarter writers invented novels, short stories, screenplays, etc. These are all tools built with writers tools to make writing easier.

The processors you use to run your code are tools made by electrical engineers built with logic gates, which are tools they built on top of electrical components, which are tools themselves. etc etc etc.

[+] autarch|14 years ago|reply
It seems like the skill of building machines would be analogous. There are all sorts of machine out there that help you build more machines, and if you know how to build machines you can improve these machines to help you build better machines.
[+] swombat|14 years ago|reply
There is very little automation required in writing, though.

Writing is for people, not compilers, and people don't like reading the same thing over and over yourself. Good writers don't repeat themselves simply because it's boring (except, of course, in situations where it makes sense to repeat yourself for some specific purpose, but I digress)...

Also, it's not fair to say that there is no leverage effect from writing. As a simple, obvious example, I leverage earlier blog posts that I've written in later ones. This saves me from having to re-explain older concepts, and allows me to reach into more complex concepts, since I have already explained the simpler concepts that the later elaborations rely on.

Finally, it's worth pointing out that the purposes of writing, piano-playing, or coding, are different. Coding is generally a utilitarian activity, aimed at achieving a practical purpose, that can be sped up profitably. Writing and piano-playing are more like entertainment. It's as pointless to speed up piano-playing as it is to speed up a dance.

[+] guscost|14 years ago|reply
To be fair, if I want to apply computer technology to solve certain complicated, real-world problems, I need to know both code and calculus.
[+] eru|14 years ago|reply
> [...] as long as they do something about math's terrible symbol notation...

Which area of math are you talking about? In general you can make up your notation as you go along solving your problems, and only need to use a common notation for sharing your work with other people, and even then a short introduction will usually suffice and you can use your notation.

The standard notation is convenient, and that's why people use it. Historically, it developed writing on black boards and paper and works best there, it doesn't map all that well to ASCII.

[+] sp332|14 years ago|reply
Carpenters and other craftspeople often build their own tools.
[+] chernevik|14 years ago|reply
Many people are commenting that writing improves with practice, and that's true, but it probably isn't enough. The 10,000 hours count only if they're done well. I'm not a writer but here are some basics I've found helpful.

1. Revise constantly. If you haven't revised it three times you almost surely haven't done enough. You don't need an outline, but as you write new thoughts will occur to you, previously open questions will be answered, opinions of priorities will shift. Writing in the Rubber Duck school of programming to the nth degree. All that you discover you already knew should be completely reflected in the final document. This is a very painful thing, you can spend hours on something and be "almost done" when you realize the key question on which all depends, the answer to which requires a complete rewrite of the document.

Note that "revision" often means changing the purpose of the document. You can go from reporting status to asking about key variables driving that status. Text may not be the right medium for the new message.

2. Edit ruthlessly. Everything can be shorter. The time you take clarifying and shortening saves your readers that much and more -- since you, not they, are best positioned to solve the puzzles posed by an obscure sentence, and to summarize an overly long one. If your readers number more than one, the time savings are multiplied.

3. Be very clear in your terms, meanings and references. If they aren't clear, explain them. Did that explanation just blow up your document's organization? Time to revise. Be precise. Your audience does not have your perspective -- your local environment variables are not theirs -- you need to orient them to the topic before you can expect casual references to be meaningful.

4. Much business writing requires an imperative style. At the top, tell your reader the action or decision expected / hoped for of them at the end of the document, and tell them what you will talk about. As you provide information, keep it in relation to the action expected of them. If there is no relation, what is it doing here? If it must be in here, why? and what are the implications for the stated purpose of the document? Is it time to revise again?

At the end of the document, give them detailed instructions about what they should do next -- call at this number, email that address, provide these thoughts, whatever.

Good training in writing is available and worthwhile. If you really want to get better, seek it out.

[+] michael_nielsen|14 years ago|reply
I once asked a well known science writer how many times he will revise passages. He sighed and replied "sometimes, for the difficult spots, maybe fifty to a hundred."

This made me feel much better about my own writing, which often goes through many, many drafts.

It also helped me appreciate Thomas Mann's maxim that a writer is someone who finds writing harder than other people.

[+] jseliger|14 years ago|reply
2. Edit ruthlessly

I would add one more piece to your excellent suggestions: find a skilled editor if at all possible. An editor will find things you won't and offer suggestions based on an entirely different reading history and pool of knowledge. You'll learn much vaster and write much better material with another person to help you than without.

[+] lotharbot|14 years ago|reply
I've found some of the best training available is in discussing controversial subjects (like religion) with a mixed, but curious and respectful, group. The biggest drawback is that it's hard to find such an audience.

One of the best forms of training this circumstance provides is immediate feedback any time you fall short. If you're not clear in your terms, meanings, and references people will respond with misunderstandings. If you're too verbose, they may not respond at all. If your writing is poorly structured, they will be confused as to what point you were trying to make. And if you do a good job, you'll get meaningful and interesting comments and criticism, which will help you refine your ideas and be better able to write about them in the future.

[+] sunkan|14 years ago|reply
" Good training in writing is available and worthwhile. If you really want to get better, seek it out. "

Do you have any pointers for resources ?

[+] dude_abides|14 years ago|reply
This is the most valuable thing I've learnt during my PhD. PhD teaches you:

  research skills                                     50%
  ability to communicate your research to others      50%
In my experience, I've noticed a lot of very smart hackers to be woefully bad in communication, and PhDs to be much better than the median at it. On the other hand, I think there is no correlation between research skills and having a PhD.
[+] jack-r-abbit|14 years ago|reply
An interesting take on the topic. I would tend to agree with it. I've always maintained that it takes a certain something to be a programmer. The specific language is less important if you have a "programmer's mind". I've worked with a bunch of different languages. Once you get over the varied learning curve of the exact syntax and structure, it really just leaves you with the general logic and planning and all the stuff that any app is going to require regardless of the language. These aspects are not as easily learned as things like "always (or never) terminate with a semi-colon" or "white space matters".

But I also struggle a fair amount with remembering all the rules... and exceptions to those rules... and exceptions to those exceptions... when it come to American English. Sometimes I actually have to pause and mentally recite the rules for "its vs. it's" and things like that. I think that comes from there not being a strict compiler for the that. The reader is going to be more forgiving in the sense that even if you misuse its when you should use it's, the reader is going to to understand your overall meaning. Most won't correct you because it doesn't really matter to them. Think about the butchered language that gets used on Twitter to get things into 140 chars. It would be nearly impossible to write an interpreter that would take most tweets and rewrite them in proper English. You have too many variations to make that work. But the reader will probably have less trouble with it.

[+] astral303|14 years ago|reply
The most crucial part is expressing your idea clearly. Being concise. Not wasting the reader's time.

If you have great content in your writing, the reader will treat "syntax errors" as "warnings."

[+] makecheck|14 years ago|reply
Communication isn't one-way.

There are billions of people and plenty of languages out there (nearly 200 are spoken by at least a few million people per language, if you go by the list on Wikipedia).

We live in a world where most co-workers have probably had to claw their way up to their current language proficiency.

People who only know one language can't really complain about poor communication. Both people in a conversation have a responsibility to work at closing any gaps, and frankly a native speaker has more than 50% of that responsibility.

Even if you have learned another language, do you really know how tough it could possibly be? For example, have you learned to read, write, speak, swear and slang in the 2nd language to the point where no one will misunderstand you? And here's the real test: is the alphabet the same as your native language or is it something totally new?

I grew up with English. I spent years learning to read, write and speak French, and while this gave me some appreciation for the difficulty in learning a language it was still the same letters, similar words and a few new rules. I've since invested a lot of time in learning basic Japanese and that is something I'd recommend to anyone who thinks they're an expert at a language.

You have to try something completely unlike anything you've ever seen before you understand what a chore it must be for others to try to communicate with you.

[+] drumdance|14 years ago|reply
The funny thing is we live in an era where more people write more than ever - between Facebook, forums, online dating profiles etc. Twenty years ago the average high school graduate stopped writing anything longer than a shopping list, or maybe a letter, after age 18,
[+] sitkack|14 years ago|reply
but they were probably more diligent in the writing they did do. now writing is trash.

writing is another form of informal speech.

What others haven't said is that, writing is both the formulation of logical thoughts and the communication of those thoughts so they can be understood by another person. Writing and logic go hand and wrench.

[+] angusgr|14 years ago|reply
Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.

-- Conway's Law ( http://design.caltech.edu/erik/Misc/Conway.html )

First reading this adage was a relevation. I realised I've never worked on a technical project that wasn't constrained by it. This post/discussion reminded me of it again.

[+] einhverfr|14 years ago|reply
Writing strikes me as providing different fundamental skills. Here's the rub: computer languages are entirely prescriptive-- behavior is defined by the compiler. Natural languages are defined entirely by usage and here the descriptivists rule. Even in hyper-defined jargons like legalese, interpretation matters and there is no single, objective reference point.

I believe everyone should learn to code trivial programs. I also think there is great value in truly mastering one's own language (and I say this as one who can fluently read Middle English and who can parse my way through Old English given some time). But they are different skills. You can't get them all from one or the other.

If you want to compare writing to programming, then you should consider comparing it to writing portable software in a language where every reader has coded his/her own compilers based on their own unique understandings of the standards! But writing isn't the same as coding.....

[+] conradev|14 years ago|reply
I often find it annoying in writing and in speech when people don't know the correct technical terminology for an idea they are trying to express, when they ought to.

Believe it or not, there are people out there that write Objective-C, for example, and don't know what an "instance variable" or a "class method" are by name.

[+] nosse|14 years ago|reply
A while a go I saw this article that told that strongest correlation with economic success now is with reading skills within that nation in 1900. (sorry I lost the article)

What is the reading of today? I think it's coding and here's why: A young person is good at school in two things, math and biology. She thinks that a career of mathematician would be little boring, so she chooses to become a biologist. She doesn't ever think about becoming an engineer because she never had to do anything that would have indicated that shes good at it.

Now how about a school where people have to learn to code just a little. Suddenly the people who are naturally talented at it start to do it. Not just the people who think it's cool because their elder brother codes. People have a strong tendency to do things they are good at. But only if they know they are good at it.

[+] augusto_hp|14 years ago|reply
The next great thing will be a post titled: "Please: stop with 'please' titles"
[+] sukuriant|14 years ago|reply
And then the next day, we'll be surrounded by posts about the first time a person used the word 'please', and why another person continues to use please, and another post encouraging the use of please more often...

And HackerNews will have been successfully trolled again.

[+] benthumb|14 years ago|reply
What's the difference between coders and the population at large? My thought is that it's the difference of problem granularity/scale/scope. In general, computer programmers are interested in solving bit-based problems, the rest of the population not so much.

That said, my opinion is that 'programming' in the broadest sense is a native capacity of humans and therefore is not special. If you haven't realized by now that algorithms == recipes == best practice methodolgies == etc. you're missing the forest for the trees: programming is systematic problem solving period. C# mavens aren't the only ones who program; we all do.