I read lots of posts here that suggest participating in open source project, I just wonder how does this help to improve freelancing?
Assuming you're a programmer...
It shows you have hobbies or interests you are willing to work on in your "down time". People with hobbies tend to be really excited when they get to also get paid for doing what they love. If you show you love programming for free (or to improve the world through software you love using...), then you'll love whatever project the client may throw at you.
It shows your coding styles. Not everyone follows the same convention, even though everyone tries. I have my own style that works for me, and it's a mish-mash of many coding standards. I never grew up learning coding styles, so I invented my own. If the client wants to see your work, it's easy to see if it's what they are expecting, or if there will be a large learning curve for you.
It shows you work well with a team. If you have 2 contributors (yourself included), that is not quite as impressive of a feat as working with 300 contributors. If you can work with others, that's a great feature if the client is looking for either a team, or to pass code on from programmer to programmer to programmer during the program's life.
Those are my top three reasons to contribute to Open-Source Software Projects on my portfolio; I don't have any contributors except myself, but that's because programming is far, far, FAR down my list of what I want to do for Freelance work right now.
Being a freelance developer, participating in open source projects (or FLOSS projects) can provide a pretty good reputation for yourself:
Your software abilities are well-known
Open Source projects generally have the source code available to anyone, and many hosting services, such as GitHub, have the ability to show the quality and amount of contributions you make to projects. This means that people have the ability to see what you contribute: be it entire revisions to source files, or simple patches to nasty bugs. This has the added benefit in that it directly shows what you know, your abilities and competences as well. If you can program in multiple languages, it shows. If you can find a nasty bug, it shows. If you can rewrite an entire script, it shows.
You show that you can collaborate
Collaboration isn't just talking with Friends together in a cafe. People all over the world contribute, and maintain open source projects. Since you're online, you've got to act professional, and you need to be nice. Taking GitHub again as an example, you need to show that you are able to raise issues, feature requests, and notices while coming across as respectful.
If you are the maintainer/owner of a project, there comes an added bonus. As you would be responsible for accepting pull requests, it is important that you accept and reject calmly, and most notably with messages that specifically describe why you follow such an action. As you make the decisions for your projects future, it's important that you discuss with end users and show that you care.
You show that you've got an interest
Open Source development is best when you don't have much experience working on a job. Entry-level programmers that don't normally have much work experience, and those who are unemployed and self-employed, often participate in open source projects to show that they are still committed. No one likes looking at a CV (Resume) to show large periods of inactivity. Participating means that you still retain skills, whether they be programming related or not. I'm not a professional programmer myself: I'm still a 15 year old person in school. But I still make projects, post it on GitHub, and place good licenses on them: to show that I have an interest, and in a bid to further develop the skills that I already have.
These are just a few points. Obviously, you'd want to let prospective people know what you do, so make sure that you make known your contributions to the software community as well. Good luck!
For me, as a freelance, an important thing is to build a network, working on open source project helps you build your network. on top of what Canadian Luke has said, I'd add :
- Working on project you will "meet" people (not physically), they will contact you to add a feature on the project or they have a bug. Knowing those people can help you get job at their company specially if they have interest in the project you're working on.
- If by chance you get to work on open source project that gets hype, the project might already be used by potential clients, it might help you as contributor of the project to get a deal with those companies
- You learn a lot and you learn from others. if your project gets some visibility, others will see and you might receive pull request, you'll end up working on things you did not know before and you improve your skills a lot