I'm a graduating CS student and I've always wanted to contribute to a cool open source project. There are languages I really like writing (python in particular) and I think contributing to an open source project would be a good way to do that. I have experience writing relatively high quality code (a couple internships at Google, etc.) but I find it difficult contributing to open source projects. I feel like the barrier to entry on most projects is too high. Any suggestions?
Are you familiar with IPython Notebook? If so, you could jump right in on <a href="http://introtopython.org" rel="nofollow">http://introtopython.org</a>. It's a fully open resource for people interested in teaching and learning Python. I started it last fall, and it is slowly building critical mass. The main parts of the site are Python Essentials and Python Projects.<p>The biggest thing that will improve the site is having people write up projects they are interested in. For example, someone recently requested a project that shows how to build maps that show changing data, such as traffic around a city on a road map.<p>Writing up a project is easy. Clone the project, make a new notebook for your project, and submit a pull request. If you are interested let me know, and I'll be happy to help you get started.
To be honest it depends on <i>your</i> interests. I would start out with what floats your boat - you did a <i>couple</i> of Google internships - what were they on? DevOps? Big Data Analysis? Do you love maths or music? Build something that you will use each day.<p>Ok, chosen a project, lets assume it's pyMusicExample on github. It has over 300 issues, most of which have not been touched in months as the main devs are busy at the day jobs.<p>So, drop them a mail, introducing yourself and start triaging the bugs. Don't go crazy, see recent HN article<p>Documentation - Sphinx is a fantastic piece of work, as is readthedocs, but most of us do not use it as well as we should. PyMusicExample has code examples in their docs that no longer work. So make a branch and get the docs running doctest / coverage and get the examples upto date.
You say you have experience writing high quality code, what frameworks and tools did you use in your code projects? It is likely that a lot of those frameworks you used and libraries you imported for your project are themselves open source projects in need of contributors, and you have experience using them, so you would be a good candidate to contribute to them as well.<p>For example, since I write Rails and Django apps, the first place I'd look to contribute would be on a popular open source plugin/gem/app for Rails or Django that I use in my projects.
Take a look at Gittip[1]. It’s a Python-based, crowd funding platform that’s also open source and part of the Open Company Initiative[2].<p>Not only would you be helping build a platform that many people in our industry use to fund their projects and sustain a living, but you can also choose to take your own share of money that Gittip earns through the site.<p>[1] <a href="https://github.com/gittip/www.gittip.com" rel="nofollow">https://github.com/gittip/www.gittip.com</a><p>[2] <a href="http://www.opencompany.org/" rel="nofollow">http://www.opencompany.org/</a>
Actually, seeing this post and also that I ve struggled in finding those resources, I have created a github repo yesterday which can be used by the repo owners to post the contribution required and the contributors can take a look at it..<p><a href="https://github.com/avinoth/OpenSourceForBeginners" rel="nofollow">https://github.com/avinoth/OpenSourceForBeginners</a><p>only problem, don't know what to do next.. let me know what i could do next..
Don't just pick a random project to contribute to.<p>Learn software that you need to use, for example, if you're a web developer, learn one of the popular frameworks. Once you've mastered it you'll see where the problems are and what you can do to improve it, and then contribute patches.<p>Basically just find and fix problems with things that you actually use.