As a soon graduating CS senior who feels a calling to the startup scene - I felt an appropriate learning opportunity would be try contributing to open-source projects on GitHub.<p>However, I am not sure how to start. I feel that my skills aren't yet up to the level that I could contribute solid code to any of the large projects.<p>I am web developer at heart, so I have a strong knowledge of the main technologies as well as some django, drupal and others. Are there any particular projects you can think of that I would be able to contribute to? Any other relevant tips or advice that you think that I need?<p>tldr; How should I get started on GitHub?
I can see three or four possible approaches:<p>1. Pick a project at (more or less) random; something that "scratches an itch" for you personally. It may or may not turn out to be maintained, the maintainer(s) may or may not be receptive to pull requests, etc., but nonetheless, you can grab it, fork it, and start hacking. If it's a project with a mailing list / forums, you might want to lurk a bit first, get a feel for the community, and maybe even post a message saying "Hey, I was thinking about adding Feature X, or fixing Bug Y, any interest in that?"<p>2. Ask around for a project that's actively seeking more help; maybe even one that's being run by a fellow HN'er. Build a good relationship with said HN'er and maybe get them to act as a bit of a mentor and walk you through the early phases of your involvement.<p>3. Check <a href="http://www.reddit.com/r/FOSSHelpWanted/" rel="nofollow">http://www.reddit.com/r/FOSSHelpWanted/</a> and find something there.<p>4. Start your own project from scratch and put it up on Github.<p>And for a slightly self-serving bit... if you know (or want to know) Groovy and are looking for a project like mentioned in [2] above - that could use some help - I might just know of one. Shoot me an email if you'd like to hear more. :-)
Well, first you need to get started with Git, if you haven't already done that. Github itself provides links to Git tutorials.<p>Anyway, many projects on Github use Github's issue system for tracking bugs and feature requests. So if you find a project that you are interested it, see if it has any outstanding bugs in the Issues section that you think you could take on. Then fork the repo and try to fix the bug. Test your fix to make sure it works, then submit a pull request saying that your fork fixes the bug.
I would take a deeper look at some of the modules/plugins for the frameworks you're interested in. If you don't care about any particular project, you could simply start your own. You're sure to come across a bug at some point or a feature you're missing from a library. Then, fix it yourself and submit a patch.
TL;DR you should just start using git and begin the process of learning. Pushing code to a project isn't really how github works, so just find a project you think you can help and just fork, mod and push. Hence: the beauty of git: you own the repo!