Writing open source software is always a good thing.
Construct was basically my first open source project and I can honestly say that I learned way much more than I would ever expect and I just wrote it because I had a simple problem and construct just solves it. I hope other people’s problems too. More details about why I built the project in the first place are here. First off, I learned a few tricks about composer and some things that I wasn’t doing well with it, I don’t mean that I was doing them wrong, but thanks to the people contributing to the project I learned a few tricks here and there about it.
Thanks to writing open source software I also learned how to use semantic versioning well, and a few more tricks about php unit and mocking. I learned more reasons of why is important to have tests in your project, in this project in particular having integration tests helped a lot. They helped me refactor things here and there without the fear of breaking something somewhere else in the code. I refactored stuff as I saw fit without any fear. Just made my tweaks, ran the test suite, and if it passes, it means that I’m good to go.
You will definitely learn new things
Writing OSS is always a good thing because you’ll learn things that you had no idea about before. Just as it happened to me. You’ll learn how to use and contribute better with git. Merging pull requests, feature branches. You won’t be doubtful anymore when you need to squash commits or rebase branches. Learning how to do these things effectively on git will help you a LOT when making contribution to other open source projects. You’ll learn about Travis CI, the continuos integration tool, even though there are many others, just learning how to use travis will set you up on how to better understand all the other related tools that are out there. You’ll see how valuable is for others to see that your tests are passing and gives them a certain confidence that your project is doing what is supposed to do.
You’ll write better documentation
It certainly helps to put yourself on the shoes of your users. You’ll ask yourself if your public API or your implementation is easy to use. If anything on the usage of your project feels weird, it will help you to be more clear about your intentions. You’ll explain yourself and communicate better. It certainly did for me.
You may find your dream job
It will greatly help you when you are on the hunt of a new job. Having a decent GitHub profile with various recent projects will certainly help, it may not guarantee you a job, but it would certainly benefit you. It may help you stand above others. Potential employers will be able to see what you’ve been working on and have code samples that you’ve written (specially if the person whom is hiring is also a developer, more than likely will be) which is also important and something that is a must on a job application, besides your resume and cover letter of course.
You meet people!
You’ll connect with new people, specially when they are reporting issues or submitting pull requests. More often than not people that starred your project on GitHub could also follow you on twitter and engage with you about other topics more closely, you may meet these users on conferences and eventually make friends. You’ll certainly connect with other developers that are interested about what you’re doing and invite you to speak at user groups or meetups. That could certainly lead to new opportunities to work on other interesting projects.
Working on open source software for me personally has been a good thing, and I will continue to do so as much as I can. Write code, tests, documentation, submit issues or help others. Support in any way you can other open source tools that you use on a regular basis. You’ll motivate others to keep doing it and yourself at the same time. Happy coding!