DEV Community

Cover image for Stop Contributing to Open Source
Jitendra Choudhary
Jitendra Choudhary

Posted on • Updated on • Originally published at jitendrac.hashnode.dev

Stop Contributing to Open Source

Imagine contributing to open-source can change your life. By creating pull requests to fix typos, grammatical errors, or rephrasing text, you can make a valuable contribution to a project you care about. Who knows, your contributions might even lead to a high-paying job! And the best part? You don't have to worry about the usual job search hassles like interviews, resumes, or data structures and algorithms. This opportunity sounds lucrative right, doesn't it?


Introduction

Open-source projects can be an excellent resource for developers who want to become expert developer. These projects provide real-world, hands-on experience, allowing developers to work on real-world problems and write code. This is crucial for skill development. Working on open-source projects exposes developers to a diverse group, allowing them to learn from experienced programmers, receive feedback on their code, and observe best practices in action.

In this article, I will cover the problems faced by open-source maintainers due to beginner developers creating unwanted and annoying pull requests. I will also discuss why beginners choose to contribute to open-source without understanding the purpose of their contribution. Why Open-Source Might Not be the Best Place to Start for Beginners.
Image


Maintainer's Perspectives on Addressing Issues Arising from Beginner Developer Contributions:

Imagine a scenario where a first-time contributor submits a pull request to change the word "gm" to "Good Morning". This action would trigger notifications, often in the form of emails, to all 500 watchers of the repository. Each notification would require the maintainers to take time out of their schedule to visit the pull request page, evaluate it for spam, close it, tag it as spam, lock the thread to prevent any further spam comments, and then report the spammer to GitHub in the hope of stopping their time-wasting rampage.

Pull Request Overload:

Pull requests are essential to any open-source project, and they play a crucial role in ensuring that the project evolves and grows. However, sometimes contributors can create spam pull requests that can cause a lot of trouble for maintainers. These types of requests can be anything from a joke or meaningless change to a completely unrelated pull request. Spam pull requests cause disruptions, consume a lot of time, and may harm the project's overall health.

Maintainers invest a significant amount of time and effort in reviewing and addressing these spam requests, which takes away valuable time that could be spent on meaningful contributions and project improvements. The high volume of spam pull requests can make it difficult for maintainers to differentiate between genuine pull requests and those intended to disrupt or spam. This can also obscure legitimate contributions and important discussions.

Addressing Spam Pull Requests for a Positive and Trustworthy Open Source Environment:

In addition to causing disruptions, frequent spam pull requests may create a negative atmosphere within the community. Contributors may become frustrated or lose trust in the project's management, leading to a decline in collaboration. If the spam issue persists, it may erode the trust of both contributors and users in the project. A perception of a poorly managed project may also discourage potential contributors from getting involved.

Maintainers need to address spam pull requests and create a healthy community where genuine contributions are welcomed and appreciated. By taking measures to prevent spam pull requests, maintainers can ensure that their time is spent on tasks that contribute to the project's success and that the community remains engaged and motivated.
pull-request-overload


Understanding Why Beginners Choose to Contribute to Open Source Projects?

The open-source community is a vibrant community that thrives on the contributions of developers from all skill levels. It often welcomes new contributors and provides them with a supportive environment to participate in projects. Many open-source projects even offer initiatives like "beginner-friendly" or "good first issue" to make the process of contributing more accessible and less intimidating for newcomers.

Social Media Influencers and the Pitfalls of False Open Source Expectations:

While success stories of developers who made significant contributions to open-source projects early in their careers can inspire beginners, it's essential to understand that such contributions require a certain level of skill and a learning curve. These stories may not fully convey the challenges that the contributors had to overcome to achieve their success.

It's crucial for beginners to understand the skill requirements and complexity of the open-source projects they want to contribute to. Some projects may be more straightforward and beginner-friendly, while others may require a higher level of technical expertise. Beginners may underestimate the technical challenges and assume that they can still contribute even with limited skills. It's essential to recognize that some projects may require more experience and knowledge, and it's okay to start with simpler ones and gradually increase the level of complexity.

The Purpose of Open Source Contributions Beyond the Rush for High-Paying Jobs:

Contributing to open-source projects can be a valuable addition to a developer's resume. It showcases their skills and demonstrates their ability to work collaboratively in a team. Beginners may believe that showcasing their contributions can make them more attractive to potential employers and increase their chances of landing a job with a high salary. While this is true to some extent, it's essential to remember that the primary motivation for contributing to open-source projects should be a genuine interest in the project and a desire to learn and collaborate with other developers.

The Dilemma of Hacktoberfest:

It is quite common for developers to take part in events like Hacktoberfest, which is organized by companies such as DigitalOcean. The event offers contributors a chance to earn a free T-shirt by making a certain number of pull requests to open-source projects. Although this initiative aims to encourage more contributions, it has also faced criticism for potentially leading to low-quality or spam contributions. Some individuals may be more focused on the incentive rather than meaningful engagement with the project. Developers and maintainers need to be mindful of the motivations behind contributions and work towards fostering genuine collaboration and improvement within the open-source community.

It can be quite comical when developers submit pull requests that have been generated by AI bots. I've even encountered a situation where a typo had already been fixed and the pull request was closed, but 13 more pull requests were submitted to address the same issue. It was quite frustrating.
spam-pull-request-hacktoberfest


Conclusion

while contributing to open-source can indeed be a transformative experience, it is crucial for developers to approach it with genuine intentions and a clear understanding of the impact of their contributions. The allure of incentives, be it a free T-shirt or the prospect of a high-paying job, should not overshadow the core purpose of open-source collaboration, learning, and meaningful engagement.

Maintainers face significant challenges in managing the influx of pull requests, especially when they are driven by motives other than a sincere interest in project improvement. The high volume of spam and low-quality contributions not only disrupts project development but also jeopardizes the trust and collaboration within the community.

It is essential for both beginners and experienced developers to reflect on the true motivations behind their contributions, avoiding the pitfalls of false expectations or participating in initiatives solely for rewards. By fostering a culture of genuine collaboration, open-source can continue to thrive as a community-driven space where developers can learn, grow, and make meaningful contributions that extend beyond personal gain.

This article was not meant to discourage beginner developers, but rather to raise awareness among fellow beginners. There is a difference between a beginner developer and a beginner open-source developer.

If you have read this far and found my thoughts on open-source valid, please feel free to share them on X by mentioning JitendraC and let me you loved it. If you would like to read more of my content, you can follow me here. Also, say hello on X where I share my tech journey.

See You on X

Top comments (41)

Collapse
 
shricodev profile image
Shrijal Acharya • Edited

Typo fixes PRs are a nightmare for maintainers.
This would probably be a better title: "Don't contribute to open source if you're just starting to code"

Collapse
 
thomasbnt profile image
Thomas Bnt ☕

Oh thanks, I'm not alone to see the bad title here. 🙏🏼

No. Don't stop to contribute to the Open Source.

if you're a beginner and want to contribute, first understand what you're getting yourself into - even if you do it occasionally, there are real people behind it. And as I wrote in this post, it can have a significant and negative impact on the mood of maintainers to see spam.

However, a beginner can totally contribute to a repository that is at their level.

Collapse
 
anmolbaranwal profile image
Anmol Baranwal

The title is straight wrong!

I was confused and was eager to read on why the person is suggesting not to contribute to open source. I agree with the contents, but It might not be entirely true.
Hacktoberfest is good if you contribute in organizational repositories, that have very good standards. I never participated and for obvious reasons.

A classic example of clickbait.

Collapse
 
shricodev profile image
Shrijal Acharya

Exactly, that's the point. Beginners should consider contributing to projects where they feel they have the right knowledge required. Contributing just for the sake of PR acceptance or a prize is ridiculous.

Collapse
 
jitendrachoudhary profile image
Jitendra Choudhary

Yes, every beginner is welcomed for meaningful contributions.

Collapse
 
sansmoraxz profile image
Souyama • Edited

Things like missing items in documentation can result in ppl not familiar with the code base to waste time digging through the code for trying to find the root cause of a problem they may be having.

Typos can result in a lot of misunderstanding. At least I have few experience having to deal with such from internal KT docs.

There is an increasing hatred on doc contributors these days. Some of it is understandable, but please don't jump on the bandwagon especially if it does not impact you.

However still at least for ones starting out, read the contributing guide (if such a doc exists in the repo), check how other pull requests are being tagged, and follow the same practice. More often it is along the line of:

chore: fix typo - change React to ReAct

then whatever description follows.

Collapse
 
parambirje profile image
Param Birje

Definitely, I think we should strive to create meaningful contributions, have a goal of genuinely improving the app and learning through the process. Open source software is a place of immense value than just a way to get free swag.

Collapse
 
jitendrachoudhary profile image
Jitendra Choudhary

Absolutely! Couldn't agree more. Open source is about making meaningful contributions, improving together, and learning along the way. It's not just about free swag, but building a community and making a real impact. 🌐🚀 Every beginner is welcomed to contribute not mess.

Collapse
 
kurealnum profile image
Oscar

Hi there, I'm noticing that this post is very similar to this video. Your line of reasoning is the same as the video's, and there are a few sections where it looks like you paraphrased. For instance, your article contains the phrase "be it a free T-shirt or the prospect of a high-paying job", which looks like it has been paraphrased from 7:48 in the video. Please cite your sources 😄.

If you didn't take anything from this video, I do apologize.

Collapse
 
jitendrachoudhary profile image
Jitendra Choudhary

Hi there, thanks for reaching out! I appreciate you pointing out the similarities between my post and the video. While I strive to create original content, it's possible that my thinking could be unconsciously influenced by information I've consumed, including the video you mentioned. My intention was not to plagiarize, but rather to share my own perspective on the topic based on my understanding and experiences.

Collapse
 
lucapu88 profile image
Luca Caputo • Edited

I remember a video by an Italian dev/youtuber where he said 'throw yourself into the open source fray even if only to practice, and if they accept a pull-request, even if it is a piece of crap that changes a letter, it is already an achievement'. I remember that at the time I, as a junior, contradicted him, because in my opinion a junior in an open source project is like a newly licensed driver racing in F1.
And I found both him and other people disagreeing with me because, according to them, messing around with code in opensource projects, making lots of mistakes, helps you get better! which may be true, but there's one detail: with that statement, they practically didn't give a damn about the project and those who maintain it!
Honestly, I still don't agree and I will never agree with this Italian idea that as a junior you have to throw yourself into the fray at random in opensource projects, which are almost always quite complicated... In my opinion you need more experience, because opensource is not a game, people are not wasting their time creating projects!
There are people who have put a lot of effort and effort into it, and then seeing a junior messing up the code and wasting a maintainer's time is like when you hand a notebook of essays to a baby and he starts scribbling in it, then the only solution is obviously tear out the scribbled page.

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

messing around with code in opensource projects, making lots of mistakes, helps you get better!

Yes, that's true; but you can also do that by just cloning the project and playing around with it, without ever opening a PR. Newbies can learn without publishing the results of their experiments.

Collapse
 
jitendrachoudhary profile image
Jitendra Choudhary

Exactly there is a nice quote addressing the same - "Victorious warriors win first and then go to war, while defeated warriors go to war first and then seek to win."

Collapse
 
jitendrachoudhary profile image
Jitendra Choudhary

While I understand the idea behind learning through practice, I disagree that jumping into any random open-source project is the best approach for beginners. It's encouraging to see some people share my perspective.

Collapse
 
fernandezbaptiste profile image
Bap • Edited

This is an excellent article, and there are a lot of valuable nuggets for beginners. I do think the title was a tad bit misleading, but oh well, without it, I wouldn't have read the piece, so good job on this. 🙃

One thing which you highlighted but needs a little more emphasis is that beginners need to get the chance to try (and therefore make mistakes when contributing to open source). Don't get discouraged if you are a beginner and have never contributed yet. Your first contributions will, honestly, not be great - but that's the price maintainers need to pay, to foster the next generation of contributors.

I agree with one of the commentators; the main idea is don't start contributing code if you are only starting out as a coder.

Collapse
 
jitendrachoudhary profile image
Jitendra Choudhary

As you mentioned, I did touch on this point in the conclusion, encouraging beginners to start small and learn as they go. However, I love your suggestion of dedicating a whole article to this topic. I'm already planning future content, and focusing on how beginners can approach open source contributions is definitely on my list!

Collapse
 
nessuarez profile image
Nestor Suarez Alfonso

Good point on your post. The thing is that contributing to open-source is seen as a PR counter that you only want to increase in any way.
Maybe PR's should be categorized depending on type of changes (is not the same that renaming a variable, that a typo change in a comment), the moment that your project is (maybe adding new comments is important because you're preparing documentation to launch your project) or simply you value more performance improvements in some parts that adding a bugfix for a corner case.

What do you think? PRs should be evaluated depending on type of changes introduced and project circunstances?

Collapse
 
jitendrachoudhary profile image
Jitendra Choudhary

Overall, I believe exploring a system that categorizes PRs based on specific criteria has some merit, but evaluating PR might require lots of efforts by the maintainer. In the end the issue won't be solved instead will be compounded and all the maintainers will bear the cost and eventually the Open Source Project as well.

Collapse
 
alteca profile image
Alteca

the blog post itself is okay, but the title is just too aggressive. @shricodev is right

Collapse
 
syxaxis profile image
George Johnson

Well said, if you're going to get involved then do it for the right reasons, do it appropriately and commit for the love of doing it, not to have your ego stroked.

There's lot of people will contribute 2-3 things and quit just so they can get it on their resume, simply for the kudos and nothing more. It's like those god awful fake TikTok vids where someone hands $250 to some random stranger, it's all BS as everyone is in on the gag, the upshot is simply to get likes on social media.

It's the reason I never have contributed as I know I won't be able to commit long term, I'd rather not waste people's time by being a "fly by night".

Collapse
 
jitendrachoudhary profile image
Jitendra Choudhary

Absolutely agree! Meaningful contributions come from a genuine love for what you're doing, not just to boost your ego or resume. It's unfortunate when people contribute for the wrong reasons, looking for quick recognition. It's better to stay genuine and not waste anyone's time with short-term commitments. Everyone benefits more when it's about the love of the craft and long-term commitment.

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

I understand where people are coming from when they say to just create pull requests no matter what. It creates numbers that look good on your profile. But here's the problem:

You're wasting people's time. Open source maintainers are sacrificing their own free time to keep projects running just so the rest of the world can use them. They most likely aren't getting jobs on a level where having a bunch of FOSS contributions impresses anyone. They're doing it entirely for the community, because they know that they already stand on the shoulders of giants, and are giving back to the ecosystem.

And then some newbies come along, and start making contributions ranging from asinine to insignificant, not to make life easier for others, but to pad their own portfolio with higher numbers, because that's just how the employment dance works. Employers don't even care that you actually participate in open source; they care that you follow the script.

People shouldn't be making insignificant contributions anyway, but doing so to farm stats just makes it even worse. And encouraging this sort of behaviours is extremely yikes, in my honest opinion.

TL;DR: Never create PRs unless you know why you're doing it and the reason does not include the words "portfolio", "employer" or "t-shirt"

Collapse
 
jitendrachoudhary profile image
Jitendra Choudhary

Perfect!!

Collapse
 
lucaschitolina profile image
Lucas Chitolina

I've been in this industry for approximately 4 years and I never felt comfortable to contribute to open source. Never saw something that that I can do in a project and add real value. Contributions should not be a metric, in my point of view, they should be a way to really add something to the project.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.