Newbie developer looking to contribute

Hi,

I am currently looking for some development project in the open source community. I went through the community wiki and mailing list to find if there existed any resource I could use to start working on something interesting. After some reading and thinking, I am hoping someone can help me understand the process of initiation of a new developer in the community from selecting a bug/task/project to bringing it to the logical end.

I am versed in C, Java and Python. I consider myself a novice and hope someone can help me find answers to the following questions:

  1. How do I get started so I can select a task to work on ? Should I interact with program, try to understand some code and then start working on some bug or should I start with some feature request and then attack the code directly, understanding as I code ?

  2. Whom should I communicate with before starting any work on the task? I do not want duplication of effort and ensures my effort is fruitful for the project.

  3. What is the usual way of ensuring I am making progress with my effort in the field? Should I share task milestones with select few or share the final patch in one go ?

Thanks for giving me direction and helping me out.

Regards,

Shashank Sinha

Shashank Sinha via llvm-dev <llvm-dev@lists.llvm.org> writes:

Hi,

I am currently looking for some development project in the open source
community. I went through the community wiki and mailing list to find if
there existed any resource I could use to start working on something
interesting. After some reading and thinking, I am hoping someone can help
me understand the process of initiation of a new developer in the community
from selecting a bug/task/project to bringing it to the logical end.

I am versed in C, Java and Python. I consider myself a novice and hope
someone can help me find answers to the following questions:

1. How do I get started so I can select a task to work on ? Should I
interact with program, try to understand some code and then start working
on some bug or should I start with some feature request and then attack the
code directly, understanding as I code ?

Different people find it easier to get up to speed in different ways,
and you'll probably find that some bugs and features are easier to
tackle with one approach or another. Your best bet is to experiment and
find what works for you. Don't be afraid to change your approach if one
isn't working for you.

2. Whom should I communicate with before starting any work on the task? I
do not want duplication of effort and ensures my effort is fruitful for the
project.

For bug fixes and small features (like improving a warning in clang,
say) you probably don't need to worry too much. Just dive in, and in the
worst case someone will manage to fix it before you do - that's fine,
you'll still learn something and that'll probably make the next task you
try easier.

3. What is the usual way of ensuring I am making progress with my effort in
the field? Should I share task milestones with select few or share the
final patch in one go ?

This largely depends on the size of the change. You should aim for small
changes at first, and for small things just sharing the final patch
generally makes sense. That said, feel free to ask for help if you need
it before you've managed to complete the patch. This list is a good
place for that, as well as the #llvm channel on irc.oftc.net.