In what ways have I contributed to the free and open source software community? And what can you do to help? Here are some thoughts.
I love helping FOSS projects, but it can be difficult to decide what to do.
Keep it simple
Choose a project where you need to learn one thing at a time.
There are languages (examples: Python, C), libraries (examples: GTK, Qt), and programming paradigms. (examples: GUI programming, threaded programming) When you begin working on a project, you will probably need to learn something new. Try to learn only one thing at a time. For example, if you have to learn gstreamer and GTK (two libraries) at the same time then you might become frustrated. Or, if you have to C++ and Qt (a language and a library) at the same time then you might become frustrated.
So, try to learn one thing at a time.
Working with other FOSS developers
I love working online with FOSS developers. When I get to talk to the lead developer of a project, it feels like I’m talking to a celebrity.
Of course, you should join the mailing list and bug tracker for the project you want to work on. I don’t usually introduce myself. Instead, I just start helping, and people will know me soon.
My FOSS experience
Here are some examples from my FOSS experience.
Many years ago, I wanted to write a new FOSS application. I couldn’t think of any new applications to make, so I decided to make a video game. There are never too many video games.
I learned many things by making video games:
Languages: C, Objective-C, Java, Assembly, Ada
Libraries: Allegro, SDL, Java SWING
I’ve submitted many bug reports to many different projects, such as wxWidgets, Allegro, Udiskie, and Haiku. I really like submitting bug reports and working with the developers to fix the problem. It’s easy to do and I get to use better software.
I maintain some AUR packages. (very easy, but it helps FOSS)
I helped write the documentation for some software from the Arch Linux community, such as Packer and Udiskie. I’ve contributed to the Arch Linux wiki.
Recently, my wife and I wanted a new application for budgetting. I decided to write one. I used Python and wxWidgets. It works pretty well. My next goal is to convert it to C++ and wxWidgets, and then make a version for Haiku using C++ and the Haiku API.
You should definitely work on something that you think is interesting. To me, that’s Arch Linux, Haiku, bug reports, and documentation. Try to find things that are interesting to you!
Lastly, don’t make your goal too big and don’t try to do too much. There are many many people helping in FOSS. If everyone does a little bit, then we can make something great.