Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Possible Duplicate:
How can I find a good open source project to join?

After working as a molecular biologist at the bench for many years, I lost my job last year and am thinking about a career change. I've been using open-source software and doing Linux system administration since the mid 90s, and have written/improved some small shell/Perl/PHP scripts, and am very comfortable building from source, but never progressed to creating non-trivial programs de novo. I want to move to actually learning real programming skills and contributing back to the community, with the possible eventual goal of getting into bioinformatics as a career in the future. I'm a stay-at-home dad now, so I have some time on my hands.

I've done a lot of research on languages, and have settled on Python as my major focus for now. I'm set up on GitHub, but haven't forked anything yet. I've looked around OpenHatch some, but nothing really grabbed me. I've heard the advice to work on what you use/love, but that category is so broad that I'm having trouble finding any one thing to get started on. What are your suggestions for getting started? How do you pick a project that will welcome your (possibly amateurish) help? With a fairly limited skill set, how do you find a request that you can handle? What are common newbie mistakes to avoid? Any other advice?

share|improve this question

marked as duplicate by Robert Harvey, ChrisF May 30 '12 at 19:23

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

Start your own project that does something simple and useful :-) –  Jeremy Heiler May 30 '12 at 14:46
take free on-line classes : udacity.com –  hanzolo May 30 '12 at 17:59
@ChrisF - thanks for the link, I didn't see it during my initial search –  MattDMo May 30 '12 at 18:09

1 Answer 1

OSP is not really a place where a beginner can make significant contributions as far as code goes. For most people trying to get involved in an established project, there will be little coding work available unless you are among the elite that is able to tackle the really difficult problems. The start up projects is where you will be able to do some coding, even if only the basic stuff the more advanced coders find as more of a chore than a challenge. But to get invited to those you need to get involved with the community.

What is useful is documentation and testing. You can get into the code and read what is happening and try to find problems. When you find the problem you can see if you can fix it but even if you can not reporting the bug is useful. This will help you engage the OS Community and that is your best route to being included in future projects. Find places where the current user and/or developer documentation is lacking/out of date and update that. I have seen so many great OS projects that I never bothered to dig into because their documentation was non existent or out of date as as to be useless. Keeping those documents current is every bit as important as coding to the success of the project.

If you are thinking wow it sounds like I have to put in a lot of work before I am ever going to be able to contribute code to an open source project... that is because you will. Few people will spend time to mentor and work with a new coder unless they demonstrate commitment. The only way to demonstrate commitment is to get your hands dirty doing things that the people whom you want to learn from, do not have time/want to do.

Someone suggested starting your own project. While that is not a bad idea, realize that the community is not likely to jump in and help you. If you have a great idea you are more likely to see it hijacked and basically find yourself marginalized, or your project branched and your version left with no one but you working on it. If your idea is not great then any help you get will likely be from developers at or below your skill level, which is fine but not likely to help you grow the way a mentor's guidance would.

share|improve this answer
thanks for the perspective and advice, you made some great suggestions. I hadn't really thought about the documentation route, but it would give me a chance to go through the code to learn how things are done in practice, and still contribute in a meaningful way. –  MattDMo May 30 '12 at 18:13

Not the answer you're looking for? Browse other questions tagged or ask your own question.