Maybe I'm missing something, but it seems hard to find meaningful open-source projects that have something a new developer could tackle. Often looking up labels like "good-first-issue" on GitHub give an abundance of random tasks seemingly only made for things like Hacktoberfest.
So, anyone have any tips?
To be honest when I started a while ago I was on the same boat. I stopped worrying about finding an open source project I could contribute to because it felt forceful. Instead I continued studying and practicing.
Nowadays I make PRs after I have been using a library, node package, framework, for any of the projects I'm working on (either personal or required by my job). Sometimes it's a typo on the docs, sometimes it's adding more examples on docs and eventually it's a new feature or a bugfix. As others mentioned, there are projects with issues beginners-friendly if you wanna really dig into it.
But what I found more "natural" is just working on a project and...getting frustrated! Then I address that frustration with the hope of preventing anyone else to fall into the same trap. The way I address it is usually with a PR!
So go ahead and try to build something. If you use a library and the docs are confusing, submit a PR! You find a typo, submit a PR! You find a bug, try to your best to fix it and if you can't, open an issue!
Thanks for the advice. That is a good process, especially the adding to the docs of packages I find confusing.
Good advice and that is exactly what I have done over the last year. It has been a lot of fun and I have learned a lot about collaboration in the process.
I am also on the same boat right now, my approach is looking at Dev.to's open source shouts, and I also found this one GitHub project that has direct links to each repo that has beginner labels.
MunGell / awesome-for-beginners
A list of awesome beginners-friendly projects.
Awesome First PR Opportunities
A list of awesome beginner-friendly projects.
Inspired by First Timers Only blog post.
If you are a maintainer of open-source projects, add the label
first-timers-only
(or similar) to your project and list it here so that people can find it.If you are looking to contribute, then explore this list, look at
first-timers-only
labelled open issues on Github, and follow @first_tmrs_only on Twitter to be notified when a newfirst-timers-only
issue is created.If you are not a programmer but would like to contribute, check out the Awesome for non-programmers list.
Table of Contents:
.NET
Great, thanks for the link!
Look for the “first-timers-only” tag. That’s a decent one. But you’re right this is a large problem and one I personally experienced back when I was self-taught.
Check out OpenEMR if you can. I’m one of the devs on it, but it’s pretty much the only Open Source app available for hospitals and clinics. Does a lot to reduce healthcare costs. Anyway we could always use JS or PHP ppl and would be happy to give you fun starter issues :)
A friend of mine had mentioned OpenEMR a while back and I am a PHP dev. Looking to kickstart this journey. Any links on how to get started would be much appreciated. Thanks.
Yeah its hard. I think it would be easy if you want to understand the project first and search for help-wanted label with easy task.
and Im new developer too. I never contribute to openspurce trough PR cause I never see one with easy task.. haha. but surely understand the project could help others and us in the long run
In my experience, I’ve been told open source is hard and issues are tracked by humans so sometimes they may forget to add the right tags but you’d definitely find something for beginners. Just look for something you’d want to contribute to, go through the issues and ask questions people might even team up with you to help fix the issue as with my first experience with the EmberJs team. One of the core members basically took me through the project and helped me with step by step guide to contribute to their project.
"good-first-issue" are not used by enough projects to find them blindly. Most maintainer welcome contributions, but don't advertise for it. As already said, try to improve the tools you already use. Whatever small the change is.
My first time was with a pixel art web app named Piskel. I add a listener to the escape key to close a popover.
I recommend issuehub.io to find issues on github in your language of choice. It is a great way to find projects that you are interested in.
I find the idea lists projects create for Google Summer of Code to be a great source of ideas for contributing to open source projects. These lists may have been crafted with GSoC in mind, but I find they are often great ideas for other hackers to use to jump into a new project.
Since the lists were created for GSoC, most of the ideas are created for people who have some experience in the language the project is written in but maybe not any experience with that project in particular. Also, participating in GSoC demonstrates a project is at least interested in mentoring new developers.
Check out the list of participating organizations on GSOC's website. Click on an organization you're interested in, and the Learn More page for that organization includes a link to that organization's ideas list. Most of the lists also give the required skills and estimated difficulty of a project.
Also been wanting to contribute for a while and faced the same problem. Lately I've noticed that almost any open source tool/framework I'm using has a bug or something that doesn't work as expected. So instead of trying to hack around it I immediately open an issue on github, and if it's really a bug I fix it and make a PR.
Still I don't know what's the process to get to be one of the core team that actually build features / architecture.
SourceSort looks like a good resource for finding projects that need contributions. The focus on measuring how healthy a project is definitely seems useful for new contributors.
Strongly recommend Code For America brigades
Nice. Thanks!
Well, I understand you are looking to help out open source projects and are wondering which ones get into.
I never really went that way as a beginner, but despite the fact I'm not a beginner anymore, it's not easy to find out how to actually help. It takes quite some time to get into a whole new source code, it's no trivial task.
Nowadays, I usually help when I rely on a project, but I'm not looking for projects to fix, there are just too many of them! :D
We develop many things that are open source at Unly (we're a French company helping students access Higher Education), but they're not so "meaningful" to others, yet. If you want to take a look, please do! I wonder how a fresh eye would understand the purpose of those projects. github.com/unlyEd
I usually recommend writing documentation.
Adding demos always helps too. Spending a lot of time developing a project sometimes makes it hard to see it from a user's perspective.
Adding features usually involves picking up something from the roadmap.
You could also try to help by optimizing the NPM package. Here's a guide.
evanplaice.com/thought/npm-package...
Also depends on what type of opensource project you're looking for. Small but promising, then owner will rather no doubts welcome any help. Or big and popular, than you perhaps follow some serious guidelines for PRs you want to submit.
As for knowledge, of course it is important. But I would always give priority to projects where owners are able to explain things to newbies, for that would mean they perfectly understandwhat they are up to, and thus provide their project with good potential.
Maybe the open Github issues on dev.to itself? At least that's a "product" that you're already using, so it might feel less "forced" to contribute to it ...
I have used issuehub.io and I actually wound up contributing to the site itself. It scrapes github issues, you need to remember/know that PR's are also issues.