

Ask YC: Getting involved in open source projects - jaydub

I'm a freshman in college and an aspiring hacker. I  would say that I am competent in Python and Java, with a basic knowledge of C. I would really like to put my skills to the test by getting involved in an open source project. I just can't seem to find the right way to "mount on."
======
bbb
Google summer of code 2008 is starting soon. Applications are due at the end
of this month. Participating FOSS projects will post project ideas soon, so
just visit some FOSS project that interest you and shop around their task
list.

Actually, you may have to wait a couple of days, most FOSS projects are just
getting started organizing their task lists.

GSoC is a great way to get into open source: you are getting paid, you have a
personal mentor, and you get to work on something _you know_ people care
about.

~~~
tim2
Yeah, I'd try this. Failing that, you'd be running on inspiration alone, so
I'd start my own project.

------
pinecone
Try to join projects that are still young. Young projects, on average, don't
have political environments that generally make it very difficult to _really_
contribute.

------
brianloveswords
As tjr said, it would be helpful to know what sort of things interest you. My
advice is to find an open-source project that you use every day or find
technically interesting (firefox, amaroK, open-office, gaim...) and try to get
involved.

If you are adventurous, and freshman year in college is the time to be so,
don't pay attention to what language the project is written in -- working on a
project with an established code base in a language you DON'T know might
actually be better than getting into one in a language that you do, because it
will better motivate you to become proficient in it and, though they won't
necessarily want to hold your hand, you will have the oversight and assistance
of everyone working on the project.

~~~
bbb
By that metric pugs [1,2] comes to mind. Learning both Haskell and Perl is
probably not a bad idea, in terms of breadth. ;-)

[1] <http://en.wikipedia.org/wiki/Pugs> [2] <http://www.pugscode.org/>

------
thomasswift
close bugs on a project thats already out there, create a new feature on one,
or start your own.

~~~
omouse
Write or edit documentation. A lot of open source projects need help in that
department.

~~~
pc
That technically does satisfy the goal of "contributing", but it's also a
boring, menial job. (Which is why volunteer-driven projects have poor
documentation in the first place.)

I don't know of any open-source developer who got started writing docs.

------
davidw
Try creating something of your own that utilizes other stuff. I always find
that a great way to get caught up in the 'other stuff', as I invariably find
bugs or things I'd like to improve:-)

------
streblo
If you're good at python, the One Laptop per Child project is a good place to
look. I've been developing a few applications with some friends for a branch
of the program that we're starting in a local school system. The os for the XO
laptop (called Sugar) is almost entirely written in python. The people on
their IRC channel are usually pretty nice and helpful.

------
izak30
Many projects have extendible interfaces with good documentation.

Find web apps with APIs (FB, Twitter), they are a good start because you get
good results quickly for the most part.

Then write a plugin for something like jQuery (if you're into javascript)

Go from there.

------
bayareaguy
Have you looked around at what's going on at your college? Many good open
source projects start out as research projects, some of which will even pay
you a little to help them out.

If this is just for fun and self-improvement, just keep looking around until
you find a team that seems to appreciate that. Google SoC may be a good start.

If you're thinking of pursuing a software career, I'd recommend considering
projects that would help you in whatever kind of work you do later on. For
example if databases are your thing, take a look at PostgreSQL or sqlite3. If
you're into server-side web infrastructure, consider joining a project like
memcached or squid, etc.

------
mixmax
I have a somewhat related question, so I'll post it here and see if anyone
bites :-)

I recently started programming, so that I would actually know what those darn
coders were talking about ;-) I find it to be great fun, and want to do more.
But I can see that I need to interact with other programmers to pick up ideas,
habits, and the best way of doing things. So I also thought of joining an open
source project. The problem of course is that i'm a complete noob, and
probably won't live up to the high standards. How will that be seen in the
community? And what should I do to get going?

~~~
wheels
As I said in another recent comment, most OSS coders start off bad; it's being
part of the community over time that makes them good. So get a couple sets of
asbestos underwear for when the first flames roll in and start small. Find
something small that annoys you, fix it, generate a diff (if you don't know
how to do this, figure it out, it's easy and will win you a few points right
off the bat) and send it to the mailing list. Rinse, wash, repeat, for
increasingly large values of "small". :-)

------
tjr
Perhaps if you shared more about what kind of work you were interested in
doing, we could offer more specific advice?...

------
aggieben
find a project you like, look up their bugzilla/Trac/whatever and find bugs
you can fix. submit patches. (if it's a large bug, you may want to ping the
project's mailing list to make sure someone else doesn't already have work
underway for it).

