Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I am heading into my senior year in computer engineering and have gotten a inter

ID: 659948 • Letter: I

Question

I am heading into my senior year in computer engineering and have gotten a internship for this summer and fall. Since I will not be doing homework I would love to take this opportunity to get involved with an open source project of some sort. I am proficient with C, C++, Java, and Python. I am also reasonably familiar with Linux, using it on my laptop at the moment and all of my classes this semester focused on it.

I was considering taking a look at Android or Ubuntu but in the past I have felt a little overwhelmed. Does anyone have any advice? Interested on what would be a good project to work on, where to get started, and if I will really able to contribute much.

And in the end how often are peoples changes actually accepted? How often would I be writing code just to have it rejected?

tl:dr Looking for more programming experience by contributing to an open source project. New to the scene need advice.

Explanation / Answer

+1 to Steve Haigh for mentioning moonlighting.

If you work for a software shop, you may find yourself in a situation where your employer claims ownership of the software you worked on in your own time. Before beginning, consult your employer to clarify the moonlighting policy at your company.

A good place to get started could be OpenHatch. They're a website devoted to helping people get involved with Open Source projects. They'll be able to give you a list of "bite-sized" bugs to get started on any of the projects that have signed up with them, and can help get you in touch with other contributors who are willing to mentor you on the project and/or language of your choosing.

Upstream acceptance of your patches will and nearly always does hinge on the quality of the patch, and if it has accompanying test cases. Many projects in fact will not accept patches unless they include a test verifying the patch.
Since the quality of your code is something that will be subjectively judged, be prepared to work with constructive criticism from upstream maintainers to improve your code.