DEV Community

Genne23v
Genne23v

Posted on

My Reasons Why I Should Do Open Source Project

My fourth PR has been sent to nocodb which is an awesome open source airtable alternative. The code base is really large and its community is very active. It was really tough for me to understand the code base and how it's architected. But I'm very happy with my PR to add an optional parameter to ROUND function to show decimal numbers in the cell. As the last contributions of the Hacktoberfest, I would like to write about my reasons why I have to do open source contribution.

Open source participation is a chance to learn the tech trends

I have known many languages, frameworks, and tools to support the eco-system. But I tend to use the ones that I'm comfortable most for my project. So I have limited experiences to some frameworks and tools. For example, Angular, Vue, Enzyme, etc. In this month, I had opportunities of using famous frontend frameworks Angular, Vue, and testing tools like Enzyme, Cypress, Mockito, and the popular Docker. There are also many CI tools like Codecov, Husky, and many others. There are probably more cutting-edge technologies if I had chosen languages more modern languages like Go. I read about these frameworks and tools, but there is a big different between knowing and experiencing. Open source is a great chance to use them and understand them.

I'm learning the programming techniques and how codes are structured

nocodb has a very rich feature set as table has many functionalities and the table can be synched with SQL databases such as MySQL, SQLite, SQL Server, and PostgeSQL. It was a great opportunity to have a glimpse of how the system works and how they modularize the code, and how the tests are written. I could also have a chance to look at professional's code how to draw animations through materializeCSS project. I often used !important to quickly fix my styling issue, but that wasn't a good idea. I learned that I could implement the styling without forcibly overriding by pinpointing a DOM object. Understanding stub, mock in frontend testing is also tremendous. Through the code reviews, I learned their concerns and how I could improve my code.

Open source is a great way of being a part of developer community

My first PR took much longer than my expectation since it was my first open source contribution. I was implementing a feature to add typing input capability to graphical timepicker (materializecss timepicker PR). It was pretty rewarding experience since my change is added to the site publicly accessed! After a while, they invited me to their organization. I haven't checked what's going on in the organization yet, but it is a good feeling that I can continue my contribution as a member of materializecss family. And people in other communities are very welcoming and friendly. I should definitely do more after Hacktoberfest and my OSD600 course.

Conclusion

There are many ways to improve our skillsets and knowledges. But I think there are some things that we can only learn in a real world project. Especially the one with large number of users and developers. Finding a way to know the code base, understanding popular frameworks and version issues, writing effective tests, how to construct large system are eventually what we are going to do in a real workplace. Open source is definitely a game changer for me. I'm looking forward to more .

Top comments (0)