where to begin?

O

Oin Maple

--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.

Thank you!

--nextPart1584976.yAKSk0qFlE
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)

iD8DBQBFmkrAJRmulx2zJOARAo9iAJ9JQBcR0VDRwYO0gjeTFaTy7dw9TwCdFjv1
fEzOCBJDWlfm3JnK+ooVJ/A=
=1J13
-----END PGP SIGNATURE-----

--nextPart1584976.yAKSk0qFlE--
 
T

Timothy Hunter

Oin said:
Hello!

I would like to start working on a real project. Start "seeing some action".
I've been reading through ruby books for half a year now, but i haven't yet
started to make real programs. What I would like to do is help an opensource
project somewhere, but i don't really know how or who would need this help
and what skills would that require. There are a lot of questions. When am I
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 for
a ruby developer and they all looked too complicated. I got put off when
seeing so many lines of code. How exactly does a new developer help when
joining a big project that has been going on for a very long time. Should I
even attempt that?

there are really lots of questions in my mind. I hope someone will point me in
the right direction.

Thank you!
A lot of open source projects need better documentation. A way to start
might be to study a project that interests you and work on their doc. In
the process of doing so you'll probably need to write a lot of example
programs to learn how the code works. It's quite possible that you'll
find bugs for which you could try to write the fix. If you read and
write a (human) language other than the one used for the project's
current doc, you could offer to translate it.
 
S

spooq

When am I good enough to enroll in such a project?

When a team accepts your code, then you are good enough. Most projects
will take any useful contributions, you don't have to be "enrolled".
Keep submitting code, and you'll probably get write access to the
repository sooner or later.
What do I do? Where do I look?

You can always start your own project. Sourceforge is full of ideas
without code, although you shouldn't feel bound to listen to someone
just because they put up a project page. If they haven't done anything
with their idea, implement it yourself and reap the eternal glory. ;)
How exactly does a new developer help when
joining a big project that has been going on for a very long time. Should I
even attempt that?

This is indeed a difficult question. Generally, I move into new
projects by reading source code (and documentation, if it exists),
asking questions and taking on some small bugfixing assignments.
Anything that helps you get into the groove of the codebase is good.
Even just running the software and submitting bug reports should be
appreciated by the team. If you find a bug, try to fix it yourself.

Good luck!
 
J

Jay Bornhoft

Timothy said:
A lot of open source projects need better documentation. A way to start
might be to study a project that interests you and work on their doc. In
the process of doing so you'll probably need to write a lot of example
programs to learn how the code works. It's quite possible that you'll
find bugs for which you could try to write the fix. If you read and
write a (human) language other than the one used for the project's
current doc, you could offer to translate it.

I am in the same boat as Oin Maple although I am pretty sure my code is
not yet sufficient to contribute to anything.

I am really interested in your suggestion of working on projects' rdocs
and I am native English-speaker but I live in Colombia and could easily
translate any documentation into Spanish.

Could you suggest a project where I could get started or point me in the
direction of where I could find such projects?

Many thanks!!!
 
M

Mat Schaffer

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

And a hearty +1 to that! Nice work, Tim. That's probably one of the
best primers I've seen so far. You should blog that, assuming you
haven't already. Maybe see how it fares on digg :)
-Mat
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,968
Messages
2,570,150
Members
46,697
Latest member
AugustNabo

Latest Threads

Top