Article Stats
- Published on October 2nd 2008
- Categorized under Features
- 5 comments and 0 Pingbacks
- 24 views in the past 24 hours
2008 / October 2nd/ Contributing to open source makes a better developer
I firmly believe that one of the best ways to become a better developer is contribute to open source. Whether that means picking an existing project and adding your ideas, or releasing your own code, it’s probably the best thing you can do to improve your skills as a developer.
1. It forces you to write code
Going back to my my amazing CSS tip, in order to best improve your skills in anything you must do. Contributing to open source forces you to do instead of talking about doing.
2. It forces you to write code for other people
It’s easy to write bad code. I see it happen every day. Deadlines, conflicting syntactical styles, and the idea that no one else will really look at the code results in ugly hacky code. When you don’t think anyone else is going to look at your code, it’s easy to think “It doesn’t need to look good, it just needs to work.” But when contributing to open source, people will be looking at your code — and that thought is always in the back of your head. It’s just like cleaning your room while your mom is watching you — you have to do it right, without any shortcuts.
4. It forces you to document your code
I’ve found that documenting your code is a very hard thing to do in a work environment. I’m not talking about code comments — I’m talking about practical, day-to-day how to use this piece of code documentation. But when you’re dealing with open source software, you have to document your code if you expect others to actually use it.
5. It allows your peers to review your work and offer suggestions
Code reviews are a great thing. It’s why so many “agile” development companies are increasingly moving wards Pair Programming. However, in most development firms, most code goes completely unreviewed (unless someone else needs to fix a bug in your code). But when you release Open Source code, you’re implicitly asking everyone to review your changes and comment on them.
You can see this in public now that we have the awesome Github. Just take a look at the activity stream for a popular project like Prototype or Rails and you’ll see people weighing their opinions in on almost every commit — just like this one. Many times these comments end up producing better code in later versions. Small bugs or performance gains that the original author overlooked.
Why aren’t you contributing?
So why aren’t you contributing to Open Source already? I know that I am. There’s no requirements — you don’t even need to fill a need or come up with a better solution than someone else — just a solution you’d like to explore. Who knows, maybe your ideas can be applied to someone else’s project, or it’ll take off and become wildly popular. Go fork something today
5 Comments
Make a Comment
don’t be afraid, it’s just text

Warpspire is the place that web professional Kyle Neath writes about the web. 



October 3rd | #
You make some great points. I’ve found #2 to be especially true–your code looks very different when you know that you’re writing it for a group of people to use and not just you. Even if you normally write very clean code, it’s still a very different mindset to be writing code for another developer to actually use. You have to think about things like extensibility, ease of use, and all sorts of other issues that you really don’t consider when the code is only being written for your specific situation.
October 22nd | #
I absolutely agree, my own experience level was exponentially raised by doing open source projects. A good user base will shine a huge bright light on your design/code and, if your willing to listen, help you improve yourself along with the project.
October 27th | #
Did you forget #3? ;)
ps: your tabindex is screwy - tabbing from the content area of the comment to the next logical point (Post Comment) doesn’t work :(
November 24th | #
Related to #5, one of the best reasons I love Open Source is the spirit of giving. I’ve seen people take some code I wrote, add in new features I’ve never thought of, and give it back to me. It also tends to snowball as the project grows, the more people hacking on the code, the more features you get without having to put the time in yourself.
November 30th | #
i don’t know know that i can agree completely in regards to comments/cleanliness. an open source project will only be as good as its initial code base from my experience. compare wordpress to movabletype–worlds of difference under the hood. (wordpress looks like it was hacked together by 12 year-olds who just learned php.)
to expect a developer to write coherent code for others is a stretch. if they haven’t developed that habit/skill for themselves, i can’t foresee them possessing that ability, period. that comes with practice.
my opinions are skewed partly because i am a perfectionist and take pride in how i write my code, and it’s something i constantly work at improving. but i’ve worked on with other developers enough to believe that they will write how they write, because that’s what they’re used to. if i wanted a team member to follow a standard i’ve set in place, i have to explicitly ask them to do it. having my code for them to review/copy isn’t always enough.