You show your GitHub project to people but they don’t understand what the code is about. Why should you take time to write a good README if they can simply “read the code”?

They won’t even look at your code if you don’t explain what’s in it for them. Why should anyone care about it?

What about making them curious about your project? It saves them time, it shows you care about good communication and that by writing good docs you probably write good code as well.

In the end, we write code for humans 😉.

By the end of this post, you’ll know how to:

  • Write simple yet exciting READMEs for your GitHub projects.
  • How to improve your chances of making a good impression next time you send a potential employer a link to your GitHub portfolio.

It may seem too much to learn and you’ll probably feel overwhelmed. Use this as a reference and do the homework. That’s a good starting point.

Let’s get started!

Improve your GitHub profile

Start by doing an ‘audit’ on your profile:

  1. Each project should live in a differente repository. Your GitHub profile becomes a portfolio by itself. Add a personal README and up to 4 projects that you want people to see first. See my GitHub README as an example.

  2. Write about you in your user section. Tip: instead of adding “I’m a early career developer looking for opportunities”, use powerful words that describe your skills. For example: “I help charities make data-driven decisions with Python”.

Position yourself as someone who provides value and not “someone learning how to code”. You’ll always be learning. Drive the focus to the value you generate instead.

How to write a good README

Connect with your readers. Put yourself in their shoe’s and avoid jumping to conclusions.

Always assume it’s someone new that is learning. Do they know which commands to run on the terminal? How to navigate through the project’s folders? What do they need to know about your project?

Even if they have experience with the programming language, they may have forgetten how to run commands. Readers from all levels will be able to appreciate your work.

Tip: Let’s say you need to run this project on another computer. Would you know all the steps needed to install it again? Probably not. If not for others, do it for yourself.

The ‘How to Get Started’ section

The How to Get Started section tells the user which commands they will run and anticipate any dependencies they need to install first.

Here’s an example of a How to Get Started section for a Rails app:

This project depends on libexif. If you're on a mac, run `brew install libexif` to install it.
 
Run `git clone my_github_project` to clone the project.

Run `cd my_github_project && bin/setup` to install dependencies.

Then, run `rake install` to install this gem onto your local machine.

Run `app export` to generate a CSV file with the Exif data.

Run `cat output/*.*`. If you see a list of files, this means your setup is correct.

If relevant, add code snippets or images. Check out Carbon for creating awesome code snippets. Show, don’t tell.

Bonus tip: uninstall the project and go through the process of installing it again. If you had problems with one command, add “If you run into this error, run this command”.

Homework: Write a Badass README

  1. Choose one of your projects.
  2. Use this README checklist as a template.
  3. Review your README using the questions proposed on Tips for writing a good README.
  4. Congratulate yourself for developing a new skill 🥳.

Good companies value good communication. I’ll never forget when the CTO of my first internship said: “you write well, that’s a good indicator that you have the skills to write good code, too”. It opened my eyes to how much communication skills matter. It matters to you, too!

Write good docs, write good code, make your readers happy. See you next time 👋.