Whilst some open source projects would be too specialised and too complex, in general, are beginners welcomed into open source projects? When I say beginner I mean someone who has taken an introductory university course on programming and had a year or two of basic programming experience for scientific purposes (mainly solving problems for assignments). Basically someone who has a strong grasp of most programming concepts but may not have a huge amount of experience in code structuring, unit and integration testing, and larger projects.

  • 1
    There is no 'general' answer. It is all completely different in different projects and environments. – bmargulies Sep 17 '15 at 23:18
  • Interpret 'general' as 'on the whole' and I think this is answerable – kdopen Sep 17 '15 at 23:52
  • 1
    I think it can be very difficult for a true beginner to get involved in a project. We took on a contributor who is still going to school. I don't think we could have gotten him up to speed without our chat channel to facilitate mentoring him. On the bright side, he's no longer a beginner. (He's actually working on a patch for Roslyn now!) FLOSS can be a great way to ratchet up your skill set if you get involved with the right project/people. – RubberDuck Sep 18 '15 at 11:37
  • 2
    But when you say true beginner do you mean someone who's just learnt how to program, someone who doesn't know how to program, or someone who knows how to program but has never worked on a large project? – J-S Sep 18 '15 at 11:49
  • 2
    In the projects I'm involved with we evaluate the contributions, not the contributors. I was a beginner when I joined the projects 20 years ago, having over 30 years of FORTRAN IV experience but no C experience. It took some getting used to the lower-case letters and counting from zero, but I survived and have had many contributions accepted. The only push-back at the beginning was someone not liking the .mil email address that I was using at the time. – Glenn Randers-Pehrson Sep 19 '15 at 17:22

The world of open source is, almost by definition, one in which groups of complete strangers come together to combine their talents and produce a unified result. There may well be some projects where all contributors know each other and have great experience, but in the main you will be judged on the quality of your contributions.

So, I think it is fair to say that beginners who submit quality contributions, who follow the project's guidelines and procedures, and who are respectful to the community of contributors would be welcomed.

After all, a lack of of experience does not necessarily equate with a lack of good or at least fresh ideas. Indeed there a number of people here on this site who, though lacking years of experience, are still active in the FLOSS community.

But the key is to follow the project's norms. If, as you say, you don't have much knowledge of structuring, or unit testing, and the project is heavily into that approach, it behooves you to study the existing code base before making a submission.

Look at the existing unit/integration tests. Learn how they are written for this project. Which test frameworks do they use? How exhaustive are they?

Look at previous pull requests similar to the one you are considering (start small with a bug fix, for example). What did it include? Just the fix? A detailed commit message? Tests to ensure the bug does not reappear (without being noticed)?

Walk in the footsteps of those who've gone before you, and you should be welcomed with open arms.

An if you run into a project where you need 20 years of experience before they'll even acknowledge your existence ... skip it and move to another project.

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