
This article will not be psychological research on the topic of open-source and development.
There will be no analysis of open-source projects using R or Python.
And I will not tell you about how to contribute.
Maybe I'll even say some trite things.
But I just want to share how participation in open-source projects has made my developer life brighter and more productive.
')
I first learned about the world of open source software somewhere in the year 2009, when I began to seriously work on programming and making money.
But for the first time sent a pull request to the open-source project of the year only in 2012. It was an attempt to add Redis as a provider for the cache in the Joomla Framework. Let's just say, the attempt was not the most successful, but I really wanted to try.
I returned to open-source later - in 2015.
For a long time I tried to come up with and implement with friends and colleagues different ideas, “stir up a startup” and so on. But for some reason everything was choked, I personally lacked motivation.
Then I tried to look at this situation and understand why this is happening.
I realized that the whole thing was that I was not interested in the ideas themselves, start-ups, business, I was interested in
development and programming.And having understood this, I decided that if I’m interested in programming as such, then why not send it to a useful course and not help improve the tools I use. So I began to periodically send pull requests to projects I like (
Yii2 ,
Design Patterns ,
Django )
Why is this interesting?
1. Meet new people
For all the time that I contributed to open source, I met a large number of great people. All of them are incredible professionals, with whom it is pleasant to communicate, share, learn new things. Each of us has the opportunity to talk with the creators of favorite products, get feedback from them. In general, the community is one of the most important components of such projects.
2. Participation in world famous projects
You can work in a small company or live somewhere very far away, but everyone has the opportunity to participate in the development of projects that the whole world uses. Facebook, Google, Ebay and others lay out their development in universal access and we have a great chance to become part of the community of developers of such Internet giants.
3. It's fun
In fact, open source software development is often a very fun activity, accompanied by live communication.
Here are some examples.
https://github.com/jglovier/gifshttps://github.com/kristopolous/BOOTSTRA.386https://github.com/lwe/whatthecommithttps://github.com/theonion/fartscroll.js4. Recognition
This is quite an interesting and warm feeling when your code is poured into a branch of a famous project. You understand that you did a really good job, that in the end you can do something.
If you suddenly lose interest in programming or it seems to you that something is not working out for you, try Open Source - and you will understand how “healing” it can be.
Why is this useful?
1. New unique development experience
The experience that you get when developing open source software, you are unlikely to get anywhere else.
I remember how worried I was when I sent my first pull request. I reread every line of code, checked the code-style, etc.
The realization that
your code will be seen by thousands of other developers , the project creators themselves, makes you
think that you write in your code and this is very important.
In addition, open-source development instills good skills, such as adhering to code standards, writing tests, and more.
In addition, there is always the opportunity to make a code review of someone else's code, if you are tired of directly writing the code. This is also very useful and for someone it is really a new experience.
2. The opportunity to learn something new
Personally, I like to learn new programming languages. After reading a couple of books, I want to learn the language in real conditions.
But since I never think of good ideas (haha :)), I am looking for interesting open source projects in a new language, and trying to contribute in them.
You should not be afraid of a newcomer, no one will reproach for this, if there are any shortcomings, you can always fix them. And if your code is nevertheless, then you really understood this or that part of the language and project and you can be proud of yourself.
3. Excellent tick in the resume
After I started contributing, I get more and more often written by HRs with the words “we like your activity on GitHub, come to us for an interview”.
I think for an employer, the reference in your resume to your pull requests accepted in large projects will tell you that you really write decent code if it has been approved by a large number of people.
In addition, it is much cooler, instead of the dry example code ripped out of the context, to send the employer a link to the accepted pull request.
4. Know your instrument
Participation in the development of products that you constantly use helps you better understand it - how it works inside, how it works, what kind of people eventually stand behind it.
In addition, you will always know what new "features" appear in the project, what are the unsolved problems and much more.
5. Personal development
Open source development helps to develop not only programming skills. Here, in my opinion, is a small list of what personal qualities develop more:
- Ability to communicate
- Attentiveness and accuracy
- English level
- ...
This list can be continued.
In addition, I believe that in every person there is a desire to help another person, and just the same Open Source development gives such an opportunity.
Conclusion
In the end, I would like to say this - the only thing I regret is that I don’t always have enough free time to participate in open-source development. It is great when the company in which you work understands the importance of such participation for developers and the company itself and allocates for this part of the working time (and I have met this).
Nevertheless, even if your company does not do this, try to at least occasionally participate in the development of open source software, this will make you a real professional and give you a great experience.
Thank!