How to Write a Good README File?

How to Write a Good README File?

Daily short news for you
  • A software that converts text to speech created by a Vietnamese programmer - J2TEAM - Text to Speech (Free). You can convert dozens of languages into dozens of different natural voices. The special thing is that it is free.

    In preliminary evaluation, the conversion of long texts or texts in pure Vietnamese is very good. However, when it includes English words, it sounds a bit funny 😅

    » Read more
  • How terrifying, Codeium - known as a competitor to Github Copilot, as it allows users to use it for free without limits. Recently, they introduced the Windsurf Editor - no longer just a VSCode Extension but a full Editor now - directly competing with Cursor. And the main point is that it... is completely free 🫣.

    » Read more
  • There is a rather interesting study that I came across: "Users never bother to read things they don't want to." (That's a bold statement, but it's more true than not. 😅)

    Don't believe it? I bet you've encountered situations where you've clicked on a button repeatedly and it doesn't respond, but in reality, it has displayed an error message somewhere. Or you've filled out everything and then when you hit the submit button, it doesn't go through. Frustrated, you scroll up or down to read and find out... oh, it turns out there's an extra step or two you need to take, right?

    It’s not far from the blog here. I thought that anyone who cares about the blog would click on the "Allow notifications" button just below the post. But the truth is, no one bothers to click it. Is it because they don't want to receive notifications? Probably not! I think it's because they just didn’t read that line.

    The evidence is that only when a notification pops up and takes up half the screen, or suddenly appears to grab attention, do they actually read it—and of course, it attracts a few more subscribers—something that was never achieved before.

    » 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

The secret stack of Blog

As a developer, are you curious about the technology secrets or the technical debts of this blog? All secrets will be revealed in the article below. What are you waiting for, click now!

As a developer, are you curious about the technology secrets or the technical debts of this blog? All secrets will be revealed in the article below. What are you waiting for, click now!

View all

Subscribe to receive new article notifications

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

Hello, my name is Hoai - a developer who tells stories through writing ✍️ and creating products 🚀. With many years of programming experience, I have contributed to various products that bring value to users at my workplace as well as to myself. My hobbies include reading, writing, and researching... I created this blog with the mission of delivering quality articles to the readers of 2coffee.dev.Follow me through these channels LinkedIn, Facebook, Instagram, Telegram.

Did you find this article helpful?
NoYes

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ống2 years ago
Bài viết rất hữu ích ạ
Reply