Like many of us, I’ve tried to maintain a somewhat active blog enumerating what I’ve been working on, and what I’ve been thinking about.

Despite being reasonably successful at writing posts on a regular interval, I’ve been somewhat unimpressed with the quality of my writing.

As a natural perfectionist, I’ve found it difficult to simply write ‘something’, edit it a bit, and call it publishable. In school, I was forced to go through these motions by hard deadlines. For personal projects like this, I procrastinate to the point where the details of whatever I wanted to write about have long since left my head, and the mental cost of ‘reassembling all the pieces’ is too high.

I’ve found that I tend to want to write after the conclusion of a project, to summarize a month of work into “Yeah, it was successful” or “Here’s what I could have done better”. There’s not much depth there.

What prompted this post was a recent episode of the excellent Talk Python To Me podcast. In it, A. Jesse Davis extols the virtues of writing infrequent, but high-quality articles - not blog ‘posts’.

I found this simple, nuanced reframing of the context of a Programming “Blog” to be quite profound. In many senses, my tweets have taken over much of what would have been traditionally ‘blog post worthy’: a short description of an interesting article, a sentence-or-two rant about a specific language feature, but in essence, a single thought.

Blog posts are no longer ‘posts’, but ‘articles’. They should be specific, targeted, long-form (potentially), and well-written. We now write for the sake of self-discovery and to create content with deep meaning for a relatively small group of intellectually close developers.

Davis also gives 5 article archetypes around which programmers tend to write:

  • Stories
  • Opinions
  • How-Tos
  • How Something Works
  • Reviews

I connected with these types in that they recognize a pragmatic side of writing about code. Not everything has to be - or should be - a think piece. It’s perfectly valid to write about, for example, a cool Python decorator you thought of, or an experience with debugging a strange dependency collision.

Write the technical article you wish you’d found when you were last hopelessly down the rabbit hole of poorly-written StackOverflow answers or Github issue comments. Write about mundane curiosities or chance encounters with a beautiful piece of code. Write to reflect internally and externally about writing code. Write to improve your writing and communication skills.

Find your motivation, and write about it.