Open Source Software has enabled a generation of entrepreneurs, investors, developers and scientists to pursue their interests and create amazing new things. Prominent examples include Linux operating systems, Open Bazaar eCommerce platforms and Bitcoin decentralized blockchain currencies. But how do we encourage more people to contribute to Open Source Projects? This article explores the how-to advice for getting started as a beginner.
Contributing to open source projects has many benefits. Contributing is one of the easiest way to learn how to code as well as improve yourself as a programmer. This guide provides an overview of what open source projects are and why they exist, the various ways you can contribute, and how you can get started.
Learn a programming language
Since open-source contribution requires you to read/write code if you want to be involved in its development, you are required to learn a programming language to get started. You can get started with any language of your choice. You can easily learn another language at a later stage if a project requires it.
Many people help with documentation, translation, etc as well which does not require programming. If you do not want to contribute as a developer then you can skip this step.
TensorFlow projects are for those new developers who are interested in Machine Learning and Deep Learning. Beginners should ideally learn from some TensorFlow Tutorials and observe the official models before contributing to any project.
Currently, the GitHub TensorFlow Model Garden contains projects of Natural Language Processing and Computer Vision. These official models are a collection that uses TensorFlow’s high-level APIs and is to be properly curated, tested, and updated to keep up with the latest build. These models are also intended to be properly optimized so that they run the same or faster with each new build.
Get Familiar with Version Control Systems (VCS)
When we are working on a big project, it is extremely important to store all the changes that are being made to recall it at a later stage. Version Control Systems are software tools that help with it. They keep track of all the modifications that happen over time in the source code as versions. They also allow us to go through older versions and revert to an old version if required.
You can read more about VCS here – What is version control?
There are many version control systems such as Git, Mercurial, CVS, and SVN. Git is the most popular and most widely used version control system in the industry.
Create a branch
Before making and pushing any changes, you have to create a branch. The branch you create holds all your changes. Thus, everyone working on the project can work independently, and without getting into conflict with each other.
When it comes to naming your branch, all open source projects have a naming convention. An example could be your_name/issue_fix. For instance, let us say I want to fix a broken article image. My branch would be something like catalinpit/fix_broken_article_image. Alternatively, you can use a branch name like issue-[issue number]. However, make sure you read the rules and guidelines from each project. Every project does it differently.
GitHub is a code hosting platform for collaboration using the Git Version Control System. In layman’s term, it is the place where you keep all your projects and multiple people can work together on those projects.
Good resources to get started with GitHub:
- GitHub Learning Lab
- Git & GitHub Crash Course For Beginners – Traversy Media
- Git and GitHub crash course from FreeCodeCamp
Note that you do not need to be a master in VCS/Git/GitHub to start contributing. Once you are comfortable with the basics, you can start contributing to open-source.
There are many projects on GitHub and other similar sources that are aimed at beginners. Some of these are meant to educate by providing you with study materials, while others are more like walkthroughs or practice exercises. Whatever the case may be, these are beginner-friendly projects and often the place to start. However, this is not at all the case in all projects marked as a “good first issue”.
Some of the high-level apps, websites, platforms, and projects also offer work that is fit for beginners. This is mainly because the high-level works are done by people who have the necessary qualifications to do so, but the project is still open-sourced and contains many tasks to be done on all levels of difficulty. Here are some intricate projects that also offer a spot for the newcomers to tackle real issues while learning the ropes.
Make your changes
After creating the branch, you are ready to make changes to the project.
At this point, you can make code changes, update the documentation, organize the files, or anything else. Always remember that all contributions are important. Whether you add a new feature or fix errors in the documentation, both are important and valuable.
Now that you made the changes, we can move to the next steps – committing and pushing the changes!
Zulip is one of the fastest-growing open-source projects on the internet and is an open-source group chat application. It combines instant real-time messaging with the utility of threaded conversations and runs on open-source platforms. The app’s team offers many tasks that a beginner level programmer can perform to learn as well as add to their portfolio.
On Zulip, you can be one of the many contributors to the platform by contributing code as well as performing non-code contributions such as reporting issues, translation, or giving feedback to improve the app. You can also host and run a Zulip server, which runs on many platforms, including Ubuntu 18.04 Bionic, Ubuntu 16.04 Xenial, and Debian 9 Stretch.
Commit and push your changes
Congratulations! You made the changes, and now it is time to create a pull request. However, you still have to do a few things before opening a pull request.
First of all, run git status to see which files you modified. Once you see the files changed, and after you decide what you want to commit, run the following command:
The last few years have seen an increase in growth of the open source community, and with it a large number of projects are now available to build upon. Many of these projects are maintained by volunteers, who work hard on them to add new features or fix bugs.