Oin Maple <mapleoin@nerdshack.com> writes:
--nextPart1584976.yAKSk0qFlE
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Hello!
I would like to start working on a real project. Start "seeing some action"=
=2E=20
I've been reading through ruby books for half a year now, but i haven't yet=
=20
started to make real programs. What I would like to do is help an opensourc=
e=20
project somewhere, but i don't really know how or who would need this help=
=20
and what skills would that require. There are a lot of questions. When am I=
=20
good enough to enroll in such a project? What do I do? Where do I look?
I tried searching for a project on rubyforge, but I only found 3 requests f=
or=20
a ruby developer and they all looked too complicated. I got put off when=20
seeing so many lines of code. How exactly does a new developer help when=20
joining a big project that has been going on for a very long time. Should I=
=20
even attempt that?
there are really lots of questions in my mind. I hope someone will point me=
in=20
the right direction.
It usually takes a bit of time to get across any project you join which has
been running for a while. Don't look at all the lines of code to start with as
you will get overwhelmed. My recommendations are
1. First, find a project you are really interested in. don't worry about the
complexity or size. It is far more important to get involved in something you
have an interest in if you don't want to lose momentum too quickly.
2. Start by offering to provide testing support. All projects need testers. The
advantage of starting off here is that you will get to understand the project,
the objectives and how the application works. This high level conceptual
understanding is critical for getting to understand the lower level aspects.
Most projects also require people to write documentation. While this is often a
bit boring and doesn't have the cred of being a code contributor, its important
and a good way to verify you have the concepts and proper understanding of the
app. Projects will often succeed or fail based on the quality and relevance of
the documentation.
3. As you get to understand the app through testing, start doing some simple
basic debugging of problems you find. Initially, just start with clear
documentation of the problem, providing test cases which can reproduce the
issue and then start providing additional infora\mation and tracking down the
specific module/file and then the code. Apart from allowing you to get more
familiar with the application, you will also get familiar with the coding
conventions, learn additional techniques and slowly develop your own code
knowledge.
4. Once you are comfortable with the app, its code etc, select some problems
from the bug tracking system for the project and try to solve them. Provide
your solutions to others in the team for their comment and suggestions. don't
be too thin skinned - some people tend to be very blunt when providing
criticism of code. Put your ego aside as much as possible and try to appreciate
what the basis of their criticism is. Sometimes, you may just disagree with
their analysis, but try to understand where they are coming from and don't be
too defensive.
5. Finally, be patient. Most interesting applications/projects are fairly
complex and it will take a while before you really understand many of the
finer points. Don't bee to embarrassed to ask for criticism and provide your
work for others to review. Above all, get involved in something you find
interesting rather than just something you think will be easy and be prepared
to take a while before you feel as though you are providing valuable
contributions.
HTH
Tim
···
--
tcross (at) rapttech dot com dot au