How I write

Writing is easy. All you do is sit staring at the blank sheet of paper until the drops of blood form on your forehead.
-- Red Smith
Let's get this cleared first. Writing is hard. Whoever says it is easy is lying. There is a lovely book by Sophy Burnham called "For Writers Only" which includes countless quotes from writers on the exquisite pain of the writing life. I highly recommend the book. All the quotations in this post are taken from that book.
I see but one rule: to be clear.
-- Stendhal
Of course, I am not going to talk about how to write great works of literature. For that I am unqualified. I will talk about technical/scientific writing, which is a bit easier and manageable. For technical writing you do not necessarily need to be creative, playful, and poetic. You just have to communicate your points clearly. (Unfortunately, this is easier said than done.)
We do not write in order to be understood, we write in order to understand.
-- C. Day-Lewis
Writing is very important for our careers as researchers. Writing helps us make sense of our research and findings, so we should first and foremost write for ourselves. Writing is also how we document/communicate our results so that others can benefit and build on them. Consequently, writing is what we are evaluated on as academics.
If we had to say what writing is, we would have to define it essentially as an act of courage.
--Cynthia Ozick
While writing is very important, it is often neglected and poorly done.  This is because writing is hard work; it exposes how weak and unorganized our thoughts really are. After all those years of writing, I still feel uneasy about writing.

My trick to writing

When I was a rookie graduate student in the distributed systems field, I was a huge Dijkstra fan. I was a romantic and would strive to write like Dijkstra: think hard, get the entire composition ready in your mind, and write at once (you won't even need to revise because you shall get it right the first time). After a while, I found that this type of writing was not sustainable for me. It was very hard to get started. I would freeze with the pressure of getting it perfect the first time. So, over time, I developed a trick to get my job easier. I became pragmatic and a believer of rapid prototyping.
The more a man writes, the more he can write.
-- William Hazlitt
My trick is not novel. It is essentially freewriting: Lower your expectations and write freely in bulk, and you will be amazed at what you produce.

There are two steps to this type of writing: Mess up and tidy up. The main idea is to separate drafting (messing up) from revising (tidying up).

Mess up

Beginning to write, you discover what you have to write about.
-- Kit Reed
This is the exploration phase. The goal is to jot down any useful idea that can lead to other useful ideas and to produce in bulk. In this phase don't criticize or restrain yourself. Don't worry about good prose, clarity, style, or better wording. Don't correct the typos. You don't need to capitalize, you don't even need to write in full sentences. Just write and accumulate text. After you follow some false leads and take unfruitful paths, you will eventually start putting down some useful ideas, and write more and produce more on top of those ideas.
It's a messy business. You wind up with shoe boxes of scrap paper.
-- Cormac McCarthy
In order to loosen up, you need to go further and convince yourself that you are writing to throw these away, and not to use them. Of course the reality is that usually what you write is mostly not that bad and after some tidying up you reach an acceptable draft.

Tidy up

Kill your darlings, kill your darlings, even when it breaks your egocentric little scribbler’s heart, kill your darlings.
-- Stephen King
This is the focusing phase. The goal is to remove the useless parts and revise the useful parts. Less is more when it comes to writing. In order to keep the writing focused, you have to remove a lot of cruft. Revel in deleting text (it is like deleting code :-), you should be happy if you can explain what you want in less words. (If you are uncomfortable with removing text, try first commenting it out or moving it at a separate junk-text buffer so you can still consider adding it back later. Often you will find that you will be OK removing that text as you grow less attached to it.)

A paragraph is the unit of composition, so start at the paragraph level. Watch the paragraphs form as you get related text together. Reorder the paragraphs and remove some of them. Check that the flow of the writing (the high-level train of thought) is there. While doing this, sympathize with the reader and consider the reader's point of view. Can the reader follow the flow? Or are there places where a reader (a distracted one, or one with different set of assumptions/expectations/background) may diverge. Work out those kinks, or (if you still feel weak/lazy/unsure) write self notes/comments about these issues so you can start addressing them in later revisions.
Easy reading is damned hard writing.
-- Nathaniel Hawthorne
Now that you have a zeroth draft, you can start reviewing and revising. You are now the editor. Forget you wrote the text produced earlier and imagine that another guy wrote it. (Shake your head rigorously, if that works for you.) Do a harsh review of the writing and identify the issues with it. Then go over the writing and try to fix as much as you can.
I have often rewritten --often several times-- every word I have ever published. My pencils outlast their erasers.
-- Vladimir Nabokov
You are almost done. Repeat the revising step a couple more times until you feel satisfied with the writing. Do one more revision even after then. If this is a research paper, send it out to your friends/collaborators to review it for you. They may be able to find issues that escaped your senses.

Bonus tip: Gear up

Give me six hours to chop down a tree and I will spend the first four sharpening the axe.
-- Abraham Lincoln
You will (and should) spend an enormous amount of time writing during your career, so identifying the right tools for your writing matters a lot. An outliner helps greatly for this type of writing (drafting then revising). I found that Emacs org-mode is great for writing and organizing my thoughts. Take time to find what works best for you. If you feel lazy about this, consider this: the physicists had to build telescopes and the Hadron collider as their tools, so they can get things done. Tools are really important, and you should realize that time spent mastering/customizing a tool is not time wasted.
Ever tried? Ever failed? No matter. Try again. Fail again. Fail better.
-- Samuel Beckett
Since writing is also a tool, the advice on honing your tools also applies to writing. The best way to get better at writing is by writing a lot. Write daily. By writing a lot of bad prose, you will eventually learn how to write better and get more comfortable with writing. Take every opportunity to write. Maintain a blog. Read a lot. All the while, be mindful of your writing. Always consider how you can improve it further.

How do I write a research paper?

Writing a research paper requires more discussion: How do you write in parallel with your research? How do you accumulate enough text to get started? How do you structure/organize your paper into appropriate sections. But these will have to come at a later post. (UPDATE: See How to write your research paper post.)
The best part about writing is stopping.
-- Colin Walters

Related posts

Writing advice
How to write your research paper 
How I read a research paper
My advice to my graduate students
My advice to my undergraduate students

Comments

Popular posts from this blog

Hints for Distributed Systems Design

Learning about distributed systems: where to start?

Making database systems usable

Looming Liability Machines (LLMs)

Foundational distributed systems papers

Advice to the young

Linearizability: A Correctness Condition for Concurrent Objects

Understanding the Performance Implications of Storage-Disaggregated Databases

Scalable OLTP in the Cloud: What’s the BIG DEAL?

Designing Data Intensive Applications (DDIA) Book