

Ask HN: How do I start contributing to open source projects? - pratiksaha

How do I start contributing to open source projects? I have been pondering over this for quite some time and do not quite know how&#x2F;where to begin. I have a fair coding experience in C&#x2F;C++, python and perl but probably am too confused right now.
How do I select a project to begin with?
What if I commit to something but not able to deliver?<p>If you are already working on something interesting, please post the link&#x2F;contact, I would be happy to join. I am looking for something with C&#x2F;C++ or python code base<p>Thanks in advance,
PS
======
phantom_oracle
Repost (because this gets asked too often):

I defined this for someone else who had the same question a few days ago.
There are 4 ways to contribute:

\- bugs (find and report them)

\- code (the part everyone wants to do)

\- docs (the part that everyone should do, but has been given second-class
status due to everyone thinking writing code is the only way to feel like
you're contributing)

\- tests (ever clicked on "button" and everything broke, well if someone wrote
a test for the functionality there, it likely wouldn't have)

I urge you to start with the things the pure-coders hate, and that is well-
defined, noob-friendly documentation.

You'll never be given the high status of "genius programmer living in
basement, changing world", but your documentation and "dumbing that shit down"
way of explaining things will sometimes make the project more successful and
will carry more weight as far as bringing more users of the code-base.

------
Warewolf-ESB
Good open source projects should have documentation for you to help you get
started. Like the other posts, there are many ways you can contribute, and
every little bit does help.

As far as I know, no one will be standing over you expecting you to finish
anything, unless you made some kind of agreement to start.

I would suggest finding something you enjoy and just start. When you are ready
to submit your changes be ready for great feedback and a ton of learning. You
will be working with some really passionate, skilled guys so there will
undoubtedly be a big, but rewarding, learning curve.

Our project is .Net based, so not really a fit for your skills, but feel free
to check it out or share with your friends: [https://github.com/Warewolf-
ESB/Warewolf-ESB](https://github.com/Warewolf-ESB/Warewolf-ESB)

Good luck, and most of all, have fun!

~~~
pratiksaha
will check it out...thanks., i did work as VB.Net developer in my first job :)

------
lsiebert
Pick something you use regularly that's open source, and check out that.
Something you have familiarity with is going to be a lot easier to contribute
to, because you will notice bugs, or think up a feature. Like I added an
option to a vim plugin I was using that was open source, and then sent a pull
request because I thought someone else might like it, and it got accepted.

Another good thing to do is to write documentation for code before you
contribute to it. Plenty of code lacks clear documentation, and having to read
the code and understand it will help you contribute later.

~~~
pratiksaha
Thank you, that helps a lot

------
skruz
Just start reading the source of projects you use and see how they work. When
you see something wrong or need a new feature you create a fork on GitHub and
work on that. You then create a pull request when it is ready! If you're
unable to 'deliver', just don't create the pull request. Start small with
tests or docs, then bugs and small improvements, then new features, then big
refactors ;-)

~~~
pratiksaha
Thanks, surely will try :-)

------
haidrali
Start contributing from Apache projects
[https://projects.apache.org/indexes/alpha.html](https://projects.apache.org/indexes/alpha.html)
Try to develop plugin, component for some open source project.

------
raiph
[http://moarvm.com/contributing.html](http://moarvm.com/contributing.html)

Hope to see you on #moarvm. :)

~~~
pratiksaha
looks interesting... thanks for the link :)

------
egregiouscoder
Start on a small project on Github then work your way up.

~~~
pratiksaha
:)

