Hacker News new | ask | show | jobs
by butu5 3710 days ago
Even though there are several open issues in github, how can someone with little development experience or newbie can start contributing.

On asking this question, many may suggest that first we should use the particular piece of code in own project and contribute on that project by raising issues or fixing them. As a beginner, people may start using very popular frameworks like Ruby on Rails or Node.js. Considering it's complexity or maturity, it's extremely difficult if not impossible to start contributing.

I am thinking, somewhere down the line, there is some form of hand holding or mentor ship needed. Where mentor give small task, help in giving some tips or advice, review the first pull request etc. This will definitely boost contribution to opensource projects.

There may be several people providing mentor ship. But I feel it's not structured, how a newbie knows there exist someone who is willing to help. Only way I can think of now is to spam lot of people randomly by looking at their github profiles.

Please suggest how to encouraging new developer to contribute more to opensource and help closing the open issues.

5 comments

It's hard for experienced people, too. The issue is more about the lack of structure in some open source projects and the time availability to teach "noobs" a codebase. One thing that has worked for me in t he past is to join the development mailing list, try and understand what they are talking about and go look at the code to try and figure out the issue. Then trace back all the discussion to try and find if any of my questions/suggestions have been proposed. If not then I make a very simple case for the solution. If yes then I keep quiet and only comment when things need clarification. Slowly you will pick up the project and be able to contribute.

If the project lacks any kind of communication channels and is hosted on some online repo then by all means open an issue and ask about contributing. Make sure to ask about what are the most important issues ton fix and which are the smaller ones but most annoying ones. Offer yourself to document the project too.

It's not easy but it is fulfilling once you get underway.

http://up-for-grabs.net/ attempts to make contributing easier for new developers but it still falls flat IMO, there are few really bite-sized issues you can tackle and even those are going to require you to read a lot of project code and discussion to figure them out.
Django has a django-core-mentorship mailing list[0] for people interested in starting to contribute, a guide on contributing[1] and a selection of issues tagged as easy-pickings[2] that are suitable for beginners to work on.

I haven't personally tried it, but I did think it was cool when I stumbled over it.

[0][https://docs.djangoproject.com/en/dev/internals/mailing-list...] [1][https://docs.djangoproject.com/en/dev/internals/contributing...] [2][https://code.djangoproject.com/query?status=!closed&easy=1]

I don't think that list is very active unfortunately. Also the easy pickings list has been mostly completed which doesn't leave a whole lot of room for newbies to contribute.

Funnily enough, having Tim (a paid contributor, also Core dev) do so much of the community work means there is less low hanging fruit for new contributors to get stuck in to.

IRC is often your best bet. If you find a project you'd like to contribute to, see if they have an IRC channel, there will always be regulars there who have a lot of experience with the projects and will almost definitely have advice to give to beginners wanting to contribute.
Node is extremely friendly to new developers and has labels for "good for beginner" issues as well as a community very passionate about helping others. You should give it a try before giving up.

BTW, contributions can mean documentation or website markup. You probably won't fix a major bug right off the bat.