Contributing to Open Source - Baby Steps

Contributing to Open Source - Baby Steps

Starting Your Open Source Journey.

What Is Open Source?

Open source is essentially software that is open to the public. I like to say it's like software democracy. Software for the people, built by the people, and then there are the legislators (open source maintainers) that make sure things are running smoothly.

Benefits of Contributing to Open Source as a Beginner:

As a beginner, there are a few reasons why contributing to open-source might be beneficial to you and your career growth. I'd be mentioning a few below:

  1. Community: As a beginner, one of the best ways to grow in your career is by connecting with people, and this is something open-source companies give you voluntarily. It gets better if you're an active contributor.

  2. Visibility: Open source communities have the most diverse set of people across different experience levels, and these people work at different organizations. Being an active contributor puts you in a position where people know about you and your abilities, and would be willing to recommend you for positions where you'd be able to apply your skills and get paid.

  3. GitHub Streaks: Everybody loves a good Github streak. It's amazing seeing those green tiny squares on your GitHub account. It gives good validation for your work, and sometimes that's how recruiters judge that you're an active learner to consider you for a role.

Finding the Right Project:

There's no one way to find open-source projects you can be a part of, and as a beginner, with no prior network, it might be a little harder to find a community. But, here are a few ways to find one:

  • Ask your friends: You could begin by asking your friends about what open-source communities they currently belong to. If you don't find one, you could try...

  • Using Social Media: You could ask on Twitter, or just use the open-source hashtag (#opensource) to find communities on social media and ask to join. Most of them are friendly and always looking out for more people to join their communities, so, shoot your shot.

  • Google: In addition to asking your friends, or your network on social media, a simple google search would lead you to answers.

  • The Linux Foundation: If either of these suggestions doesn't work for you, you could just go to this link and pick a project to be a member of. The Linux Foundation is the largest open-source community there is, and most open-source projects are affiliated with them in one way or the other.

  • Join Us AtCHAOSS: Here's a link to the open-source community I belong to. We're an awesome community open to newcomers, and there are different ways you can contribute to the community. Join us! We'd be excited to have you. Ps: If the link expires, feel free to dm me on Twitter to send you another one.

Preparing to Contribute:

So, you've found a community to contribute to, what happens next?

  • Familiarise yourself with the community: Introduce yourself, and get to know the community and its guidelines. Feel free to ask questions if you have any.

    It's also good to note that it might take a while to understand a community or even start contributing, so don't beat yourself up if you get confused or have a lot of questions in the beginning. Just keep asking and trying your best step by step. After a while, you'd get a hang of it. The ways you can contribute are mostly divided into code, and no-code contributions. I'd explain some below.

Code Contributions:

This is the type that most of us are familiar with, so whether it's a website, a mobile app, or hardware programming, it's still code regardless of the language being used and it'd follow the same format.

  • Familiarizing yourself with the project's codebase and contribution guidelines:

    Once you get to a point where you want to start contributing, please go through your community's repo, understand the code base, read and understand the contribution guidelines and style guides if any, and then start contributing!

    At this point, you should be familiar with Git and Github (or whatever version control system your organization is using), to be able to contribute effectively. If you're not, this article I wrote a while back should help with the basics.

No-Code Contributions:

Depending on the kind of no-code contribution you'd be giving to your community, you might not need to look through a code base. For instance:

  • Community Managers: As a community manager, your contributions would be more community focused. This could be helping and onboarding newcomers in your community. It could be helping to facilitate meetings within the community. It could be helping with drafting guidelines, organizing meetups (virtual and physical), etc. The contributions are endless, and you might only figure it out as you continue. So, try it out.

  • Designers: This applies to UI/UX designers, Graphic designers, etc. You can contribute by creating designs for your community, this could be fliers for meetups, redesigning their websites, or even making design suggestions. If your community is very open to changes, the possibilities are endless for what you can try.

  • Technical Writing: You can contribute to your organization's docs, and if they don't have one, more exciting and challenging for you, create one for them! Here's a link to the writethedocs website to get started on how to contribute to documentation.

    Technical writers might have to look through the codebase and work with the code as this is how you'd be able to write effective and accurate documentation for the product.

Making Your First Contribution(s):

  • Tips for finding a good first issue to work on: The easiest way to know what might be a beginner-friendly task for you to try out is by using GitHub labels to filter a "good first issue" for yourself.

    Clicking on those labels helps filter out issues and then you can pick whichever one you feel more comfortable working on.

    Credit: https://github.com/chaoss/augur

    Credit:Chaoss's Augur repo

    • How to Make Changes:

      To do this, after picking a project and finding out what task you want to work on, you'd have to follow the following steps:

      • Fork the Repo:

        Forking a repo gives you a version of the person's project on your own GitHub account.

      • Clone It:

        This creates a copy of the repo on your local machine.

  • Make Your Changes:
    This is an example of mine.

  • Add, Commit and Push to GitHub:

    So your changes can reflect on your GitHub profile.

  • Go To GitHub:
    Github would indicate that a few changes have been made on that repo that was previously forked. What's left is to create a pull request.

  • How to Submit a Pull Request and Communicate with the Project Maintainers:

    When you're done making your changes, you need to create a PR (pull request) so it can reflect on the organizations' repo and they can review your changes or additions.

    This Pr makes it possible for the code maintainers to look through, give corrections so you modify them, or just straight up merge your code if it passes all checks. Here are the steps:

    • Create A Pull Request:

      Click on "New Pull Request".

      It's important to try to make your PR message as clear and as descriptive as possible, so whoever's reviewing can know at first glance what you're fixing, or editing. If it's an existing issue you're fixing, add the issue number to the PR so they can quickly reference it.

      Also, most open-source organizations have a format for submitting PRs, so please follow it. My example doesn't have one as I'm using a personal project to demonstrate.

      Click on "Create pull request" and voila!

Credit:https://github.com/biggaji/bigglytics.

Continuing to Contribute:

  • How to Become More Involved in the Project:
    The only way to get better at something is to continue doing it, so if you want to be more involved in a project continue contributing. Volunteer for tasks, maybe even host a meetup in your local community for your open source organization. Spread the word about your organization on social media. Ask if you can review the code sometimes too. There are a ton of ways you can be more involved. The cool thing is, you can figure it out as you continue.

  • Strategies for Maintaining Motivation and Staying Engaged Over Time:
    As you contribute, you'd start to find that sometimes it's exhausting, especially as it's mostly voluntary work, and sometimes you can experience burnout.
    Remember that it's okay to rest and take a break sometimes. It's also okay to explore other organizations. It could be that you've become bored and need to try out something new. That's okay.

    Do what you have to to take care of yourself and your mental health.

Conclusion

Taking your first steps as an open-source contributor might seem daunting, but remember that anybody that's good at something right now started somewhere.

So, try it out. You might really enjoy it, and maybe even make a career out of it.

Again, you can join us at CHAOSS as you take your first steps. We'd be happy to have you.

DM me on Twitter if you have questions!

Until next time, ciao.❤️

Cover Image Credit