-
pick a project that interests you
-
open the repo and read the README.md
- understand
- what the project does
- how to set it up
- if they have contributing guidelines
- go to the "issues" tab
- choose a good first issue or project with the tag
help-wanted- every open source project has a
/contributepage (e.g. https://github.com/facebook/react/contribute)
- every open source project has a
- check if nobody has claimed it (look at the comments)
- the task is still relevant (check date and recent activity)
- choose a good first issue or project with the tag
- leave a comment before starting
- understand
-
learn how to name and document commits in the project
-
learn the pull request template
-
learn from successful PRs
-
pay attention to test coverage
-
master the code and submit changes to it
-
keep your fork updated
-
good places to start
- typos
good first issueneed help- documentation
- translation
- commenting or reviewing other PRs
- CI pipelines
-
advantages
- learn how to understand a new codebase
- learn from other developers
- improve your code via feedback
- gain validated experience for your career
- contributing adds more to your portfolio and experience
-
document your progress, maybe share progress in social media
-
challenges
- repos can have thousands/millions of lines of code
- hundreds of issues
- incoming changes
- bad decumentation
- requirements and constraints that might not be clear
-
recommended open source projects to contribute:
- uses languages you know
- your interests
- productivity tools
- devops
- cli tools
- nvim plugins
- maybe check out trending repositories
- check the license
- does the project actively accepts contributions?
- when was the last commit?
- how many contributors the does the project have?
- do maintainers respond quickly to issues when they are opened?