Linux.com

Home Learn Linux Linux Documentation Weekend Project: Become a Linux Contributor

Weekend Project: Become a Linux Contributor

A lot of you fine readers are already contributors to your favorite worthy Linux projects. I'll wager there are also some who would love to contribute in some way, but aren't quite sure how. So here are a few ideas to get you inspired and, hopefully, involved.

http://upload.wikimedia.org/wikipedia/commons/6/63/USCurrency_Federal_Reserve.jpgMoney

Many projects accept donations of money. They may have wish lists of hardware for testing, or other items. A little bit is better than zero, so don't feel badly if you can only give a little.  I suggest focusing on a limited number of projects that you can support regularly, rather than trying to spread your finances too thinly.

Kindness

This is a lot more valuable than you may think. I'm not sure where the "you must have a hide this thick to enter" ethos came from, but it's bizarre and it doesn't work. Most people prefer to be treated with courtesy and friendliness, and that goes a long way in building a friendly, productive atmosphere. How to Protect Your Open Source Project From Poisonous People is a fast introduction to the subject.

If you enjoy encouraging people, and helping groups work together, you just might be a born community manager. The Art of Community by Jono Bacon is an excellent resource for anyone nutty enough to think they might want to be a Linux cat-herder.

Help Noobs

Every day there are hordes of new Linux users, and users new to a particular piece of Linux software. Having the patience to help newbies is incredibly valuable, and there are a lot of fairly simple ways to do this without it turning into a time sink. Your #1 resource is a good FAQ. It's not that hard to assemble and organize one from forum posts and IRC discussions, and it's a valuable way to help the developers of your favorite projects. Answering questions is a lot easier when you can point people to helpful resources.

Learn to Code

It all starts with the code, and all you need to learn is time and effort. I suggest starting with Bash shell scripting, codebecause it is the default Linux shell, and you'll need to know it no matter what other languages you learn. Don't make yourself crazy trying to decide which scripting or programming language to learn first-- just pick one. Everyone has their own ideas which ones are essential, and you can overthink yourself right out of even trying to start. Javascript, Python, Ruby, and PHP are all popular, fairly easy to learn, and well-documented. C is an oldtimer that is not going away anytime soon. Basic programming concepts are the same no matter what language you're using, so as soon as you develop some proficiency with one it's easier to learn additional languages.

Web Design and Marketing

Don't let the word "marketing" turn you off because I'm not talking about selling a project, but rather presenting its best face to the world. A lot of Linux and FOSS projects have Web sites that don't publish useful information. Like what the software does, in plain language. News and howtos are jumbled randomly into single blogs, or there is little useful communication of any kind. A project Web site doesn't need to be fancy, but it does need to be informative, and organized enough that interested visitors can learn cool things about the project.

Artwork and Multimedia

There are a lot of generous artists contributing beautiful work to Linux projects. Appearance does matter-- we stare at these dang things all day long, so they might as well look nice.

Encourage the Boss

If your business relies on Linux software, talk to the boss about supporting it in some way.

Write Howtos

The most brilliant software will just sit there if nobody knows how to use it. "Read the code" is not a substitute for good howtos. (Bruce Byfield offers some guidance on becoming a professional technical writer in Careers in Linux: Technical Writing.)

Users into Contributors

Turning users into contributors is what makes Linux and FOSS work. It takes a lot of different roles to support any software project, so don't be shy-- somewhere out there is the right one for you, where you can do satisfying work and make a difference.

Image credit:

Photo of US currency courtesy Wikimedia Commons, public domain

 

 

Comments

Subscribe to Comments Feed
  • Prashast Kumar Rajput Said:

    Now I passed my engineering. I wanted to contribute in coding since I was student. Each open source project says that start from the bug-fixing but I am unable to find any bug-finding tutorial which can tell me "how to clone from GIT" and how to debug the code , If you know any place which have good tutorials, please share ( my interest field is C++ )

  • Randall Klein Said:

    Code school has a great tutorial for the GIT part... http://www.codeschool.com/courses/try-git

  • Yuri Klopovsky Said:

    @Prashast Kumar Rajput Debugging is a common and tedious programming task. You have to be a good programmer to do it. It all comes with time an experience. I would suggest you to learn how to use gdb. It's the main tool used to debug binaries created with C/C++. Valgrind is usually used to work with memory management bugs. Git is huge topic that should be learned on it's own. Github provides some nice tutorials on git. I guess the is no single tutorial to cover all topics at once. In the long run, you have to deeply understand the code of your program to be able to debug it properly. Good luck! =)

  • Prashast Kr. Rajput Said:

    Thanks a lot for your help. I love opensource community because a lot of people out there for help. I want everything in one night and start shivering as I see tons of code.(actually I tried to start for mozilla and VLC but unable) Now I will first go through OpenHatch.org and then try for MozillA.

  • Satyakam Goswami Said:

    Openhatch.org is one such project trying to lower the barrier to entry for contributors

  • vishu Said:

    I always wanted to write code and I'm also interested in developing software. I read many articles about different programming languages. I'm confused as to which programming language to learn. Help me out. Thanks

  • ricegf Said:

    Language recommendations are a sensitive topic, I'm afraid. Let me put on my asbestos suit first. Ok, ready. ;-) If you've never written code, and want someone else to pick your first language for you, I would be happy to suggest Python as a friendly language with which to start. It has an interactive mode for experimenting, a built-in development environment called Idle, and is pre-installed on virtually all Linux products (and well-supported on most other systems). The official (and excellent) tutorial is at http://docs.python.org/3/tutorial/, and an excellent (free!) book called Dive Into Python is also available at http://getpython3.com/diveintopython3/. But each language has its own strengths, and it's far more important to make a decision for ANY of them and get started - you really can't make a bad choice here! For example, if you want to work on websites, start with Javascript (it runs in most every web browser), and later try PHP or Ruby for the server side. If mobile apps interest you, consider Java, which is used for Android apps, or Objective C for iPhone apps - though both can be used for non-mobile as well, of course. Perl is great for text manipulation, and bash for quick and dirty automation of everyday Linux tasks. And of course, the Linux Kernel and the Gnome-based environments are written in C, and the KDE environment and many large projects in C++. The great news is that once you learn your first language - ANY language - your second language is 10 times easier to learn, and your third 3 times easier still. By the time you've learned a dozen, you'll pick up a new language without thinking much. I know well over a hundred now, though I use Python, bash, and PHP most often. The important thing is to make a decision and start learning. So get going!!!

  • Laurent Said:

    Hi everyone, It often happens when using Linux softwares that we found some menus not translated in the language we have set in our system. Please kindly explain how we can submit updates for the translations of distributions like Debian, Ubuntu, Suse, RedHat... Thanks in advance.

  • Papa blogger Said:

    @laurent : I got your query ..and i was facing this same problem in mah system while using linux.. i am totally agree with you . More about linux

  • Nisse Said:

    One great way to contribute is translating program UIs to different lanquages. Help is always needed.

  • Chris Evans Said:

    Check out sourceforge.net or github.com for projects that need help...

  • papa blogger Said:

    For more queries about it check out PAPA BLOGGER

  • Anelie Ivanova Said:

    Hi, Recently I came across some great articles on your site. The other day, I was discussing (http://www.linux.com/learn/docs/683712-weekend-project-become-a-linux-contributor)with my colleagues and they suggested I submit an article of my own. Your site is just perfect for what I have written! Would it be ok to submit the article? It is free of charge, of course! Let me know what you think Contact me at anelieivanova@gmail.com Regards Anelie Ivanova

  • JACKET Said:

    public opinion of the constraints, and may also be destroyed. If a professional on the job is not professional, http://www.louboutinukstockists.co.uk/ has violated the professional ethics, and are likely to have been fired!

  • Dante Smith Said:

    Hello, I really loved your latest post on "Weekend Project: Become a Linux Contributor". I have gone ahead and added "Linux.com" to my Flipboard. Keep writing awesome stuff, and I will keep reading it.

Upcoming Linux Foundation Courses

  1. LFS426 Linux Performance Tuning
    08 Sep » 11 Sep - New York
    Details
  2. LFS520 OpenStack Cloud Architecture and Deployment
    08 Sep » 11 Sep - Virtual
    Details
  3. LFD320 Linux Kernel Internals and Debugging
    15 Sep » 19 Sep - Virtual
    Details

View All Upcoming Courses

Become an Individual Member
Check out the Friday Funnies

Sign Up For the Linux.com Newsletter


Who we are ?

The Linux Foundation is a non-profit consortium dedicated to the growth of Linux.

More About the foundation...

Frequent Questions

Join / Linux Training / Board