For the past 18 months I have been studying with CompuTeach towards an MCTS certification in C#. I’m full to the brim with syntax and, as I have been led to believe unlike some university courses (but that’s another topic entirely), I’ve had to write quite a bit of code while working through the materials. Now that I have gained in confidence in my abilities as a programmer I thought it was naturally time to start looking at the job market to see whats out there when I pass my exams, and this is where I started to get a little down hearted.
Almost every job posting I have looked at expects at least 3 years experience! Which makes me think that it’s going to be almost impossible to get into a new career, now I’m sure this isn’t the only field which expects experience before you start a role but this is where we as programmers have a distinct advantage!
What? I hear you ask, but you can’t learn experience?!
Enter open source…
If you haven’t heard of open source software (OSS) then you must have been living in a cave for the last god know how many years. If you’re using Firefox to browse this blog post then guess what, you’re using OSS!
Open source software is usually developed in a public, collaborative manner. Generally the project will have a number of developers that work on the source code and collaborators may post patches which either fix bugs or add features to the software in question. These patches will be reviewed by the development team and either alter/apply/reject them. Enough good patches and you might grab yourself a spot as a developer, just as a prospective employer these people need to know you are competent before they let you come and work on the project they have most likely spend so much time and effort on!
The smaller the project the more likely you are to have your patches noticed, larger projects are probably going to want to see evidence of other projects you have worked on to prove your competency. See how much this sounds like a company would work, well this is just one of the plus points of OSS development.
So you’re not going to expect to become a developer on a project like Firefox from the off, much like you are not going to expect to have your first programming role at somewhere like Microsoft.
So what does this all mean? In my opinion contributing to OSS gives you a much better chance of becoming a competent developer. It exposes you to different programming languages and their IDEs, develops your problem solving abilities, shows you design patterns, but most of all and I think this is one of this biggest things that companies are looking for is TEAMWORK!
Where can I find OSS and projects that might need my help?
Well there are a number of places you can look, a few of my favorites are
Now that you have contributed to an open source project, you can put that on your CV which already puts you ahead of those Computer Science graduates who may have studied for years to get that degree, but have no idea how things work when it really comes down to writing software. So you can bet your bottom dollar that you wont be one of the 199 out of 200 applicants for the job that can’t do a FizzBuzz test!