I Tried Open Source for 1 Year

This is what I learnt from it!

Have you ever considered trying out open source?

During my first year of college after clearing the Joint Entrance Examination(JEE) for an entire year, the experience was nothing short of transformative. Open source can be defined as software whose source code is freely available. Open-source technology has revolutionized the way we approach software development. It has much to offer for anyone interested in learning, growing, and contributing to a global community of like-minded individuals.

In this blog post, I want to share with you some of the experiences that I faced during my year-long journey in open source. From the benefits of collaboration with different kinds of folks to the power of transparency and inclusivity.

So, if you're curious about what open source can do for you, I invite you to read this blog about how I was exposed to different types of technologies through open source. Trust me, the experience was truly worth the effort!

What is Open Source?

Open source refers to the practice of making software or other products' source code openly available and allowing anyone to access, modify, and distribute it. Open source software is typically developed by a community of folks who collaborate on the code and work together to fix bugs, add features, and improve performance, also to deep dive into the software.

Open source projects are usually managed through online platforms such as GitHub, GitLab, and Bitbucket, where anyone can contribute to the codebase by submitting bug reports, feature requests, or code changes. The philosophy behind open source is based on the belief that collaboration and transparency are key to creating high-quality software that benefits everyone.

Be brave enough to contribute anything

My exposure to open source would not have been possible if I had not explored things around the world, since there is no open source culture around me. I was learning DSA(Data Structures & Algorithms) in Java and some CP(Competitive Programming) stuff, thanks to Kunal Kuswaha who showed me the different side rather more exciting side of programming i.e. open source. As a beginner, I had difficulty understanding what open source actually is, because all I knew about open source was Git and Github, where tens of thousands of programmers from around the world host and maintain projects, so I struggled to understand what it even was. But, the transparency and the environment were interesting. I was not able to find whom to ask for help. I headed onto the issues section where all issues regarding the current repository were listed and folks who were interested in contributing were having a chat with each other. I raised my voice over there asking "how to get started with the contribution", later that day I got replied from the maintainer guiding me towards the documentation and contributing guidelines(set of rules to contribute in the current repo).

However, despite the benefits of open-source software, many developers are hesitant to contribute to open-source projects. There are many reasons for this, including a lack of confidence in their abilities, a fear of rejection or criticism, or simply not knowing where to start. But the truth is that anyone can contribute to open-source software, regardless of their experience or expertise. In fact, the open-source community is built on the principle of collaboration and welcomes contributions from developers of all skill levels.

Getting started is all it takes, it does not matter what you contribute or to which repository you contribute. You just have to be calm and enjoy the process going on, you will eventually learn how to contribute to open source. Feel free to ask the maintainer in the issue section if you encounter any difficulties. I can assure you that the maintainer will respond as soon as possible.

Learn Git

Git is a version control system that allows developers to manage their code changes and collaborate with other developers. It is widely used in the software development industry and is an essential skill for anyone who wants to work with code.

It was pretty easy for me to learn git and assume that it would be easy for folks who already have some programming background. But the real picture comes to play while working on a project, if you don't use Git during your development then there is no use in learning git. In fact, Git is a really great practice. As soon as you use it, you'll find it to be a relief as well as more productive. While contributing to open source Git is basically a prerequisite to get started.

Resources:

  1. Git tutorial Kunal Kuswaha

  2. By Git-Scm

It doesn't matter if your code is right

The open-source culture is built upon collaboration and a willingness to help others learn and improve their skills. When contributing to a repository in GitHub or GitLab, it's not uncommon to feel unsure about your code, especially if you're new to the project or the programming language.

However, the beauty of open-source culture is that you can create a pull request from the development branch, which allows the maintainers and other contributors to review your code and suggest changes. The community is usually supportive and willing to guide you through the process, pointing out what you did well and areas where you can improve.

This is a great opportunity to learn from experienced developers and get feedback on your code. The maintainers of the project are usually happy to help and will offer constructive criticism rather than criticising you for your poor work. They may also provide resources and links to help you improve your code and learn new skills.

Ultimately, contributing to open-source projects is a fantastic way to develop your skills, build your portfolio, and make connections with other developers in the community. By being open to feedback and willing to learn from others, you can improve your coding abilities and become a valuable member of the open-source community.

You'll be rejected, not everybody will like your idea or code

It's important to understand that rejection is a natural part of the open-source community. Open-source projects are built and maintained by a diverse group of folks around the globe with varying perspectives, skills, and experiences. Therefore, not everyone will share the same ideas or development style.

However, rejection does not mean failure. It's an opportunity to learn and improve. Receiving feedback, whether it's positive or negative, is valuable for growth and development. It's important to approach rejection with an open mind, and use it as an opportunity to refine your skills and learn from others.

Remember, the open-source community is all about collaboration and sharing knowledge. So, even if your idea or code is rejected, don't give up. Keep contributing, keep learning, and keep growing as a developer.

Conclusion

At last, I would like to conclude by saying that I learned many things during that year and love contributing to open-source projects and I'm still contributing. You can reach out to me via GitHub or Twitter.

Did you find this article valuable?

Support Yuvraj Chhetri by becoming a sponsor. Any amount is appreciated!