loading...
Cover image for Can I contribute to open source projects ?

Can I contribute to open source projects ?

killianfrappartdev profile image Killian Frappart ใƒป1 min read

About me ๐Ÿ™‹

My name is Killian, I am 24 years old and I started learning web development 8 months ago.

I have correct knowledge of HTML/CSS and JavaScript. Most of my personal projects so far were built with Node/Express and React.

This new passion is growing, every day I am trying to learn something and improve my coding skills.

Question โ“

After reading a post about forem being open source, I was wondering if everybody can contribute to open source projects even beginners like me or if it is required to have a minimum experience as a developer.

I only worked on personal projects so far and I think it would be extremely positive for me to learn how to work with other people during my journey to become a real developer.

Here I ask my question again, can I start looking for open source projects to work on or should I wait?

If the answer is yes, how to get started? Do you have any projects to recommend? Is there anything I should know before I start sending PR?

Every little tip or advice you share with me is very much appreciated! ๐Ÿ˜‡

Posted on by:

killianfrappartdev profile

Killian Frappart

@killianfrappartdev

Jumped into web development 1st of January 2020 and I'm completely in love. I have no experience as a blogger but practice makes perfect! ๐Ÿค–๐Ÿฆพ

Discussion

markdown guide
 

Hi, I collaborate with Ansible and other projects. You can find issues for new contributors here

Atom for instance has also a guide for first contributions

Start with First Contributions have a look, collaborate and check how to collaborate with different projects.

If you need mentoring, let me know.

 

Ansible is written in python, I won't be able to help in any way but thank you for sharing this first contribution app! :)

 

Hey!!

Collaboration is not only about code. You can learn a lot of processes fixing documentation, tests, adding new processes or creating new issues.

;)

 

Donโ€™t wait, start.

You are new, but your not useless.

Here are some quick tips to get started.

  1. If language is your strong suite, start by reading and updating docs. This gets you in the process of submitting a PR. In most cases you should file a feature request or a bug before hand, and create a PR for those. The benefit of this is that you give the community a chance to weigh in, while you build you fix/feature.

  2. Many repos will label/tag issues with โ€œhelp-wantedโ€ and โ€œgood first issueโ€. The good first issue is the item that is typically easier, and good for junior developers or developers new to the code base.

  3. Create small packages for fun and put out into the open source community. Less about contributing to someone elseโ€™s and more about just getting in the habit of building a open source portfolio.

  4. Not all repos are code. Some are โ€œawesomeโ€ lists where you can submit a PR to add too.

  5. Join a discord channel for a community you want to participate in. The real time nature when itโ€™s done rate, makes it a lot clearer when you can help. Sometimes itโ€™s not code, but discussion.

 

Thank you for this clear and exhaustive answer to my question!

That helps me a lot ๐Ÿ™

 

I think you don't wait :). In my opinion, you should find small open source projects. These projects should include readme, document or blog explaining what it is about. If they didn't have in project, it is difficult to understand. When you experinced, you can find more projects. At least I'm trying to do that :)
I found my github stars. I tried to create a flag. Maybe you can improve css skill
github.com/manrajgrover/SingleDivP...

 

Wow you are a beast with CSS ! I can't believe you can do this much with a single div ๐Ÿ˜ฎ

 

No ๐Ÿ˜€. I do simple flag. But there are lots of example. You can find your country flag example in this repo. And you can try to create another. Have fun :)

 

Hi Killian.

Everyone can view the source of something that calls itself "open source", but there's no guarantee you'll be able to run it or modify it. Some companies release the source to part of their project but not enough to build it yourself.

Some open source projects are fairly tightly controlled by their leaders, who will only accept suggested changes from people they know.

Ignoring those outliers, yes, anyone can contribute to open source. You don't have to have reached some threshold of experience or anything.

Most projects will have a web page or a file in the source code that gives you an idea of how they expect to receive contributions. It varies, because anyone is free to make whatever code they like and maintain it however they like.

You're likely to find large projects (think OpenOffice, etc.) very difficult to get to grips with, because the code requires a lot of "domain knowledge". Your best bet for getting started is to help out with smaller projects that do something you're already interested in. You don't need to start by jumping into code; you can help out with bug reports or translations or even something as simple and hands-off as a suggestion or two.

Finally, there are lots of threads here on DEV about finding projects to work on.

 

Thank you very much for your answer!

My vision of what "open source" means is now clearer.

I am relatively new here, I will search trough older posts to find projects to work on.

 

There is absolutely no requirement (globally speaking) for contributing to open source, in fact it can be very valuable to learn from doing so!
Many projects (well, mainly the larger ones) even mark some issues as being easy to pick up; which would be ideal for someone looking to dive in.

Do note that many projects have contributor guidelines etc (how code should be formatted etc), but usually that's described somewhere, so it'll be different project to project.

Good luck!

 

Thank you for your answer!

I will try to find some of those "easy to pick up" issues and carefully read contributor guidelines ๐Ÿ˜

 

If the purpose is to learn, choose a language and look for lists of projects (like github.com/trending/go), pick one you find interesting and setup a dev environment, build, run, break it. If you can't find anything to improve read the issue list and try to fix anything, if someone fix it before, compare with what you were trying and talk to whoever fix it about it.

 

Yes of course you can contribute to open source projects. The main hurdle is not knowing enough about the background of issues and bugs in order to fix them but once you overcome that, by means of studying the project code you want to contribute to, it becomes easy to make patches.

Specifically, look for issues that have beginner tags on them because those are easy issues to solve that don't require as much experience to tackle as normal issues.

And finally, you can also contribute to project documentation. That doesn't have a minimum skill level and as long as you understand the proejct's APIs or how it works you will be able to fill in the TODOs.

 

I have gained some experience during my open source journey and I am passing it on. It worked for me and I hope it works for you too:

At first understand how to use the package you want to contribute to. Then pick up an issue with a somewhat clear goal of what you have to achieve to solve it (doesn't matter if the issue is big or small). Then start hacking with the code. Change some parts of the code and see how it affects the results. Within an hour you will definitely have a better idea of how the code works (only the part that you are working on). Now you can make few changes to it and open a WIP PR. In this way, you are contributing to the project even if your PR get closed (since your closed PR will help future contributors to understand the issue better).

If you get stuck somewhere, ask the maintainers about what you should do next. Maintainers are very supportive to new contributors and sometimes they end up sharing the whole code with explanation for completing your PR. After a few PRs you will have enough knowledge to smoothly work on the project.

Happy Coding :)

 

Alright, I will follow that pattern and hopefully meet supportive maintainers ๐Ÿ˜‡

Thank you for sharing with me!

 

I think forem might be a little complex. Not that you can't try.

If you make a Pull Request, expect a code review.

 

Well, I'd love to have my code reviewed by an experienced developer but on the other side my lack of experience might make them waste their time...

 

Don't worry. Actually, I learnt a lot, and in my experience, they will tell you to correct the code until they say OK (so very slow). [1] [2]

I do have several that don't got merged, or even closed; but I don't really care...

 
 

You can always search for help-wanted and good-first-issue tags on github to find repos which are looking for contributors

 

That is a really good tip, thanks!