Getting started with open-source can be a difficult task, not only because we are being introduced to some new technologies but also because most of us have never worked in a collaborative environment before, which is one of the most important skills anyone could acquire, not only in the coding and programming area.
It may appear a very challenging and overwhelming task at first but it is, in fact, a fun and rewarding experience.
Open source is the original way of creating software – in an open, transparent and collaborative manner. “What is free software?” and “What is open source?” are good overviews of the subject.
Open source means that you get the final executable for a software project, and also have access to the source code from which it was produced. Having access to the source code means that you can better understand how the program functions and more importantly you can modify it to fix any problems you have with the software or add new features which you desire.
What might look like a chaotic way of creating software (everybody focusing on their own needs) works surprisingly well: for example the Linux kernel contains more than 4,000 man years worth of effort.
Here, practicing would be our primary objective but there are also many pragmatic reasons for contributing to open source projects:
1. To add a new feature / improvement to a project; or to fix an issue with a project
2. To practice and learn about software development – contributing to a project is a great way to learn about the more hands on aspects of software development like using debuggers, version control systems, issue trackers, etc.
3. To practice/learn a particular programming language or technology which you are interested in
4. To build your online presence – highlighting open source contributions relevant to the job makes your resume stand out from the rest
1. Test : Start with testing the code for any bugs, if found raise an issue about it. (Always check first if someone has already raised an issue for the same.)
2. Suggest features: Look for possible improvements and provide suggestions in the comment section.
3. Design: Considering the fact that practice is the main objective, try to make little changes on your forked repository and make a pull-request about it. Commit often and provide appropriate messages to your commits.
4. You can also help in providing proper documentation of the various projects.
I hope it helps you.
Happy Coding!