I'm a fourth year college student with a few years of programming classes, but not much outside-class experience. Many people have said that contributing to open-source projects is a good way to show off your ability level and to learn more about how to code. I'm not sure how to begin - in other words I don't know what I don't know about open source projects.
Which open source project should I contribute to?
How do I know what part of the project to work on?
How do I get the code and how do I submit changes?
How do I ask for guidance/get feedback, besides asking HN?
Which IDE should I use?
Thanks for the advice, Kevin
Here are a few things I've done with Leiningen, my Clojure build tool:
* Start "low-hanging fruit" threads after every release explaining simple ways people can contribute.
* Create a HACKING guide describing the overall architecture and flow of the project. Include style guidelines and instructions for submitting patches.
* Give people commit rights as soon as possible. I've adopted the "one accepted patch, and you're good" policy from the Rubinius project. Yes, this means unqualified people will have the power to make ill-informed commits directly. But in practice people tend to behave when you give them responsibility. Evan, the Rubinius lead, has had to perform less than ten reverts in the three years he's used the policy.