Nathan Laundry's Blog


How to Overcome a Fear of Writing: A Programmer's Perspective

Computer Science Writing My-Life-Philosophy

šŸ”„ ā€œI hate writing and I never want to do it again.ā€ ā€” Nathan Laundry 2013 to 2020

And Iā€™m not alone. In Computer Science a lot of us wear our disdain for writing as a badge of honour. Honestly, thereā€™s a sense of comradery in our shared hate for writing. Iā€™d go so far as to say, in the undergradā€™s natural habitat ā€” the lecture hall ā€” you can identify Computer Science students by the distinct groan they emit when an essay is assigned.

A huge part of why I chose to study Computer Science was to avoid writing all together. Growing up I sought out interesting word play in songs and poetry, but highschool Englishā€™s waves of essays on Shakespeare and uniforms scared me away from literature almost altogether. Not only that, I grew jaded by what felt like arbitrary and subjective grading schemes ā€” English class was always my lowest mark. Faced with continued failure I sculpted a story to protect myself; itā€™s all subjective, effort doesnā€™t lead to success in writing, I should focus on better things. Thatā€™s nonsense of course but I was 16, cut me some slack.

When I finally got to the University of Guelph, equipped with my hate for English class and seeking out academic perfection, I only took classes without essays on the syllabus. For four whole years I stuck strictly to programming and applied mathematics classes, cementing a path through my degree without writing a word. It worked, and I loved it ā€¦ that is, until I decided to do research.


šŸ’”I didnā€™t actually hate writing, I was afraid of it.


Research is how writing finally caught up to me. You can conduct all the brilliant studies you like, but if you donā€™t publish it, itā€™s like it never happened.

When I sat down to write my first paper, staring blankly at my the blinking cursor on my screen, I felt a wave of panic wash over me ā€” I didnā€™t know what to say or how to say it. Thatā€™s when I realized I didnā€™t actually hate writing, I was afraid of it. I was a bad writer (Iā€™m still not great), and I had been running from it since highschool. Despsite my fear I was and am determined to do meaningful research. Thatā€™s when I set out to improve.

So, thatā€™s what weā€™re going to talk about today. How do we, as programmers who have either avoided writing or even fear it, improve and learn to enjoy it? Whether you just want to stop freezing up every time you have to write an email, want to write better documentation, or publish your first paper, hopefully these tips can help you like theyā€™ve helped me.

šŸ˜“ Donā€™t try to improve your writing, try to increase your comfort

Iā€™m not a poet or a journalist. My writing doesnā€™t need to be incredible, it just has to effectively communicate my ideas. For that reason, I set my target at comfort, not perfection.

The anxiety I felt around writing was so strong and I had done such a good job justifying it to myself, that I didnā€™t write anything for 4 years! Before we can even think about becoming good writers, we have to be comfortable practicing. With this in mind, all the techniques for practicing writing are going to be based in things that we as programmers are already confident in doing and do regularly. This way we can quell our nerves by focusing on content that weā€™re comfortable with. The improvements will come with consistency and time.

šŸ–Šļø What Do I Write?

ā€œI donā€™t know what to write about.ā€ I hear my friends and colleagues say this all the time. So letā€™s start there. Hereā€™s 3 quick and easy places to begin writing.

šŸ§  Teach what you know. Document what you do. Curate what you learn.

šŸ§‘ā€šŸ« Teach

You consider yourself a decent programmer. Youā€™ve got some languages and frameworks under your belt. Maybe youā€™ve even got some side projects on your github or a research project youā€™re developing. Youā€™re ready to teach by writing about the things you know.

As a programmer in the industry onboarding new hires, or a grad student leading a pack of volunteer undergrads, weā€™re in the perfect positions to write about what we know. Start by writing out guides and FAQs in a lab/company wiki whenever someone asks you something. Have you recently helped someone set up their development environment? Write that up for the next person. Solved an interesting bug? Add it to the FAQ. These little tasks can break the ice and begin the habit of writing.

If you want to take it a step further, you can publish full guides to a website like Medium. Tons of authors do it. Hereā€™s an example of a guide on how to setup a web stack with react and django which many of you will likely already know how to do.

šŸ“„ Document

Weā€™ve all been there. Clone the repo, ā€œcat readme.mdā€ ā€¦ ā€œughh ā€¦ okay.ā€

Documentation is not only one of the easiest ways to start reading, itā€™s also one of the fastest ways to make your coworkers fall in love with you. By adding to documentation for the projects we work on, we can practice writing in a way that helps the people we work with. You can start small by fleshing out the dev environment set up process or go big and map out the projectā€™s architecture. Whether weā€™re new to a project or a founder, thereā€™s always some valuable way to grow its documentation.

Hereā€™s a great repository dedicated to nothing but documentation. If youā€™re looking for some inspiration, or a place to put your documenting skills to work, here you go.

šŸŖ¢ Curate

These articles are both easy to write and serve a valuable purpose.

Research and programming are both practices that require life long learning. As we go about gathering articles, youtube tutorials, and reading the man pages, we can document our learning processes and summarize what we learn. Not only does it help us reflect on what we learn, curating lists of quality resources is a great way to contribute to communities and help others learn too.

I do this with books I read here, and with other sources in my newsletter here.

āŒš Finding time to write

This is the second biggest complaint I hear ā€œbut Nathan, I donā€™t have time to write!ā€ Yeah, I get it. Life is busy and thereā€™s not enough time for everything. Thatā€™s why Iā€™m a big advocate for integrating writing into our existing habits.

Remember, our driving principle is to establish comfort writing. The best way to do that is to create a habit of writing. For developers and researchers I think thatā€™s most easily done by building it into the way we document projects and our learning process. By integrating it into things we already spend time doing we avoid the feeling that we need to find extra time to write.

All of the writing goals I listed earlier are built around things we likely already do as developers and researchers. Teaching new hires and undergrads is part of the job, documentation of new functionality can be added in to pull requests, and learning about your field of research or a new framework is already on the todos list. Instead of starting out by committing to hours of writing alone in your bedroom, tack on an extra 10 to 15 minutes to your existing tasks to write about them.
Conclusion

I started off with a fear of writing, but necessity drove me to overcome that fear. The way Iā€™ve done that is to integrate writing into my routine tasks. I started off by writing emails, documentation, tutorials and FAQs to build up my level of comfort writing. As my confidence grew, I took on more and more writing and Iā€™ve ended up with this blog. By no stretch of the imagination am I a world class writer, but Iā€™m leaps and bounds ahead of where I was when I started. Thatā€™s what matters most to me, that when I need to, I can communicate my ideas.


Cheers,
Nathan Laundry

join my email newsletter #GuidingQuestions here https://guidingquestions.nocodeletters.com/

If you liked this post you may like my previous 2:

Breaking Down the Literature Review
From Undergraduate to Masters/PhD: How to Handle the Mindset Shift

If youā€™re curious how to manage all those opportunities try my Notion Template for managing weekly todos
https://nathanlaundry.com/notion-templates/weekly-sprint-template