How To Write a USEFUL README On Github

Поділитися
Вставка
  • Опубліковано 1 чер 2024
  • Let’s be honest for a minute, all of your READMEs are afterthoughts. They are a chore that needs to be done. Well, today IS the day that you could turn all of that around. Today you could choose to give your READMEs all of the respect that they deserve! Come with me on a journey into your README dumpster fire. What it is now, what it could be, and what it could mean for you and your project when done CORRECTLY.
    A brief history of bad READMEs
    Before we dive into why you want a good README and how to make one, let’s take a look at some of the most notoriously bad READMEs out there in the wastelands of forgotten projects.
    Benefits of a well-written README
    A well-written README has the potential to be so much more than just another piece of documentation. Let’s take a moment to consider the massive benefits of a README written with purpose.
    How to craft a useful, well-written README
    Now that you’ve seen the failures and you know all the benefits, are you ready to learn, exactly, how to structure a README masterpiece? Let’s (finally) get into the details. Here’s the list, in order, of elements you should have in your README.
    A strong H1 title and an H2 subtitle - Just like writing an article or a blog post, you need a great title and subtitle to attract search engines and humans. It doesn’t need to be the name of your project, but it does help if your title includes the name of the project.
    An intro paragraph focused on what the project does - Write an intro paragraph about what this project is, what it does, and how it’s used. This section is still for SEO purposes and for keeping it simple about the value your project provides to the user who is searching for it.
    Diagram (optional) - If necessary, add a diagram showing where this project fits and how it works. If it’s a CLI tool or a graphical tool, this would be a great opportunity to add an animated GIF of your project in action. Even better, adding a youtube video demo of your project to your README could be very beneficial to gaining more users.
    Installation and usage instructions (for end-users) - Now it’s time to get a little bit nerdier. If a user has gotten this far into your README, you bet there’s a chance they actually want to use your project. Give instructions on how to install or use the tool. Don’t get this confused with how to contribute to this project (like help improve the code), that’s the next section. This section should only talk about how to be a consumer of the project.
    Installation and usage instructions (for contributors) - Ya know the best part of open source projects? If you make something really cool, others will want to help make it better! In this section of the README, give instructions on how to pull the code down and start up the tool for development purposes. This section is usually pretty technical and may require instruction on how to build from source, but hopefully, you have a script for MAKEFILE from stuff like that. Anything you can do to make the development experience easier will help you gain more contributors.
    Contributor expectations - If you are looking for contributors, make sure you set the ground rules. There’s nothing worse than getting someone who wants to help you but they don’t know how! This section of the README gives the guidelines for contributions. Do you expect someone to create an issue in the issue queue and then resolve it with a pull request? Do you want squashed commits? Do you have a pull requests template? Explain it all here.
    Known issues - I already talked about this README section above so I’ll keep it short. Make a brief list of known issues here so people don’t report bugs you already know about!
    Begging for money! - Don’t be ashamed to ask for money. Seriously! You put a lot of effort into this project and if someone likes it they might just throw you a couple of bucks. You can add a link to Buy Me a Coffee! - www.buymeacoffee.com/askcloud...
    =======================================
    I get a lot of questions about my gear so I've created a few lists of the stuff I use. These are affiliate links. If you click and literally buy anything, it helps support the channel! Thank you.
    Here's a link to my home office gear: kit.co/AskCloudArchitech/my-h...
    Here's a link to my youtube "studio" gear: kit.co/AskCloudArchitech/yout...
    =======================================
    My website for written versions of these vids: askcloudarchitech.com
    ==============================================================
    Github Project with THIS README: github.com/askcloudarchitech/...
    Follow me on Medium: / askcloudarchitech
    00:00 - README Rant
    00:08 - A README Thinking Excercise
    00:42 - Why even write a README
    01:18 - How NOT to write a README
    02:13 - Benefits of a good README
    04:05 - How to write a good README

КОМЕНТАРІ • 76

  • @nielsen7183
    @nielsen7183 Рік тому +75

    As an university student, I like your video because of how concise it is as I dislike watching long unnecessary videos in learning stuffs online. I have never been bothered to write a readme file before but your video sparks my interest in writing one for my project. I guess I need to at least start somewhere. Thank you for sharing such helpful information.

    • @LearnFastMakeThings
      @LearnFastMakeThings  Рік тому +2

      Glad you liked it.

    • @zbjz
      @zbjz Рік тому +1

      If you dislike watching long unnecessary videos in learning - why did you sign up for uni?

    • @nielsen7183
      @nielsen7183 Рік тому +1

      @@zbjz Not all universities stuffs are online. The problem with longer videos is that they feel less "interactive" while in actual lecture I could ask the instructor directly. I'm not sure if I'm making sense but yeah.

  • @12thninja
    @12thninja Рік тому +9

    Outline
    Title and subtitle (one line explainer)
    Intro paragraph
    Diagram or video (optional)
    Installation instructions for users
    Installation instructions for developers
    Contributor expectations
    Known issues
    Beg for money 😉

  • @strandingstranger
    @strandingstranger Рік тому +34

    This video format is insane. Was about to check a few minutes of this vid just out of curiosity, but you kept me instrested the whole time. I absolutely loved the way how you explained everything. Thanks for making this video and I hope you will keep them coming.
    Also, for sure will make use of these advices.

    • @LearnFastMakeThings
      @LearnFastMakeThings  Рік тому +5

      Glad you enjoyed it! This type of video is certainly more of an editing challenge since its not just me sharing my screen, but they are fun and more fast pace. I don't like wasting people's time and try to keep things moving throughout the whole video.

    • @meharsain728
      @meharsain728 7 місяців тому

      @@LearnFastMakeThings as a fresher to kick start my career, in my GitHub projects there's not a single readme that i created! Really appreciate your effort!!! looking forward to your videos and mentors like you. ❤

  • @TotonZx
    @TotonZx 2 роки тому +16

    Wow, these advices are really great, thanks for sharing them!

  • @zigaudrey
    @zigaudrey 8 місяців тому +1

    As a newbies, my ReadMe goes like this: the short description of the project, what it achieves, the Steps/How to use it, and optionally, extra information like example, link, story, image result and what-not.

  • @abhishekraut4082
    @abhishekraut4082 9 місяців тому

    Sir, Your way of explaination is just awesome!.

  • @ivanov83
    @ivanov83 Рік тому +2

    Thanks for a good video! I’ve been looking for the best readme formula myself for some time, and eventually came to something like this as well.
    Just checked my last published repo, everything is in place :)

  • @Cerezo074
    @Cerezo074 Місяць тому

    Great explanation! and also the points you have mentioned worth the time to implement them.

  • @dei8bit
    @dei8bit 6 місяців тому +1

    My God! I felt in calm when I found the steps for a good readme file in the video description. he really validated what he taught us.

  • @bulelanibotman
    @bulelanibotman Рік тому +3

    you just earned yourself a subscriber, i don't know how grateful i am for this video! i never knew how to write a readme since i am still new to programming and this video is very much appreciated

  • @markspindler4834
    @markspindler4834 Рік тому +1

    Thoughtful and well put together video. The music sounds like Vsauce 1.

  • @stillpickinganame5350
    @stillpickinganame5350 9 місяців тому

    Thanks man, very helpful!

  • @kentmiggalen9756
    @kentmiggalen9756 Рік тому +2

    I learned A LOT in one video holyyy

  • @adamsomari8340
    @adamsomari8340 Рік тому +3

    Finally someone that cuts to the case, while giving an overview! Thanks bro!

  • @ezlos-swm3353
    @ezlos-swm3353 Рік тому +1

    I've been looking for something like this! Great content. Looking forward to more of your videos

  • @Mewoi9205
    @Mewoi9205 Рік тому +3

    Underrated channel, honestly keep up the good work.

  • @mdyousufgazi4030
    @mdyousufgazi4030 10 місяців тому +1

    thank you so much for these information. this channel is gem

  • @NotTheHeroStudios
    @NotTheHeroStudios Рік тому +2

    > calls ReadMe file as a "gateway drug"
    > "about to hook all these mf programmers on this drug
    Perfectly explained. I have skipped out on so many things because the ReadMe didn't make sense

    • @LearnFastMakeThings
      @LearnFastMakeThings  Рік тому

      Lol. Sometimes I say stuff and don’t even think about it afterwards. Love these comments that call it out

  • @Actanonverba01
    @Actanonverba01 Рік тому +2

    Great and simple advice, I loved it.
    Thanks

  • @kevon217
    @kevon217 Рік тому +2

    Thanks for sharing these best practices!

  • @Eysvar
    @Eysvar Рік тому +3

    Something that I try to always put in my READMEs as well are usage instructions. However, I try not to bog down the user with everything, especially if it's a larger project. That's when you maintain a wiki and/or a help section in the program itself and then point to that resource within the README.
    On a less related note, I would suggest installing a couple extensions to help with spell checking and linting markdown. That way you can catch spelling mistakes and follow markdown best practices.

  • @areybhuta
    @areybhuta Рік тому +1

    Glad that I found your channel

  • @yungifez
    @yungifez Рік тому +2

    Wonderful ideas

  • @re.liable
    @re.liable Рік тому +3

    Kinda disagree with the h2 subtitle. I just don't like it visually haha. But other than that, great tips! Will try them on my next projects

  • @industrialvectors
    @industrialvectors Рік тому +1

    If you are ever alone on a work project which may or may not be open source, you will most likely feel like taking time to write readme and documentation is counter productive.
    It's the opposite in practice.
    My own readme files are shorter and more targeted at enabling me or any future contributor to get started quickly.
    - Title has to be explicit, a short description must explain why the project (module, plugin…) exists and what it does.
    - An install section usually explain 3 things:
    1. Read the Makefile for all convenience commands.
    2. Dev environment as of the latest version.
    3. What are the commands to install, build and deploy.
    - An usage section invariably says the same thing: refer to the test folder.
    I can be as sparse because my documentation is mostly in my code.
    It happens more often than you'd anticipate that you need to revisit code you wrote years ago. Memory is selective, don't expect to remember how your own code works. Usually you will be in a rush and annoyed that you had already written and tested but have to come back for a fix, add features or port your code.
    My personal workflow is to break my code into the smallest most logical methods/modules possible. I document every method (What it does, why it exists, arguments/type) and every Makefile command (what it does, arguments, example).
    I like Makefile, they work like an executable Readme when properly documented. Even if your package has scripts in its description file, you can use the Makefile to call these scripts with the added benefit of the documentation.
    The last piece that solidifies my documentation are automated tests. They don't need to log what they do. They need to be sequential, asynchronous, tracing where test fail. Each module/file/method should ideally have tests for its inputs, exceptions and outputs, each briefly commented as to tell what is being tested.
    I have found it extremely useful with evolving languages, interpreters, compilers and environments. Even if the code does not change, external factors may break it. In a mono repo project, having one command run all tests for all modules and dependencies is a wonderful tool. Both to ensure no side effects by recent changes but also to give confidence.
    Yes, this is a video on readme for github. But if you've watched it and read the comments, this one could be useful.

  • @AmineOnline
    @AmineOnline 9 місяців тому

    thanx my dear friend

  • @mostafaboras
    @mostafaboras 4 місяці тому

    thank you so much

  • @ferminurzainqui6845
    @ferminurzainqui6845 Рік тому +3

    Great video!
    How about a FAQ?

    • @LearnFastMakeThings
      @LearnFastMakeThings  Рік тому +1

      Sure! FAQs are a great way to explain how a more complex project works.

    • @Hauketal
      @Hauketal Рік тому

      Also, everything answered in a FAQ should be either in the documentation, just not easily found, or obvious with a little background. Too often I found info there to be important and not specified elsewhere.

  • @canra245
    @canra245 10 місяців тому

    thank you

  • @tanvimahajan5226
    @tanvimahajan5226 Рік тому +1

    sweet!!!

  • @calcio437
    @calcio437 Рік тому +1

    thanks!

  • @mustafayazlmc3973
    @mustafayazlmc3973 Рік тому +1

    Wow like your content keep it up iam new nodejs

  • @mariomeza3514
    @mariomeza3514 10 місяців тому

    Now I have chat gpt4 write out the readme for me with the info I give it, and of course the readme comes out flawless.

  • @kokalti
    @kokalti 7 місяців тому

    I have a program that writes to a file in VS. When I upload everything to GetHub it fails to write to that file when the program tries to. I tried the txt extension, md extension and different paths to that file. Nothing worked. Any suggestions?

    • @LearnFastMakeThings
      @LearnFastMakeThings  7 місяців тому

      Did you check the file permissions? Is it writable by the user/group that is trying to edit it?

    • @kokalti
      @kokalti 7 місяців тому

      @@LearnFastMakeThings Where would I change the file permission on GitHub? I tried looking around there and couldn't find it. Thanks.

    • @LearnFastMakeThings
      @LearnFastMakeThings  7 місяців тому

      This is just a md in the repo right? You need to change the permissions locally then commit the permission change to the repo.

    • @kokalti
      @kokalti 7 місяців тому

      @@LearnFastMakeThings Did all that. Still doesnt work. It works fine VS but not on GetHub

  • @otmanm4095
    @otmanm4095 Рік тому +1

    Greaaat

  • @samehamer.
    @samehamer. Місяць тому

    شكرا جزيلا

  • @sammygitongar9262
    @sammygitongar9262 9 місяців тому

    Gateway drug, huh😂😂

  • @_blackmesa
    @_blackmesa 4 місяці тому

    keep in mind, readmes are for other developers only. companies don`t even waste their time.

  • @richardfrangie3518
    @richardfrangie3518 8 місяців тому

    Hi