How to Write a Good README File?

How to Write a Good README File?

Daily short news for you
  • Indeed, there's nothing that wizards can't come up with. awk is a very powerful command for processing files; it can read, search, summarize... text data. Especially for system log files, you just have to call it with... a command.

    jgarzik/sqawk takes the use of awk to "new heights". It applies SQL syntax for querying as well 😆.

    » Read more
  • I forgot to mention that I promised to share my thoughts with everyone after switching to Safari, and just two days later, I had to go back to Chrome. Why?

    First, I would like to point out a few things I liked about Safari, such as its extremely simple interface, which truly focuses on real web browsing, and I found its speed to be on par with Chrome. Additionally, one feature I really enjoyed was the ability to "hide" certain elements you don't like on a particular webpage. This feature is called Hide Distracting Items.

    However, I began to discover some shortcomings when opening Dev Tools—the space that helps developers debug their websites. I must say it was quite basic. It seems that Safari is not designed for debugging. I spent a while trying to figure out how to view the data being sent through the API, or even how to see a fully printed Object from console.log!?

    That alone is enough of a reason for me to return to Chrome. Perhaps Safari is very focused on privacy and security, which makes it difficult to fulfill these requests. On the flip side, if you are doing regular web browsing, you might really enjoy Safari!

    » Read more
  • Let's take a look back at the 30-year journey of JavaScript from its first appearance in 1995 to 2025.

    30 years, the same age as myself 🥱. I've read many blogs about JavaScript, but it seems that Deno is very determined to revive JavaScript once again. They are actively working to reclaim the name JavaScript for the community instead of letting Oracle hold it without doing anything over the years.

    » 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

Me & the desire to "play with words"

Have you tried writing? And then failed or not satisfied? At 2coffee.dev we have had a hard time with writing. Don't be discouraged, because now we have a way to help you. Click to become a member now!

Have you tried writing? And then failed or not satisfied? At 2coffee.dev we have had a hard time with writing. Don't be discouraged, because now we have a way to help you. Click to become a member 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