Writing Checklist


Massachusetts Institute of Technology


January 2, 2020

I spent a good portion of the end of 2019 and the beginning of 2020 reading Paul Graham’s essays. Many caught my attention (and my fingers to take notes). I want to comment on an essay about advice for good writing. Because it was written in a way that allowed for easy reformatting (ideas separated by ;), I thought it would be cool to convert the prose into a checklist).

Creating the checklist

The main text comes from here. For simplicity, I have only used the main paragraph (aka, copy and paste the second paragraph). I omitted it here because it would be long and you can read it in the native format from the source.

In the code chunk below I comment the steps I took.

# text is copy-paste of the second paragraph
# text <- c("...") ... == copy-paste

# split using "; "
sp <- stringr::str_split(text, "; ")

# To create a checklist
sp <- paste0("- [ ]  ", unlist(sp))
# append markdown title
sp <- c("# Paul Graham's Writing Checklist", sp)

# Capitalize first letter of every sentence
sp <- stringr::str_to_sentence(sp)

If you want to write it to file, you can use writeLines()

# write
fileConn <- file("paul_graham_writing_checklist.md")
writeLines(sp, fileConn)

# If you want to knit to html you can do this
# knitr::knit2html("paul_graham_writing_checklist.md")

Let’s take a look at the product:

# printing for web post
cat(sp, sep = "\n")
# Paul graham's writing checklist
- [ ]  Write a bad version 1 as fast as you can
- [ ]  Rewrite it over and over
- [ ]  Cut out everything unnecessary
- [ ]  Write in a conversational tone
- [ ]  Develop a nose for bad writing, so you can see and fix it in yours
- [ ]  Imitate writers you like
- [ ]  If you can't get started, tell someone what you plan to write about, then write down what you said
- [ ]  Expect 80% of the ideas in an essay to happen after you start writing it, and 50% of those you start with to be wrong
- [ ]  Be confident enough to cut
- [ ]  Have friends you trust read your stuff and tell you which bits are confusing or drag
- [ ]  Don't (always) make detailed outlines
- [ ]  Mull ideas over for a few days before writing
- [ ]  Carry a small notebook or scrap paper with you
- [ ]  Start writing when you think of the first sentence
- [ ]  If a deadline forces you to start before that, just say the most important sentence first
- [ ]  Write about stuff you like
- [ ]  Don't try to sound impressive
- [ ]  Don't hesitate to change the topic on the fly
- [ ]  Use footnotes to contain digressions
- [ ]  Use anaphora to knit sentences together
- [ ]  Read your essays out loud to see (a) where you stumble over awkward phrases and (b) which bits are boring (the paragraphs you dread reading)
- [ ]  Try to tell the reader something new and useful
- [ ]  Work in fairly big quanta of time
- [ ]  When you restart, begin by rereading what you have so far
- [ ]  When you finish, leave yourself something easy to start with
- [ ]  Accumulate notes for topics you plan to cover at the bottom of the file
- [ ]  Don't feel obliged to cover any of them
- [ ]  Write for a reader who won't read the essay as carefully as you do, just as pop songs are designed to sound ok on crappy car radios
- [ ]  If you say anything mistaken, fix it immediately
- [ ]  Ask friends which sentence you'll regret most
- [ ]  Go back and tone down harsh remarks
- [ ]  Publish stuff online, because an audience makes you write more, and thus generate more ideas
- [ ]  Print out drafts instead of just looking at them on the screen
- [ ]  Use simple, germanic words
- [ ]  Learn to distinguish surprises from digressions
- [ ]  Learn to recognize the approach of an ending, and when one appears, grab it.

The checklist is not in strict chronological order, so I might try to reshape it later into something that would make more sense as a timeline. It will render as a checklist in something that is GitHub flavored (e.g., on GitHub). However, I will probably just use it as text file or print it as is.

I also noticed that the link for the Spanish translation is broken/outdated, so I tried my best to translate it. Here it is


I think this checklist is an awesome learning opportunity and a clear path to improving one’s writing. Quite happy to have found it, looking forward to improving my skills.

I got to learn a few cool R things like, 1) I can use writeLines() to write a .md file and 2) stringr::str_to_sentence() is an awesome function.



BibTeX citation:
  author = {Andina, Matias},
  title = {Writing {Checklist}},
  date = {2020-01-02},
  url = {https://matiasandina.com/posts/2020-01-02-writing-checklist},
  langid = {en}
For attribution, please cite this work as:
Andina, Matias. 2020. “Writing Checklist.” January 2, 2020. https://matiasandina.com/posts/2020-01-02-writing-checklist.

Enjoy my creations?

I'm so glad you're here. As you know, I create a blend of fiction, non-fiction, open-source software, and generative art - all of which I provide for free.

Creating quality content takes a lot of time and effort, and your support would mean the world to me. It would empower me to continue sharing my work and keep everything accessible for everyone.

How can you support my work?

There easy ways to contribute. You can buy me coffee, become a patron on Patreon, or make a donation via PayPal. Every bit helps to keep the creative juices flowing.

Become a Patron!

Share the Love

Not in a position to contribute financially? No problem! Sharing my work with others also goes a long way. You can use the following links to share this post on your social media.

Affiliate Links

Please note that some of the links above might be affiliate links. At no additional cost to you, I will earn a commission if you decide to make a purchase.

© CC-By Matias Andina, 2023 | This page is built with ❤️ and Quarto.