This post was first posted on my blog.
Open source is one of the best ways to get started with the real-world experience of the programming world and learning quickly. Also, open-source organizations are very keen and welcoming to the new contributors to their platforms.
Lately, I have heard a lot of people saying that contributing to open-source projects is very difficult. So, I decided to come up with this post just to break the myth.
I know it can be hard at first but believe me, there are far more harder things in the programming world than starting to contribute in the open-source.
In this post, I am going to share the motivation and plan to write your first patch for the open-source organization that you love to use in your personal time.
Why should you contribute to open source.
I have been doing open source for quite some time now( Going on and off). My first interaction with the open-source was back in 2016-17 when I was writing my first proposal for Google Summer of code-2017.
I was trying a lot of organizations back then. I started out with the chat-based organization whose name I don't remember now.
They were writing a chat-based client using XMPP protocol and we wanted to implement this chatting system in our college so that everyone in the college can chat with one another using the roll numbers.
Although I was able to know the process of writing the code I don't think it ever got merged with the main code. What I learned in there was how to read and navigate through the large codebase quickly.
I tried a few others and finally, I ended up spending my summer writing code for an organization called AboutCode.
You can read about the experience here.
Long story short, I know how to start off and write pull requests that organizations want to merge to there main code.
Before starting that let's discuss why we would want to do any open-source development at all.
Learning to build end to end solutions.
Well, the first and foremost advantage of doing open-source is that you learn different things.
When you are doing open-source you have to complete the PRs which involve writing code, tests and documentation for the feature that you are building.
Sometimes you have to become the tester to test out the feature that other build to find out bugs and find mistakes to fix.
Mostly you will have to architect your own solution for the problems that you are solving as well.
Learning how to communicate properly with the team
Open-source involves communicating with all the people in the organizations in a public channel. This will help you a lot on how to communicate your concerns better.
How to ask questions and what questions to ask is very important to learn.
This skill will help you throughout your life.
Getting recommended and increase visibility
As the name suggests, your code is going to stay there for a long time to come and people will judge you with the code that you have written for these organizations.
Since most of the organizations have a high standard for type of code they merge to the repository, you will be rated highly among your peers for participating in some open-source organization.
Good for your career
Doesn't matter what you want to do after the open-source gig is over. Maybe you want to do open-source throughout your life, starting out with an organization will always be good for you.
Generally, open-source organizations tend to recommend the org participators which end up helping you in your interview with some big company.
Sense of pride behind building something
You also get a sense of pride while you build something that people use.
You also get good feedback from the users who directly use the feature that you build.
Those are all the reasons why one should be doing open-source as a project over the holidays or in their free time.
Note: I am sure I must have missed something, do let me know about your motivation behind doing open-source.
How to start contributing to the open-source
Now that we have talked about the reasons why one should do open-source development, let's talk a bit about how you start with that.
Choose the organization
Choosing an organization is very important. Always try to choose the organizations whose product you might have used in the past.
This helps you to build a sense on how the product should work.
Otherwise, you can find the organization whose tech stack involves something that you know.
Just go to the GitHub search page and find out the organization with the programming languages or any other thing that you want to learn about.
Join all communication channels
The next step is to figure out all the communication channels which the organization uses and join all of them.
Introduce yourself as quickly as possible. Communicate your intentions of joining early. If you are there to participate in GSoC, best to tell them right from the start that you are doing it for the reason.
Sometimes, they are thinking of not participating in the GSoC for the next season and it's always good to know earlier rather regretting your decision later.
Setup the project
Quickly set up the project on local following the instruction from the organizers or READMEs and let them know if READMEs are wrong anywhere.
Sometimes, people figure out something wrong in the READMEs and its a great point to start and write a patch for them.
Figure out the good-first issues to start with
Most organizations mark easy issues as good-first
issues. You can pick any one of those issues and start solving them.
Just remember to tell the organizers that you working on that issue so that no one else picks it up at the same time.
Just start
My final and most important recommendation is to just start. Get up and pick up your organization and start building things that you love and make an impact.
Thanks, guys for coming this long and reading through the post. Please leave your valuable comments down below and share this post with your peers and let them know that it exists.
Follow me on twitter or here for more such articles.
Top comments (5)
Thanks a lot for your share and your advices, Can you tell us even more in detail about the project you were working on, just to give the beginners like me an idea about the types and responsibilities that will be brought to raise
I really appreciate people who encourage others to contribute on open source projects. This can really be helpful on career.
Thanks for the kind words @diglopes . I believe everyone should be doing some open-source development in their free time just to give back to the open-source community from which we are taking this much.
I can't describe how much my GSoC experience has helped me in my career.
I definitely agree. Code review is such a treat and a real good source of learning.
Just the experience with getting the structure of new projects is also golden!
Rightly said @patricnox , I have learned a lot during all those code reviews.
I believe going to new projects allows you to read more and more code improving your ability to grasp to things quickly.