Ask HN: Please help a first-year CS student contribute to OSS
I'm a first-year CS student. I know a little bit of Python, JavaScript, SQL and C# - all to the level one would expect of someone who has completed a CS101-styled class in that language (except maybe JS).
I want to contribute towards something useful, and I want to do so as part of a community. The obvious answer is to look for an open source project, because they're everywhere, and all love volunteers.
But I have a problem. I don't know how or where to begin. I look at projects that look exciting, yet I become dumbfounded. I need to begin somewhere - some project and/or community - that is simple... I feel that I need hand-holding, but who could possible have the time for that? As much as I'd like to, I know that I - sadly - do not have the time to hand-hold beginners in my own area of knowledge (as well as a CS student, I'm a finance graduate).
I would hope that such assistance might result from a project or community structured as such. Surely I am not the only one in this boat. Does there exist some sort of structured open source project and/or community that offers such pseudo-hand-holding? Or, am I starting to early; must I learn more about data structures and software design before looking towards OS?
[+] [-] mindcrime|12 years ago|reply
And, truth be told, it's a darkside of the OSS community that we aren't very good at "hand holding" beginners - much to the detriment of everybody involved, IMO. The reasons for that are legion, but for whatever reason, a lot of projects aren't all that interested in helping a newbie move up the learning curve.
Anyway, for somebody from HN to help you very much, it would almost take somebody who runs a project to step in and make a specific offer to work with you. Otherwise, all somebody can really do is offer platitudes like "look for a project that really interests you" and "look for projects that publish a list of 'low hanging fruit' bugs for beginners" (there are projects that do that, and that is good advice, BTW). But as far as generic advice goes, you can get plenty of that by Googling:
https://www.google.com/search?q=contributing+open+source
If it were the right season for it, I'd suggest you look into the Google Summer of Code program, but you'd have to wait until next summer now.
Or, am I starting to early; must I learn more about data structures and software design before looking towards OS?
Nah... if you know Git (or SVN or CVS or whatever) and can use the build tools commonly used in the language of the project you're interested in, there are almost always bugs to be fixed that amount to not much more than typos. Hell, just going in and removing commented out "dead code" could be useful to some projects.
One angle you could look into is pick a project, download it, and run a code analysis tool against it (if you were a Java guy, I'd say PMD or FindBugs, but you'll have to find the equivalent for your chosen platform) and then examine some of the supposed "bugs" it find (quoted because a lot of the "bugs" they find are false positives or subjective issues of style), decide if it really matters or not, and possibly submit a patch.
Anyway... wish I could help more, but that's about everything that jumps to mind at the moment. Good luck!
[+] [-] jpau|12 years ago|reply
But it also turns out that your words "projects that publish a list of 'low hanging fruit' bugs for beginners" is a great way to phrase "give me somewhere to start contributing to OS" for Google.
You have given me a few roads to go down :)
[+] [-] bjourne|12 years ago|reply
[+] [-] stevenbrianhall|12 years ago|reply
After asking lots of questions, I was pointed to http://make.wordpress.org/core/handbook/, which does a pretty decent job outlining the workflow. It helps to read a lot of tickets first to get a feel for what they're fixing - http://core.trac.wordpress.org/report/14 and then find a neglected (but fairly recent) but and chip away at it.
It's overwhelming, but I've found a great amount of confidence in just picking a (tiny) bug, fixing it, and watching the process work. Good luck to you!
[+] [-] S4M|12 years ago|reply
- http://openhatch.org/ a list of issues in open sources project waiting to be fixed
- http://duckduckhack.com/ you can add some plugins to duckduckgo (it's a search engine)
- http://www.whatcanidoformozilla.org/
[+] [-] webvet|12 years ago|reply
http://openoffice.apache.org/get-involved.html
[+] [-] bachback|12 years ago|reply