How to Write a Good README File?

How to Write a Good README File?

Daily short news for you
  • Maybe I've found a way to sleep deeper every night: Reading books before bed 😨

    I don't mean that just picking up a book makes you sleepy. There are nights when I read until 1 AM and only realize it's too late. After reading for a while, when I feel my brain can't take in any more information, I naturally fall asleep. Another advantage is that when I close the book, shut my eyes, and stop overthinking, it's easier to drift off to sleep.

    » Read more
  • Looming around Rust on Github, I found many interesting repositories, everyone! Rust is truly made for those who love to create tools and enjoy some mischievous speed.

    For instance, there's the starship.rs mentioned in the previous article about migrating away from oh-my-zsh. And then there's eza - a replacement for the ls command, and zoxide as a replacement for cd... Once you get used to them, it's hard to go back 🫣

    » Read more
  • Maybe after this draft I'm working on, I will spend about a month refining some blog posts. During that time, I won't be able to write posts regularly anymore.

    Oh, but this Threads section will still be continuously updated for everyone, right? 🔥

    » Read more

Problem

The README file is one of the most important files in any programming project. It is a text file usually written in Markdown that introduces the project and explains its contents. It helps people understand how to install and use your code, as well as how they can contribute to the project.

Why write a README?

Back in 2010, Tom Preston-Werner advocated for writing your README first, before you do anything else. He argued that, despite the programming methodologies and project management practices like TDD and SCRUM, it is better if others can understand your project right away through a README description.

Writing a README is necessary to create a good application. It will shape what you need to do later in the project.

As Preston-Werner said, it would be much easier to start writing the README when you start your project, that's when you have the most motivation. When you finish your project, writing the README will be like another task, another small job. That will reduce your interest in writing it.

But regardless, you still need a README file that conveys the complete content, because very few people will review your code to understand how it works. It takes time, and they may not have the technical expertise to understand it.

Furthermore, it's not just new developers who are interested in your README. Recruiters also do, they will look at the README to understand your skills. The README once again shows your professionalism.

Even when you are working on a personal project, README is still important. Imagine coming back to continue the project after a while. With a good README, you will know right away what the project is doing and help you get started immediately.

How to write a README?

Writing a README file needs to have a clear and concise structure, which sometimes depends on the ability and aesthetics of each person.

Below are some essential things when you write your README:

  • Title
  • Introduction (It explains what it is and why you are writing it)
  • Install (How to install?)
  • Use (How to use?)
  • Technologies Used (Libraries, versions, etc.)
  • Acknowledgments (It's where you write acknowledgments, links to other inspiring articles that helped you complete the project)

Those are the minimal necessary things to help you and others. Besides the above sections, you can add sections that you think are necessary for the project. For example:

  • Table of contents (Useful if your README is long)
  • List of features
  • Examples (Code snippets or images demonstrating usage)

Examples of good READMEs

Here are some projects on GitHub that have well-presented README files:

Additionally, there are tools available to help you structure your README in a more organized way. One of them is readme.so. It is a tool that assists in creating a README file with all the sections provided, which you can experiment with directly on the website or refer to the sections the tool offers to manually create your own file.

readme.so

Readme is an essential file for your programming projects, even if it's just for your own project. What do you think about the things mentioned above, or is there anything else you think is necessary for a README? Leave a comment below!

This article was translated from x-team and modified to fit the readers.

Premium
Hello

5 profound lessons

Every product comes with stories. The success of others is an inspiration for many to follow. 5 lessons learned have changed me forever. How about you? Click now!

Every product comes with stories. The success of others is an inspiration for many to follow. 5 lessons learned have changed me forever. How about you? Click now!

View all

Subscribe to receive new article notifications

or
* The summary newsletter is sent every 1-2 weeks, cancel anytime.

Comments (2)

Leave a comment...
Avatar
Trịnh Cường2 years ago
cảm ơn bạn, bài viết như lồng đèn sáng chói vậy
Reply
Avatar
Xuân Hoài Tống2 years ago
Cảm ơn bạn Cường
Avatar
Đức Tống3 years ago
Bài viết rất hữu ích ạ
Reply