Everyone wants to contribute in some way with developers. Maybe you’re thinking in a project to develop and share but you search at Google and find someone who already did that.
Maybe the answer to this problem is in front of you. Everything you do can be reused in a future project. If you’re working in a project in the company you works, I’m sure you have some piece of code that you had to thought to develop it. So you can contribute.
I am now developing the WordPress Corcel, that is a small set of classes that works in a WordPress database, retrieving data and working with them. It uses the Eloquent ORM, developed for the Laravel Framework.
This project is the result of a project we’re developing inside my advertising company. We had to integrate some libraries and databases with a WordPress installation but WordPress was too closed to do that, so we started to work in some classes that with Composer we’ll can use in that project, using Slim Framework or another framework that uses Composer too.
That’s the idea! Maybe that set of classes won’t be good for anyone, but maybe it can be useful for one or two developers, and it’s the best. Only that justifies everything.
You can invent something to share and maybe it will be good enough for others. But the best open source tools we’re using today was extracted from private projects in private companies. Take the Ruby on Rails example. Hanson extracted it developing the 37signals’s product Basecamp. Taylor Otwell extracted Laravel from a private project at Userscape, company he works. Maybe you can contribute with simple things, that you only have to extract and share, just that.
Be a better developer
I started to write this post with a objetive but now I have another one. I am doing my best to improve my knowledges, reading more, writing more, developing more, talking more, contributing more, etc. And I have to say the best way to share is knowing more, is developing better.
I am always studying about Design Patters more and more. You can write a entire project using Laravel or Zend, and it can be a very good one, without errors, tested and more. But if you developed everything inside the framework you can’t extract it and share. And if you want to do that you have to develop better, you have to use Design Patterns.
This way, every time you start a new project, start another one! One will be your project, using Laravel or Zend, and another a small package with useful classes that you can reuse and share later. Pay attention to use some Design Patterns and do your best to be a better developer. After that, you will have a package to share, and it can be interesting for one or two developers, maybe more and more. That’s good.
If you don’t have enough experience using patterns you can try. Maybe you are reading about “Adapters” and you can apply it inside your current project. This way you can write more and practice what you are learning. And you will be a better developer, I’m sure!
I think that’s the message I want to give you. You can do that better and everyone wins. If you are learning english the best way to improve it is writing, talking and missing (like me :D). And if you want to be a better developer you have to code, but code the right way, and share.