

Ask HN: Best way to get involved with open source? - alphast0rm

I've recently been getting more interested in open source projects and I'm not sure what the best way to get involved and start contributing is.  Are there any requirements for contributing, or can anyone help?  How can you find stuff that needs to be done?  Any advice on how to get started would be greatly appreciated!
======
orangethirty
I'm currently working on an open source project. Here is what I've learned.

1\. There are two kinds of OSS projects. Libraries/utilities aimed at
programmers and full applications (whoever simple they may be) aimed at a
specific industry/need. What you choose will depend on your personal
preference and needs. In my case, I chose to do an application because it is
something that is needed and not currently available (for free, and in PHP
(the language I'm using)). I also use it as a personal tool ( I used it to
build it ).

2\. Talk to people before deciding. I love asking people about their jobs in
order to find new needs. My current project was born that way.

3\. Pick something simple for your first project. You want to pick something
doable. A simple open source project that ships is better than a complex one
that stagnates in your file system.

4\. Treat it as if you were doing a paid project. Use deadlines, make
compromises, and for the love of code, stick to them. I learned this the hard
way. Decide and code. Rinse and repeat. Learn to live with your choices.

5\. Document it at the same time you build it. This ended up being
easier/faster for me.

6\. Don't forget to promote it by emailing people with a link to the project
and putting a link right here on HN.

Good luck!

------
lumberjack
I don't know about the best way but the easiest way is to start a project
yourself. It must be a real world project that can be used by others. Once you
are satisfied with it, attach an appropriate free license and upload it to
your github repository. Then it's important to use it, maintain it and even
talk about it. Start simple. I started with yet another node.js template
engine, for example. It's also important to respond to any response from the
community.

Also, not to be pedantic but you probably mean "free software". "Open source"
software is not necessarily open to be edited and republished as free software
is.

------
pkhamre
I would say that one of the most important things, is to have an account on
GitHub. If you do not have one already, sign up at <https://github.com/>.
Start to follow some people and watch a few repositories for any projects you
find interesting.

Use the search functions to discover projects.

Browse through issues, look how other people post issues. In general, being
active on GitHub is a good way to get into open source projects.

Another place you could get started is to connect to the Freenode IRC network
and join some open source projects channels there.

------
Sgoettschkes
Depending on what your knowledge is, what languages you enjoy or what is of
interest for you you should just get in contact with people.

Most of them are happy you want to contribute and will help you.

Some resources: IRC-Channels, Google Groups, Github.

I started working on documentation for a project because I wasn't really ready
to work on the core (both because I didn't knew the project that well and
because the whole git fork-pull request workflow was new to me). I learned a
lot about contributing and now contribute to a few small projects.

------
tstegart
There were a few recent articles on this on HN, you might find some great
projects if you do a search. You could also start your own tiny project, a lot
of people post code for common problems that other people can reuse in their
own projects. For example, I'm thinking of using this in our project:
<https://github.com/arashpayan/appirater/>

Its just the sort of thing I love the open source community for and makes my
day.

------
tobylane
Pick something you enjoy using, like a game. Pick something with a clear
process (of taking patches from new people) that you can see working. Pick a
project where there's a clear todo list.

e.g. When I learn Lua i'll contribute to Corsixth [1] because I enjoy playing
it, I've seen the core people work with new helpers and the wiki includes a
todo with whos working on what.

[1]<https://code.google.com/p/corsix-th>

------
barakstout
Pick a project that you like and is relatively small. Download the source code
and run it locally. Then make changes to it and see how it goes. Don't forget
to read the documentation and be active on the forums. You don't have to post
anything to the forum. Just read them.

------
HedgeMage
Pick something you use and improve it. If you aren't sure about jumping into
the code base, start by improving documentation, doing issue queue triage,
whatever.

The project's ML, issue queue, and IRC channel(s) are great places to lurk and
learn the lay of the land.

