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.

With all the options and project available, especially the size of most of them, Open Source can be pretty daunting for a newbie to it all. My question is, how can I start helping and learning from open sourced software? Where do I start? Which files do I read first? Any advice to help a programmer above beginner level start contributing?

share|improve this question

4 Answers 4

up vote 5 down vote accepted

Find an (open source) application which you enjoy running. In this way, you're already a "tester". It could be anything (an operating system, an application like a media player, or a library, or a network tool, or an application skin, or a desktop theme). Find out what languages such software is written in; pick the ones you know or learn a new one. Get the source. Read it and the developer docs. Build it, then run your own builds. Make some tweaks through your own usage and what you think might be neat to add. Learn diff. Make a patch diff and email it to the developers; do this a couple times then ask if you have commit permissions.

Then put it on your resume and circulate this online.

share|improve this answer
    
Thanks for the answer, I'm only 15. How much will this help me in the long run? –  Matt Bettinson Aug 17 '11 at 23:18
2  
Hiring decisions are often made by the uneducated after glimpsing a resume which includes the quote "5+ years experience in [insert language here]". By doing this, you start the clock. And also don't make the assumption that a 15 y/o is inherently less prepared (and less worthy of $$) to write kernel code than a 55 y/o. It's all code. –  Jonathan Cline IEEE Aug 17 '11 at 23:23
1  
@Matt I started (consistent) open source development at age of 17 (had done a few loose patches before). I've just landed my first fulltime job a few weeks ago and started this week. They contacted me. And while I'm not sure how much exactly my open source experience helped with actually getting me the job, it does help with being more visible. More valuable, to me personally, however, is the learning experience. I.e. I feel like I've definitely learned a lot more by doing open source development than I've learned at school (Computer Science & Engineering). –  Giel Aug 17 '11 at 23:31
1  
@Jonathan maybe it's just me being lucky, but I've had a few job interviews (before deciding on my current job) and while all included talks with a HR person, all of them included talks with fellow software engineers as well. –  Giel Aug 17 '11 at 23:36

There are two approaches to development:

  1. Get the tool, then built something with it
  2. Have an idea, want to build something, so, find an appropriate tool

The first approach is much less constructive and productive than the second one. In the first method, you simply wander the web world, surfing web pages one after the other, till you find an open source project (for example Joomal), then you decide to build a website with it. Not really good, if you're a game developer for example, or if you're interested in jQuery development.

Thus, I strongly suggest you first specify what do you want to do. Do you want to become JavaScript developer? An iOS developer? A project manager? What do you want to do?

With all the options and project available, especially the size of most of them, Open Source can be pretty daunting for a newbie to it all.

Of course, it would be daunting. Because you haven't filtered it yet. You first should specify what you want to do. Then you see that it's becoming narrower and narrower, till you only have 2 or 3 open source solutions at hand, and here, you're fine to go.

share|improve this answer
    
first specify what do you want to do first. Don't worry about getting stuck there forever, but if it's a passion then you should get yourself started doing something. –  StevenV Aug 18 '11 at 12:15

I think the most important thing is to find a project you are passionate about then start learning everything you can about it.

Subscribing to all the mailing lists will give you a good idea about how the community interacts with each other and don't be afraid to jump in and ask or answer questions. Just make sure you do your research and ask intelligent well thought out questions.

How to contribute:

Note: The above links all pertain to the WordPress open source project but could apply to just about any large open source software project.

share|improve this answer

I release a lot of my own work as open source and free, that way others can see your work and judge it, thus making it easier to join an existing open source project or have others contribute to your open source project.

Try OpenHatch. There you can find projects to contribute to. I haven't used it yet, but I plan to when I feel comfortable.

This fall I'll be working with other students on an open source project via UCOSP. There's other groups like that, for instance, Google Summer of Code. If you're still in school, definitely try to get into these programs.

You can also subscribe to a mailing list of your preferred project or join their IRC room and get to know some of the people and go from there.

Try some online code repositories. Some are more social than others, but they're all good. You can submit patches, or even submit bugs (which is still contributing). Some of the popular ones are GitHub, Google Open Source Code (specifically Google Project Hosting), and SourceForge.

You can read this free book on how to produce open source software. I use it as a reference sometimes.

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.