I’m working on a project to help beginners get started on contributing open source projects.
It’s called First Contributions
firstcontributions
/
first-contributions
🚀✨ Help beginners to contribute to open source projects
Read this in other languages.
First Contributions
This project aims to simplify and guide the way beginners make their first contribution. If you are looking to make your first contribution, follow the steps below.
If you're not comfortable with command line, here are tutorials using GUI tools.
If you don't have git on your machine, install it.
Fork this repository
Fork this repository by clicking on the fork button on the top of this page. This will create a copy of this repository in your account.
Clone the repository
Now clone the forked repository to your machine. Go to your GitHub account, open the forked repository, click on the code button and then click the copy to clipboard icon.
Open a terminal and run the following git command:
git clone "url you just copied"
where "url you just copied" (without the quotation marks) is the url…
Currently, we have a hands-on tutorial to help beginners make their first contribution by contributing to the same project. Secondly, we have a web app to suggest welcoming open source projects and communities to contribute to. Thirdly, we have a slack community where anybody can get help or discuss about open source.
We wanna evolve this project to addresses various problems faced by the community. We'd love to learn about your journey in open source community, the problems, blockers, pain points you had etc.



Latest comments (21)
Time. Between learning stuff for job, managing time spent on job and then having some left for life (relationship, religion, my own projects which end up being deleted) I have no time to find the project that I might contribute to. Last time I tried to find a project which could potentialy have some code that needs bug fixing or additional feature I found only JS projects which required me to download them and check what are they actually about. Would love to contribute to Java/C# projects or even Groovy/Scala but latter are things I would like to learn not what I can actually contribute.
I generally feel confident enough in my abilities as a developer to make good contributions to open-source. What gives me pause is getting well-acquainted enough with a medium-to-large-sized project to make useful contributions. In a word, time.
In one word: Time!
For me, it's mainly domain knowledge, setup, response rate / attitude.
Helpless maintainers and helpless community will block you in every way you want to contribute.
I’m pretty new to coding so what blocks me is not really knowing what I’m doing. I wouldn’t want to mess up someone’s code and then they’re upset. So for me it’s learning how to contribute to an open source project in the first place.
You wouldn't be messing up anything. You can't directly make changes to others' projects. You can suggest changes called pull requests. It's the maintainers discretion to accept that change or not.
Oh good I’ll have to start. I hear it’s a great way to learn.
Like many others, the only reason I didn't contribute at first was the anxieties of being judged, or otherwise irrationally thinking I didn't have what it takes. But everyone else can talk of that. I'm beyond those days now; here's what stops me nowadays:
I personally am turned off very fast when the CONTRIBUTING.md is overly complicated. Take Atom's for example... I don't have time for that. At the same time I'm sure there are reasons to have such complex instructions. Maybe it's just me.
A lot of other projects can seem really unwelcoming to contributors, too. For example, I don't have ANY motivation to get involved with Git nor the Linux kernel, because of Torvalds' attitude towards his developers (just look at this)
Another reason, in some projects there appear to be little to no quality control on pull requests, i.e. the maintainers seem to accept literally anything, causing so many problems with the codebase/project that it feels overwhelming to bother contributing.
My biggest challenge is to find a small enough project that I can contribute to. Most projects I see around are huge projects that would take weeks for me to understand what's going around.
I'm a game developer and it's kind of hard to embed myself into non-game-engine projects. In this step it becomes very important to find a very clear setup document that would bypass the struggle of even being able to run the project as it is.
Well blockers for me are mainly the fact that if I want to make a good contribution to the project, I'll have to look around the codebase to get a feel for what they're doing. Even cloning and playing around with it, and that takes time cuz I'm not the type that has an intuitive feel for how software works.
I can say that my experience with OSS has been a great one overall in comparison to other stories I've read but yeah I'm trying to level up my skills in some technology to make better contributions to a project, cuz just fixing typos on the docs or the Readme won't cut it for me.
My biggest blocker is the fact that when I get assigned to a new project at work, it always takes me a few weeks to really figure it out--where everything is, what the goals of the project are, what unwritten conventions might exist around a given piece of code, why things are the way they are. In the open source world, that's a lot of time and effort to put in for what usually ends up being a one-off contribution to someone else's project.