This is a very basic and foundational step. You will have to learn at least 30-40% of any technology. Technology can refer to any. Most popular are :
- Full-stack development
- Front end development
- Back end development
- Machine learning
- C++, Java, Python etc.
Finding the organisation which matches your skillset is very important. You can refer google for this or
- Visit the websites of GSOC, GSSOC and such programs.
- Go to there past year's organinsation lists
- Filter the organisations according to your skillset
- Go to the orginsation on the github and find the project that interests you.
- And follow the steps below
Readme of a project is very essential for users/ first time contributors of the project. Readme files give brief overview of the project to the developers intersected to contribute to it. Every new contributor should read the readme files to understand the workflow. Readme files contains the following.
- About the project
- Tools used in the project
- Step by step walk through to setup the project in local environment
- Licence (In some cases)
If the projects are very big and contains many components then the developer should read the documentation associated with the component he wants to contribute to .
Code of conduct is basically a file which contains the behavorial instructions for everyone associated with the project. Every organisation today has a code of conduct. Every person in the community is bound to follow the code of conduct.
After you have successfully found out the organisation and project you want to contribute to and have read the readme's and code of conduct. So, now its time to do some work. In any organinsation/ project there are lots of issues open in the issues section. If you are first timer then you can filter the issues by
good-first-time-issues which are specially created for anyone who is contributing first time.
This may sound weird but that's true. You have to go on the issue you want to solve. In the comments tell them like "Hey, I want to work on this issue, could you please tell me how can I solve this. " You can also ask this question on their newsletter platform on the general channel. You can get help of many people contributing to that organisation.
The readme file about which we talked about contains all the steps you need to follow to setup that project locally on your computer.
- Fork the project to make your own copy of the project (Very important do no ignore this)
- Go to your forked project and clone it your computer using
git clone https://github.com/<your-user-name>/<project-name>.git
- Check the status
Set the upstream
- Check the linked origin
git remote -v
- add the upstream
git remote add upstream <github-link-of-main-project-on-organisation>
Create a branch for the project
git branch <any-branch-name>
- Checkout (Enter in) the branch
git checkout branch <branch-name-given-in-step-5>
Do the fixes:
Do all the fixes you wanted to do in the project.
After fixing : Use following command to push to code to your copy of project (your fork).
git push origin <branch-name>
Making pull request to organisation/project
- Go to github
- Open the forked project
- You will see the compare and pull request button click on it
<your-username> -> <branch-name>will be compared to
organisation -> main
- Click on create pull request
- Describe your fixes and link the issue with it by adding
#<issue-number>in the description
- Again click on pull request. You now have made a pull request to your organisation/project. As soon as the pull request passes the integration tests and is merged in main code base the issue will be closed atomatically and you are now a contributor to the project
Now you can do anything of the branch created on your local machine. Either merge it or delete it.
Do not forget to run the following command before you start contributing to the next project.
git pull upstream master
This will update the locale code with the lastest update main code.
You can refer the repo here