Everyone who has a blog or website dedicated to open source seems to write an article like this sooner or later, so here’s mine 🙂
First of all a story:
Ever had an itch that you just had to scratch? My itch was more of a burning desire to help out in the big wide world of open source software. I never really wanted to start my own project from scratch; I didn’t care about making money out of open source software, I don’t feel the need to prove myself to anyone (except myself) and I don’t want fame, glory or any of the hassles that can come from creating and maintaining a successful project. My desire came from a different place altogether.
I wanted to do something that would have a positive impact on others, even if it was only in a very small way. something that I could feel good about and that could help people to improve themselves. I hoped this would have a knock on effect and the people who I helped would go on to do something even better, or in turn help others in the same way. As I wasn’t planning on making any money I also needed to do things that would help me learn new skills, or at the very least help me to improve my old ones.
I didn’t have a job so spare time wasn’t really a problem for me. Money on the other hand was very limited and I couldn’t afford to pay out for anything. My skills in most areas were sorely lacking and my life was completely devoid of any structure or routine. I didn’t want to get involved in projects that required other people to depend on me too much as I didn’t want to let anyone down. Basically I had time on my side but very little else. How on earth could I ever hope to make any type of meaningful contribution to the open source movement?
After a lot of thought and contemplation, I decided to start small by reading up on a few projects that interested me personally. I contributed ideas to try and improve these projects and got help or feedback from existing project members. Once I’d learned the basics of the projects and felt confident enough to find my own way around them, I started to answer some of the easier questions on the forums to help out the newer users in the same way that I’d been helped out myself. This of course got me into writing basic tutorials, which in turn led me into running a website/blog that would hold all of my tutorials in one easy to find location.
Anyway that’s how I got started. I might not be a huge part of what’s going on in the world of open source, but I like to think that I’ve made a difference somewhere along the line 🙂
Now it’s your turn:
If your interested in getting involved with open source yourself, there’s some information that everyone needs to know..
Don’t spread yourself too thin. Lots of people in the open source world suffer from what’s known as burn out. They work hard on too many projects at once and one day get bored, tired, or find that they just can’t motivate themselves enough to contribute anymore. A nice long holiday usually sorts them out, but this wouldn’t be necessary if they hadn’t taken on so many projects at once.
It’s a lot easier to work on a project that you have a personal interest in. This makes it more fun than work and you’ll find yourself getting lots done without even realizing it. I constantly loose track of the time when writing tutorials just because I enjoy doing it so much.
If you can’t find a project that interests you personally, find one that needs help in something that you can already do but could always use more practice in. My English skills were going down hill since leaving school due to lack of use. Writing tutorials, answering posts on forums and running web sites has helped me to bring them back up to speed. I’m still pretty crap.. but a lot better than I was 😉
Easy ways to get involved:
The following suggestions for helping out are not only easy to do but will allow you to learn a lot of new skills which can be useful for you in other ways as well.
Spreading the Word
This doesn’t mean you should run around the nearest town centre grabbing everyone you see and forcing them into listening to you or trying out software. Nobody likes being told what to do, or that the software they paid their hard earned money out for is.. well.. rubbish. There are more subtle ways to let people know about open source.
Clothing – A simple logo on a t-shirt or hat will tweak peoples curiosity every time. It doesn’t need to be a big logo, it doesn’t even need to say Ubuntu, Linux or mention anything about open source. If it catches some ones eye human nature will urge them on to find out more about it.
Email and forum signatures – Same can be said for these two as well. If every email you send or post you put up on a forum has http://www.ubuntu.com/ on the bottom of it, it’s pretty much a given that some people will open the address up in their web browser just to find out what the hell it is.
Use it in public – If you own hardware that runs open source software, letting people see you using it out in public is normally enough to make them inquire more about it. I’ve been asked tons of times about my GP2X and my Nokia N800 while out and about just minding my own business. I can guarantee that they have at least heared about open source by the time they say goodbye to me.
When all is said and done, people are always looking out for something better than what they already have (especially if it’s free). Don’t chase them, just let them come to you 🙂
Ubuntu Brainstorm – This site allows you to vote on features that will improve the Ubuntu operating system. It’s a terrific way of contributing to Ubuntu and will allow you to actively help to shape the project. If you like an idea give it a thumbs up, if you don’t then give it a thumbs down. Not hard is it? 😉
Proof Reading – Proof readers can be extremely useful to developers. It’s easy to miss simple mistakes when your writing pages and pages of instructions for software manuals or a wiki. As an added bonus you’ll learn more about the software you use in the process.
Testing – If you have a computer or hard drive spare and you know someone who writes a lot of tutorials, why not offer your services as a beta tester? all you need to do is read through the tutorials that they write and follow them. You’ll not only learn more about the software, but also pick up on some of the more commonly used Linux commands too. If you trash your computer while testing, just do a re-installation.
Writing tutorials yourself (IMHO) is one of the best ways of both helping out others and gaining more experience yourself. To write a successful tutorial you need to fully understand what it is that your writing about. This means reading as much information on the subject as you can find, comparing it, dissecting it, writing it up and then testing the hell out of it.
By writing documentation or MAN pages, you will be freeing the developers to work on writing the software or submitting patches and in doing so speeding up the actual creation of the software itself.
If you know more than one written language, why not help out with translating software? In most cases a developer will send you a simple text file. All you’ll need to do is open the file up in a text editor, change the words that you recognize from one language to another and send the new version back to them. This might not improve how the software works directly, but it will enable more people to use it and in turn bring in new volunteers to help out on the project.
Helping to fix bugs doesn’t need to be hard work or take any specialized knowledge in computer programming.
Confirming – The easiest part of fixing bugs is to go on-line and choose a bug that someone else has already reported. Follow the same steps that they took to find the bug and confirm that you get the same results. Just because they reported it as a bug, doesn’t mean that the bug effects everyone. It might be that they had already installed some software that changed the way their system works and it’s the other software that has the bug not the one that they reported.
Graphic artists are a highly sort after commodity in the world of open source and you don’t even have to be good at drawing to be one.
Scalable Vector Graphics (SVG‘s) are used in just about everything graphical these days. It doesn’t take an artist to create something useful with SVG’s, you just need to be capable of following some tutorials and you’ll be amazed what you can do with some simple shapes.
With programs like Inkscape you can create icons that don’t loose resolution or quality when resized, unique wall paper for your desktop, personal avatars for forums and messengers, comic books and even movable objects for animation or computer games. SVG is also the preferred format of graphics for mobile devices and web pages too, so you know it’s a useful skill to have.
Couple Inkscape with a program like the Gimp and you have yourself a free graphics factory that will help you to turn out your first masterpiece in no time at all.
I wouldn’t really class programming as an easy way to get involved in open source. If you find that you want to try it anyway though, learning Python is probably the best way to go. Most people will tell you this is because Python is easier to learn than some of the older languages but that’s only half of it. Scripting is probably the best reason to learn Python.
Scripts are basically just small programs with no graphical user interface. They can be run from the command line or from inside another program but they aren’t normally big enough to be considered an actual program themselves. Python was designed and created to work either by itself or in conjunction with just about any other programming language in use today, so Python scripts will work with them too.
Graphics – Most open source graphics software like Inkscape, Gimp and Blender, are capable of using Python scripts to add features that aren’t normally included with a native installation. A script will enable you to add new effects to photographs or allow you to export your creations in other formats than what are normally allowed.
Desktops – Open source desktops like Gnome and KDE can also be extended by scripting in Python. It’s even possible to enable encryption and other advanced desktop features by using scripts.
Games – It can be a good idea to use scripts for the artificial intelligence of objects. There easy to write, easy to implement and easy to replace without having to change or re-compile any code from the actual game engine itself.
Internet – Sites like Twitter or Facebook can have features added or expanded by implementing scripting. Python scripts for interfacing with databases are very popular on web servers too to extract information and compile statistics.
Software – Of course you can also build complete programs out of Python if you wish to do so 😉
There are loads of ways that a person can help out in open source these days. However you decide to help out please remember this; even if you only make a slight difference.. you have still made a difference 😀