Share your knowledge at the LQ Wiki.
Go Back > Forums > Linux Forums > Linux - Software
User Name
Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.


  Search this Thread
Old 05-11-2015, 09:33 PM   #1
LQ Newbie
Registered: Apr 2015
Location: Iowa
Distribution: Debian
Posts: 15

Rep: Reputation: 8
How can I start helping with open source?

I want to start helping out on open-source projects, because I think the culture is really cool and because I want to strengthen my programming skills.

I've been groveling through GitHub, looking for a project to start with, but I've been having trouble. According to something ESR wrote at one point that I read, I should be looking for projects that are just a couple hundred lines or so. I don't even know how to tell how big they are, though. They all look so intricate.

I have basic programming skills and a partial understanding of OO principles. I've programmed in Java, C#, and Python. (And, well, VB (because of school), but that won't do me much good here.) I've played around a bit with C and plan on learning more.

If I need to be fluent in a language before I start tinkering, I can become so... but I'm getting tired of learning from textbooks. I have excellent textbooks at my disposal but they're rather boring if you don't do much with the skills.

If someone could tell me how to find a project to work with, it'd be much appreciated. Individual project suggestions are appreciated too but not generally what I'm looking for.

I do have a GitHub account, and I have Git installed.
Old 05-11-2015, 09:43 PM   #2
LQ Guru
Registered: Jan 2006
Location: Virginia, USA
Distribution: Slackware, Ubuntu MATE, Mageia, and whatever VMs I happen to be playing with
Posts: 18,766
Blog Entries: 28

Rep: Reputation: 5966Reputation: 5966Reputation: 5966Reputation: 5966Reputation: 5966Reputation: 5966Reputation: 5966Reputation: 5966Reputation: 5966Reputation: 5966Reputation: 5966
There are all kinds of things you can do.

Of course, you can code. Also, many projects desperately need persons to help write documentation. You can run testing distros and file bug reports.

A web search for "how to help with open source" will turn up many useful links.

I suspect the most important thing is to pick one or two worthwhile projects and focus on them, so your efforts are concentrated and focused, not scatter-shot.

Me, I've decided that trying to help persons via LQ is the best way I can contribute, because, as a trainer, explaining stuff is what I do best. Plus, LQ was good to me, so I want to return the favor as best I can.

Last edited by frankbell; 05-11-2015 at 09:46 PM.
Old 05-11-2015, 10:03 PM   #3
LQ Newbie
Registered: Apr 2015
Location: Iowa
Distribution: Debian
Posts: 15

Original Poster
Rep: Reputation: 8
Eh, I should have taken more care in selecting my title...

Let me rephrase this question:
How do I find a project to start working on that's small and simple enough to be workable by my fledgling programming skills?

I've already done that Google search and read those articles. I'm asking a more specific question--I guess about GitHub in particular.

I know I want to code in particular, because that helps me as well.

Thanks for your reply anyway, though!

Last edited by Rebekah; 05-11-2015 at 10:08 PM.
Old 05-12-2015, 06:49 AM   #4
Registered: Mar 2011
Location: USA
Distribution: MINT Debian, Angstrom, SUSE, Ubuntu, Debian
Posts: 9,788
Blog Entries: 13

Rep: Reputation: 4831Reputation: 4831Reputation: 4831Reputation: 4831Reputation: 4831Reputation: 4831Reputation: 4831Reputation: 4831Reputation: 4831Reputation: 4831Reputation: 4831
I've always found that while I learn better by doing, I also learn better by either instructing or doing "under the gun". Which is to say "instructing" where you're responsible to be correct, provide a guideline to the students, and be capable to answer their extended questions. "Under the gun" means either I have a class where I have assignments or I have a job where I have work to accomplish.

I did a quick search and I think the lion's share of search results you'll see are a bunch of people asking this very same question. So you'll likely end up benefiting to some small degree by reviewing those questions and associated answers; however you'll put in a lot more effort to view it all than maybe what it's worth.

EVERYTHING in Linux is open source. Maybe start with the binary commands and don't do something intentionally helpful, just do something new. For instance, the LS command. Or the FIND command. Or the GREP command. Or the CD, PWD commands. Get the source for those standard binaries and "add a feature" which the command doesn't currently perform.

And start by just being able to compile one of those projects. Make one line of change and verify that your one line of change compiles and actually makes a difference, such as you added a log entry when the function is called. Then go on to make some more complex edits.

Note that many of these commands are moderately simple. Even if one isn't so simple in size of scope, if you download the project and build it, that's the first thing. Then find the main() function and see about enhancing it's capability to parse additional arguments, thus adding your newly proposed argument. For instance, say it doesn't have a "-d" switch or something similar, then add that capability. Verify you got it parse-able, and then decide what you might do with having added your new command switch. Like I say, this does not have to be immediately helpful, but it will get you started.

You don't have to contribute your result right away, or ever. And whatever added feature you do doesn't have to be really useful. But what you'll get is experience with the open source development of those items. Once you gain some of this experience you can explore things of higher complexity and maybe determine on your own what contributions you could make which would enhance things for someone else.

Last edited by rtmistler; 05-12-2015 at 06:53 AM.
1 members found this post helpful.
Old 05-12-2015, 07:40 AM   #5
LQ Newbie
Registered: Nov 2014
Posts: 19

Rep: Reputation: Disabled
You need to take the initiative. As you know anyone can contribute as long as you abide by the licence that program was released under.
So find a program that's lacking a feature pull the source file from github, fix it and fork it.
How do I find a project to start working on that's small and simple enough to be workable by my fledgling programming skills?
How long is a piece of string. What maybe simple to you maybe rocket science to someone else.
Old 05-12-2015, 07:51 AM   #6
LQ Guru
Registered: Feb 2004
Location: SE Tennessee, USA
Distribution: Gentoo, LFS
Posts: 10,247
Blog Entries: 4

Rep: Reputation: 3777Reputation: 3777Reputation: 3777Reputation: 3777Reputation: 3777Reputation: 3777Reputation: 3777Reputation: 3777Reputation: 3777Reputation: 3777Reputation: 3777
Find a project which interests you, and contact the people who are responsible for maintaining it. Realize that you are making a commitment that is commensurate to "a real job," but one that you might never get paid for.

Don't be surprised if the owners of the project assign you to "sweep the floors and empty the dust-bins." (Don't be surprised if they do nothing more than that for a long time.) People who express an interest in open-source projects are usually wall-flowers who don't stick around. Show that you are different. Be patient.

You'll be asked to help shoot-down bugs. That's a way to become familiar with the code: a good way. You'll be asked to write documentation: not only does documentation "never get written, otherwise," but it's another good way to become familiar with the code.

Eventually, you might "write a 'patch.'" (Congratulations.) But you will not be able to "push" that patch to the project's repository. Instead, you must make a "'pull' request," asking the owners of the project to 'pull' your patch from your repository, review your changes, and consider whether they will allow your patch to become part of their product. (Congratulations again, when they do.)

One thing that's an eye-opener for many people is that "open-source software projects are usually far more disciplined than what you get away with encounter at $WORK." It is a good discipline, however.

You can set your own level of commitment to an open-source project, but, whatever level of commitment you choose to and are able to set, [u]keep/u] your promises. Respect deadlines. Do professional work and write source-code that is indistinguishable in style and format from all the other source-code that is already part of the project. Start small.

Last edited by sundialsvcs; 05-12-2015 at 07:53 AM.
1 members found this post helpful.
Old 05-12-2015, 08:59 AM   #7
LQ Guru
Registered: Sep 2011
Location: Upper Hale, Surrey/Hants Border, UK
Distribution: Mainly Devuan with some Tiny Core, Fatdog, Haiku, & BSD thrown in.
Posts: 5,014

Rep: Reputation: Disabled
Although it is not Linux, Haiku are crying out for coding help, (C++ I think), it might give you more satisfaction to work with them.
(You don't have to give up on Linux, but there are other open source projects.)


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
LXer: Helping African hospitals with open source software LXer Syndicated Linux News 0 04-30-2014 01:10 PM
LXer: How the Linux Foundation is helping the auto industry shift to open source infotainment system LXer Syndicated Linux News 0 10-16-2013 07:20 AM
LXer: How is Microsoft helping to insulate itself against the recession? Open Source LXer Syndicated Linux News 2 03-25-2009 10:19 AM
LXer: Open source big names helping attract new users LXer Syndicated Linux News 0 04-29-2008 10:10 AM
LXer: Amsterdam may soon start migration to open source & open standards LXer Syndicated Linux News 0 10-09-2007 01:40 PM > Forums > Linux Forums > Linux - Software

All times are GMT -5. The time now is 07:59 PM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration