How to contribute to open-source projects?
Published 8th, November, 2022
5 min read
Developers study, observe, build, fail and build again. And as it is said, "one isn’t a true developer if they don’t fail and persevere", is only true in part, since you can proactively contribute to various software packages and projects.
But why to go the extra mile?
There are various open-source packages that are helpful in the development of scalable products. If this seems interesting to you then reading this article might help you get started on the journey of open source.
First of all, when you contribute to open source projects, you get to learn a lot from the process. Especially, when it comes to CI/CD operations, you will get soaked into the routines of maintaining branches and pushing and pulling the code. In addition to that, you may learn better ways to write, test and debug your code.
Second, it helps you greatly in making a value addition to your developer portfolio, technical recruiters will certainly see value in your contributions, thus giving you get a good head start than most others.
Learn the basics of Git
Git may seem confusing but is actually quite easy. And as easy it is, it’s also very crucial to become a good developer. Git is all about maintaining a steady and dependable version of your code. All you have to do is to first learn the philosophy of the application, such as, the concept of ‘pushing’, ‘pulling’ and ‘forking’ the code and branching and version maintenance. Then you can go ahead with the commands.
Choose your preferred technology stack/language
You may be a programming polyglot, but you will need only the best in your arsenal. Out of n number of languages your stack, go for the best one. Since your goal is to contribute, you might not want to deliver a bad code, which is a patchwork of bugs, brute force programming, and lacking standard conventions, like The Frankenstein monster! Remember, you cannot create the Hulk with a botched up lab experiment.
Choose your domain
The internet is rife with a rich and colourful palette of software. And depending on your level or expertise, you can choose them accordingly.
Desktop based productivity software, especially Ubuntu-based one’s, are a good start for newbies. And there are other software of similar nature such as word processors, spreadsheets, calendars, to-do lists etc. However, you can also find web-based counterparts of these. Or if you have multiple limbs, you can also jump into mobile application development in this category.
And it’s all fun and games, when you start developing one. The game market has exploded since the past decade. You can look for games across platforms and well within your stack as well. For example, you can start contributing to games on Ubuntu software library or random app-based games for mobile, and that’s the a good way to go for entering the world of game development.
You can also add to it, browsers, code editor plugins, Optical Character Recognition apps, image filters, desktop multimedia software, travel and grocery apps to name a few.
How to begin
The best way is to start making minor contributions such as bug fixes, sending Git pull requests or even writing a section of software documentation. These methods are good enough to give that little push and make you test the waters before you dive in.
The next step would be to start with choosing easier projects, that you think are within your bounds. One way to look at this, is by listing down all categories of apps you will find on web and on desktop. Then you can go through some tutorials online that give you an abstract picture of the developmental process. After doing a thorough research for a day or two, you can jot down a few categories that you feel are doable.
Now plug that with your favourite programming language and voila! Ignition successful!
You should proactively look into writing a clean code that follows conventions, is easy to read and understand. And there’s a more human reason behind that, rather than a technical one. When you start developing your code for open source projects, you’ll certainly come into contact with awesome individuals who will help you grow.
However, you should be able to sense that the team has certain conventions and rules, explicit or implicit, that you are expected to follow. This can include, indentation rules, comments, change-of-line rules, when to write a separate module for a sub-process etc. When you want to stay in the pack, you got to learn its ways!
Level up constantly
Open Source software development can be fun, but if you want to make that work for your career advancement and sharpening your skills, you should keep climbing the ladder. Suppose if you are developing productivity desktop applications for Ubuntu as a beginner(such as LibreOffice), your eventual progression should take you towards developing more complex and dedicated software, like anti-virus or download software.
You can also start to diversify into other genres of software if you are interested enough and can catch up with slightly newer concepts and related development stacks.
Discover more communities
There are several open source development communities that you don’t need to stay pigeonholed into a single one, with each community having its niche or speciality. Choose the one whose speciality interests you or you can go for generic if your ‘tastes’ are varied.
Source Forge, First Contributors, Azure Docs, and many others are lined up for great programmers.
Yeah, got that! But what are their any suggestions?
Alright, so here is the list of some of them:
Source Forge is like a bowl of hundreds of candies with each having its own colour. Any obscure and awesome software (including ones running on Ubuntu) that you have come across, may find its community on Source Forge. The community is large and tightly knit and hence well-known in developer’s circles. So whether you are looking for a specific type of software development, or something very general, Source Forge is a good starting point.
I guess there’s not much to say about it. The whole existence of the Linux Foundation is about providing everything open source, hence another good option to begin with. Linux has a range of software and documentations where any newbie can begin, along with detailed instructions and guides about
GitHub is a popular code repository and now also a popular and growing open source platform. You can literally find the source code developed by freelance developers in any possible domain, ranging from web apps, desktop software, A.I-driven, firmware, robotics and others. If you are already using GitHub, you can take time to discover various contributors and projects.
GitHub itself is a Open Genus is a major open source repository on GitHub that has a contributor count of more than 900 developers. They say that Open Genus began with a single idea, and then they branched out in several directions. So again, if you are looking for a more diverse contribution across development genres, Open Genus can be also be the one you can count on.
It would be apt to conclude the discussion by stating that you should hon your development and other related skills to a decent degree before you start contributing along with some research about the quality of content that needs to go in. And then you are free to fly.
And remember, no contribution is trivial or pointless, as far as it makes at least some value addition.