I will soon be looking for new employment opportunities. I have traditionally been classified as a Desktop Admin, but I'm really more of an IT Swiss Army Knife. I am currently on an admin team, but I get asked to do the development type things for the team. I have experience in C#/C++/C/Per/...ad nauseum, but none of it is on a formal development team working on a formal project. To rectify this perceived hole in my resume, I would like to get involved in a well run open source project that I could work on in the evenings. Does anyone know of a website where I might be able to find such a project? Or does anyone have one to recommend. I know that I could go to some of the sites like sourceforge to find projects, but I have a hard time determining which projects are actively seeking help and which are merely someone's hobby project that they want to develop themselves. I guess what I'm looking for is a sort of open source "classifieds" page. Thanks for any suggestions.
Ok, more poking around on sourceforge found the help wanted section that I was apparently too blind to see before. I would still be interested in input from the stackoverflow community.
One good way is to browse the Sourceforge and Google Code directories, and find a small-to-medium project which appeals to you and which is open to outside help.
It's also worth noting that if you're looking to fill the "no commercial experience" gap it might be better to build and publicize a tool yourself, rather than devoting all that time to an existing open-source project. Choose a good pet project of your own creativity and roll with it.
If rather than telling employers "I worked on the XYZ open-source project" you were able to say "I am the creator and maintainer of the Fiddler tool, available at XYZ.com" I think that's a much stronger sell.
Good luck, either way.
If you're looking for an Open Source project in C#, you should also take a look at CodePlex (see the project list filtered on C#).
Here are a few of the larger C# open source projects I'm aware of (either worked with, used, or heard a lot of good reports) which are well run and would definitely welcome input:
- Subtext (weblog system)
- SubSonic (data access toolkit + lots more)
- MVC Contrib (additional goodness for ASP.NET MVC)
- AJAX Control Toolkit (Controls built on the ASP.NET AJAX framework)
- BlogEngine.NET (weblog system)
- DasBlog (weblog system)
DotNetNuke (web portal system) is probably the largest .NET open source project, but it's in VB.NET.
I think it's better to join in an established project than to start your own. Your contributions will be used by more people, and from the point of view of an employer I'd much rather hear that you contributed to a project I might have heard of instead of "I started yet another .NET weblog project".
Thanks for the advice. Perhaps I will look into developing my own tool.
I'm in a very similar boat. I'm an admin that is starting to do more development and I have joined a couple of open source projects hosted on Codeplex that I use at work. While I would rather work with a Subversion back-end (than Team Foundation Server), using SvnBridge has made that less painful.
My advice would be to look for an active project (on that seems to release regularly (or at least frequently)) that you are interested in and join that project. Having others involved in a project you are working on gives you someone to be accountable to and someone to bounce ideas off of. It has really helped my coding, both by increasing my confidence in putting code out in public and learning some new tricks.
It is totally worth it to get involved in open source.
This is honestly the hardest thing about Open Source, because some of the most legit projects don't look that way because their presence is only known through a poor web page constructed in 1997 and a mailing list. Other projects are very flashy but have nothing to back them up. Some projects don't know how to accept new members and don't event know how to ask.
Best way to find these projects is to keep your ear to the ground and network in forums like this.
Jon Galloway wrote:
I think it's better to join in an established project than to start your own. Your contributions will be used by more people, and from the point of view of an employer I'd much rather hear that you contributed to a project I might have heard of instead of "I started yet another .NET weblog project".
On the surface you might think so, but the fact is, open-source projects are far more common than independent pet projects, and the other fact is, open-source projects are missing two key ingredient employers want to see: experience developing software for a paying customer base and experience with the full software development life cycle.
In fact, in many jobs, too much of an "open-source" emphasis can hurt you, rather than help you.
Open-source is still associated, in many manager's minds, with academia and the academic (rather than the commercial) view on programming. Fairly or unfairly.
Now, it's definitely, always and forever, a good idea to get involved with open-source, for learning, for community, and for a dozen other reasons. But if you're specifically trying to bridge the gap from being a "hobbyist" programmer to a "professional" one, I think the easiest way, the way that gives you the most "bang" for your programming "buck", is to build and promote something from the ground up.
That demonstrates full software life cycle development, and it demonstrates initiative.
And it's likely you'll learn far more about actually programming doing things in this way, rather than developing a left-handed spin widget UI component for the latest hip open-source project ;)
My suggestion is find an application area where you have a real passion. If you just want to kill some time, there are thousands of projects to join. But it can quickly become another "job". When I look for people to join the DotNetNuke team, I look for people with passion about our project, not just someone who wants to come pad their resume. People with passion are more likely to stick with us through both the fun coding and the grunt work, while people looking to pad their resume generally don't stick around longer than it takes to add a new line on the resume.
@Joe, thanks for the advice. That is kind of why I was asking the question. I haven't found something that gets me all fired up to see it work so I was just looking for more ideas.
You could search Ohloh a bit. There are quite a lot of projects which are tagged as C#. As Ohloh also tries to track source code repositories, it can tell you a bit about the project's activity.
Hi Gaius, we would need a CLA from you [and your employer], but in exchange for such a thing and some seriously good patches or extension controls you would get submit access to Ra-Ajax. But you must prove yourself first...
If you do, you get a profile here though... :)