How to Contribute to Open Source as a Beginner

Programming Image

    Introduction

    It's never been easy to learn programming. But despite tons of ways to learn how to code, we believe that the best way to improve your skills is by contributing to open-source projects. The open-source community provides a great opportunity for aspiring programmers to distinguish themselves; and by contributing to various projects, developers can improve their skills and get inspiration and support from like-minded people. But most importantly, they can prove that they can build fantastic experiences that people love.

    Open source refers to source code that is made available to the public to view, use, modify, and distribute under a license. It’s usually developed and maintained collaboratively by a community of its users. Some well-known open-source projects include DjangoPostgresMongoDBVueGoRubyTypeScriptGit and so many more. 

    There are a lot of ways you can participate in open source. As a beginner, you could identify and fix bugs in a project. Your contributions do not have to be exclusive to code. You can help a project by making comments on existing code and APIs to add context and writing documentation for the project.
     

    How to contribute to open source projects

    Now, let's explore how to start with Open-Source Contribution as a beginner.

    Get to know Git and Github

    GitHub is the most popular platform for open source collaboration, so you'll probably use it when exploring the world of OSS. First, you need to create a GitHub account and read the guide that helps you get started. On GitHub, you can contribute to projects by submitting issues and contributing code. Submitting issues means sending messages about errors in applications and suggesting ways to fix them. Contributing code involves sending pull requests with your corrections and improvements.
    When working with GitHub, you should know how to use Git – one of the most popular version control tools (also known as revision control tools). Because developers constantly make changes to their code, they need a system that can manage those changes in a central repository. In this way, everyone involved in the development process can download a given piece of software, make changes, and submit updates.
    Learn more about Git and Github in this blog series.
     

    Understanding how a project works

    Contribution guidelines help you understand how to approach your participation in a project. It will explain how to reach out about a contribution, provide templates for communicating bugs and suggesting features, list work that is needed by maintainers, project goals, etc. In addition to contribution guidelines, some projects will have a code of conduct. It usually outlines community rules and behavior expectations. It’s meant to help you know how to be a amiable and professional contributor and community member. Having a good grasp of the technical aspects of the project and how it’s organized is essential to making contributions that meet the project’s standards. To understand the technical parts of the project, consult the project README, wikis, tutorials, and documentation. Going a step further, look at past feature integrations and bug fixes in merged pull requests which are full of discussions by other contributors and can be a rich source of context. As the project evolves, pay attention to it, frequently follow issues, features, discussions, pull requests, and bug fixes to continually learn how it works.
     

    Finding projects to work on

    One way to find projects to work on is to look to open source software you use often and like. Is there a tool, package, framework, or language that you work with regularly and enjoy using? Find out whether it’s an open-source project by checking its license and if it accepts contributions and is active. Working on things you already use gives you an edge when contributing because you’re already pretty familiar with how it works and have experience using it. As a bonus, you can address problems that have been bothering you or suggest features that you want in the software. If you are going to contribute code to the project, be sure you can work in the language it’s written in. 

    If the above approach may not work for you, try using the Github explore page to find projects that are accepting contributions or actively want help. Github suggests projects you may like based on people and repositories you follow, star, and watch. Another way to find projects is to use Github’s search tool by entering beginner-friendly contribution tags like good-first-issuegood-first-bugbeginner-friendlyeasylow-hanging-fruitfirst-timers-only, etc. Filter search results to return issues in open states and in the languages you’d like to work in. There are tons of other tools, platforms, and programs where you could find open source projects that I’ll list at the end of this article to help you with your search. 

    To have a positive contribution experience, try to avoid communities that are hostile to beginners and generally problematic. If for example, when trying to ask legitimate questions after you’ve done your research, you receive dismissive and combative comments or insults, it’s best to stay away. Another sign to be watchful for is a pattern of unprofessional behavior within a community. Some open-source software projects have been infamous for this sort of thing. So do your research before contributing.  
     

    Pick Issues and Work

    Projects may list the work that needs to be done in task, bug, and issue trackers. As a rule of thumb, start with the easiest and smallest contributions first that take the least amount of work to build up your confidence and credibility before trying harder contributions. Writing documentation and fixing typos is a good place to begin. Look for issues that are tagged for beginners with the tags mentioned earlier. 

    After you pick a task you think you can finish, do your research. Read documentation, code, and discussions related to the task to get a better understanding of what to do. If you’re stuck on something even after you’ve researched it, reach out to the community and ask for help, clarification, or mentorship. However, make sure that you discuss issues related to the task publicly so that the rest of the community can benefit from what you learn. For example, discuss an issue publicly on Github versus in a private direct message on Slack. Once you feel like you have enough context on a task and know how to go about it, write some code and submit a PR. Github has a great checklist about what to check for before you contribute to a project so your effort is not wasted.
     

    Submit Your Work

    After you’ve completed work on your contribution, submit it as per the contribution guidelines. At times, your submission may not get a reply even after a reasonable amount of time has gone by. In such cases, respectfully request a review or get in touch with other contributors for assistance. Post-review changes may be requested. Try to make them as soon as possible so that your Most projects have automated tests that runs automatically when you open a new PR. Make sure that these are passing.contribution is integrated promptly and does not become out-of-date or forgotten. If your contribution is rejected, ask for feedback to understand why. When reviewers ask questions, make comments, or give feedback, be responsive and check on your work for any updates regularly. Treat this like any other work and be professional, courteous, and respectful. 

    Things to take care of while creating a Pull Request (PR):

    1. Write self-documenting code, use comments liberally, write clear commit messages and most importantly comment on what your PR does clearly.
    2. Use the pull request template if the project has one. This will help the reviewer understand the context and get reviews done a lot faster.
    3. If there is an open issue for the change you are making, link the PR to that issue.
    4. Your PR should ideally do one thing and one thing only. This will make it more likely to be reviewed quickly and accepted.
    5. Most projects have automated tests that run automatically when you open a new PR. Make sure that these are passing.


    What are you waiting for?

    Open source contribution can be an amazing learning experience. It allows you to give back to and be a part of communities that build valuable open source software. It enables you to make software that you use better. Although it can be tough to start, once you get the hang of it, it is immensely rewarding. You do not have to know everything about a project to make a contribution. Pick a project and a community that supports new contributors, find mentors, and make your contributions. You may encounter some infamous communities. Stay away from them as they may put you off open source entirely. 

    Here’s a list of resources that can help jumpstart your open source career:

    1. Awesome for open source beginners 
    2. Bugzilla 
    3. Code triage 
    4. Contributor.ninja 
    5. First contributions 
    6. First-timers only 
    7. Hacktoberfest 
    8. Gauger.io 
    9. Issuehub 
    10. Open source handbook 
    11. Open source programs 
    12. Opensource.guide 
    13. Pull request roulette 
    14. Your first PR 


    Hacktoberfest 2021

    Hacktoberfest is returning for its eighth year. It is a month-long celebration of open source software run by DigitalOcean with various other partners. It is open to everyone - whether you are a beginner or an expert, YOU ARE IN!!! 

    All you need to participate is the will to contribute to open source and a Github account. You simply register here using your Github account. For participating in the challenge you will have to submit Pull Requests(PR) in any public Github/Gitlab hosted repository. You can participate by signing up anytime between October 1 and October 31. All of your contributions within this time period will be counted even if those were before you sign up for the event.

    There are lots of things you will get for participating:

    • Gain more knowledge about open source and open source contributions
    • Gain more knowledge about Github and community-based contributions
    • Thanks for the project you contributed to
    • Free Swag Reward from the Hacktoberfest team

    Note: To obtain the T-shirt you will have to complete a specific amount of contributions on Github. Stickers are included with the T-shirt as well.

     In addition to that, you can also organize an event to show your support for the community. Explore Event Organizer Kit and Maintainers' Resources to learn how to successfully organize a Hacktoberfest event.
     

    Conclusion

    Open source projects bring many benefits to those who participate in them, and such experience is great for your CV. By joining a community of like-minded people and polishing up your skills, you can give yourself a step up as an aspiring developer. We've listed common reasons why people contribute to OSS projects, and described various ways to get started. If you would like to read more about contributing to OSS projects, check out our previous articles about how open source projects penetrate the IT market and about the security of free software.


    If you read this far, support the author to show them you care.

    0 Comments

    To add a comment, please Signup or Login

    OR