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.

I always hear that involving with open source projects is good for career and the more (good) open source you release, the closer you will be to getting your dream job before you've even had an interview.

I am expert in Java and I am trying to become fluent in Scala. I always think about getting involved in open source development in Java/Scala but the following confusions stopping me to do so.

How/where do I start in open source development projects in GitHub etc? Or How to find active/busy open source development projects? How to find an area where improvement is required or enhancement required in such projects? It looks too complex in the first analysis or its pretty hard to find such opportunities. What are the common strategies to follow if I want to become hobbyist/free time open source developer?

People who have experience in open source development please share your learnings/expertise from scratch.

Thanks in advance.

share|improve this question

3 Answers 3

up vote 5 down vote accepted

There's no single path to getting involved in the open-source community, and I agree with you that it's often not easy to find something to work on - it can be hard to figure out sometimes when people need help with new features, what's appropriate for a new person to work on, what an open-source project maintainers attitude towards help is, and a whole host of other issues.

That being said, there's things you can do to expose yourself to opportunities more frequently.

  1. Work on things you work with - If you find a bug or an area for improvement in an open-source project you work with, be bold and make your change. Github makes it incredibly easy to branch off a local version of a project with your own changes, and open up a pull request to the original developer.
  2. Get involved in your local community - Chances are, there's some other people in your city working on interesting open source projects that could use help, and they're probably looking for help at a social event or hack night. By working with people you personally have met, you get a lot more opportunity to discuss with them where you could help
  3. Start small - Attempting to submit a patch to the Linux kernel, Ruby on Rails, Firefox or some other massive and popular library as your first attempt is probably going to end in frustration or failure. Find something small to work on, and make a very minor change. Small changes are still useful for OSS project maintainers - they're easy to accept and easy to verify.
share|improve this answer

First and foremost: Code More.

How/where do I start in open source development projects in Github etc? Reading about projects, downloading them, running them, and finding which ones are awesome. Or start your own.

Or How to find active/busy open source development projects? Search engines. Most sites have their own internal search. With Github you can search by the last push date, number of forks, and number of followers. But it really would be nice to see the rate of pushes for a time period, the number of downloads, the percent of the code base which has changed for a time period, and the some way to get a rough estimate of how many people use said projects.

How to find an area where improvement is required or enhancement required in such projects? Run the program and see what sucks. Read the bug list. Read the documentation. Read the code. Ask the maintainer. Ask the users. Maybe not in that order.

It looks too complex in the first analysis Yeah, it get's better the 50th time though.

or its pretty hard to find such opportunities. What are the common strategies to follow if I want to become hobbyist/free time open source developer? Ryan has pretty good advice there. Do that. I'd also start your own game, just for kicks. But the best advice I have for you is to find something that interests you and simply code more around it.

share|improve this answer

Others have given general advice, so I will give an answer tailored to your experience as a Java/Scala programmer. I would recommend looking at the Apache Software Foundation. A lot of their projects use Java (Tomcat, Hadoop, Lucene, etc.). Also, if you've every done web programming in Java or Scala, you may consider contributing to your favorite framework. Finally, the Java* and Scala languages themselves are open-source, so you may consider contributing to those projects.

* There are multiple Java implementations, some open source and some proprietary. The OpenJDK project maintains the most popular open source implementation.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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