The choice remains in our hands — to experience adventure or to be limited by the fear of it.
OpenSource world has always tried it’s best to welcome the newcomers and beginners in this beautiful journey. It is built and supported by people that not only run this kind of development but also always willing to provide a helping hand to everyone. It is more than a kind of software development, its a culture to be followed and to be promoted.
But still, even after many efforts of numerous people out there, sometimes it comes out a bit intimidating for newcomers in OpenSource. People get conscious about the fact that their work is open to all, so people might judge their initial contributions, comment on that if it has any silly mistakes, and might think how naive this person is for taking so much time in fixing an issue that is very basic having good first issue tag on it. People do overthink these kinds of questions in their mind, it’s human nature.
Whereas the things turn out totally different in OpenSource, the advantage of openwork is that anyone from the community can review your work that could result in a fast response. Second thing, you will get opinions and suggestions from many people so you will have a better idea of how you can approach an issue, you will easily get help from the community if stuck anywhere and they won’t judge you for this ever & most importantly those suggestions are also tracked by maintainers and mentors so you will have a very rare chance to get a wrong suggestion from anyone.
“Ask dumb questions. It’s the smartest thing you can do.”
The last thing is that it increases your communication with the community. The best way to have better interaction with the community is to talk through your work. The discussion that takes birth in the form of comments & suggestions while reviewing your PR or approaching an issue is the best kind of interaction in OpenSource. Then, through this only you will get to know how friendly and supportive your co-contributors, maintainers, and mentors are. So, never hesitate or step back to ask questions, to create a pull request, or in helping anyone else. The community is made for this, and the only line which they always cherish is ‘The dumbest question is the one that is not asked’. So, don’t restrict yourselves to speak in a public forum or channel, to showcase your work, to put forward your suggestion on any PR or issue.
Always welcome others’ opinions & accept your mistakes
One more thing which I felt at my initial phase of contributions and I know many other people who felt the same is that when you create a pull request regarding any issue, maintainers generally request some changes or modifications to your work, at that time don’t feel like your work is not up to the mark, it has flaws or someone pointed your mistakes or you have done something wrong. The mentors and reviewers don’t want to stoop or humiliate anyone, they just want to improve your work so that it can be merged into the main source code and your name can be listed in the contributors' list. If you feel that they shouldn’t request those changes to improve the code, then what will be the 2nd option left, they’ll just close your pull request without specifying what was wrong in that. And due to this behavior, no one would ever try again to contribute to OpenSource. But if you will politely accept those changes requested by them and make the desired updates you will get the feeling of making a significant contribution to the Organisation. :)
It’s okay to be stuck.
My Outreachy internship period started a few weeks ago. In the 1st week, I have to implement some constraint checks for wikidata imports. Now, clearly the work is based on the constraint, and in the 1st week, I got stuck on a very silly point that how even the constraints are applied on a certain property. I have to go through the documentation and some tutorials to know the working of it. When I started implementing them, sometimes I got stuck in parameters parsing, sometimes in reducing the complexity of the code in terms of efficiency and many more. But I kept on surfing, researching, and exploring the code & documentation. Some things worked, some didn’t. After investing numerous hours implemented a few constraints in the 1st week and created pull requests for it. For some moments, there was a feeling of achievement in myself for accomplishing the weekly tasks.
Then, after some time, my mentor reviewed my work and requested some changes to it. And you know, the changes he requested sounded very difficult to me because they were out of my thinking scope while implementing them. But the fact that came into my mind at that moment wasn’t the changes he asked to do. It was the fact, that how could he analyze the PR so fast and pointed out those faults, it was unbelievable to me. And it always remains the fact that when we see the contribution of our mentors and other contributors that are working in the organization for a pretty good time is commendable. They resolve giant issues in a very short period of time, the approach they have for bugs, issues is something that sounds very exceptional to a newcomer.
“Everyone struggles, don’t ever forget that.” — Anonymous
At that time, don’t make yourself feel demotivated due to the fact that how I would be able to work with them, meet their expectations. Rather, you should feel motivated with the fact that they also have had struggles with the code at their initial phase and they also had faced problems at their time and had to invest a number of hours in understanding the codebase and going around the documentation. We should feel lucky that we have got such mentors that are so qualified enough that they detect are subtle mistakes in a moment of seconds.
Many a time when I create pull request or change any existing one, the tests fail, sometimes I have no clue how to proceed in implementing a particular class or method, writing tests to test your code is also one of the things I suck too. But the more and more time I’m giving to it, I have started loving to play around it. So, always remember the fact that “Everyone struggles”. Be patient, be consistent, and keep working. Just don’t sit back struggling in a particular problem for days, the mentors are there to guide you, so take their guidance and help to make this journey more beautiful and fruitful.