Progress in Open Source
Progress in Open Source
In this blog I will talk about my journey and progress in open source development so far. I've been really enjoying working on real world projects that are used by many people every day. It is not only challenging as every Pull Request required me to perform research in order to understand the issue and solve it, but it is also rewarding because I acquire hands-on experience that is much needed and also contribute to the open source community that I am very fond of now.
Open Source Timeline
I started exploring open source development during September of 2018. I had to learn a lot of useful tools that Git and Github offers, which now come in handy almost every day. I now know how to create meaningful issues that follow the specifications of the project, as well as create and structure my Pull Requests to the standards of the project that I'm working on. Furthermore learning how to properly manipulate version history using Git was extremely useful as well.
The first project that I contributed to was FilerJs, where a recent functionality with utilizing promises was added. I contributed testing code to ensure that promises worked in two of the functions. This was a rather small contribution and easy to learn because I could reuse a lot of the testing code that was already there. However, this was a great start and I was proud of my first merged Pull Request.
Following this contribution, Hacktoberfest started. Hacktoberfest runs for the full month of October and is essentially a celebration of open source. During this month you can earn a t-shirt by contributing at least 5 Pull Requests to any open source project and this is what I did. First I started off by contributing some non-code contributions, followed by an algorithm that I was using at work, and finally my first exploration of the Pandas project.
After making a couple small contributions to the Pandas project, I fell in love with its structure and community. The moderators always do a great job of feedback and putting many tags on issues and pull requests to make it descriptive for the contributors. So, I spent the next couple of months exploring the Pandas code base and contributing fixes to linting errors, as well as sorting import statements.
When the new year started, I wanted to now start fixing real code bugs and decided to stay with Pandas because it was such a good fit for me. For the past few months, I've solved a few real bugs and contributed testing code for each of these bugs. As of right now, I am sitting on 9 merged Pull Requests in Pandas and patiently waiting for the 10th to be merged, which would be another open source milestone for me.
When I first started exploring open source, I couldn't even imagine being where I am right now. Initially I was very intimidated by the big projects on GitHub because whenever I would work on something related to software development, it would always be from scratch. However, jumping into a massive project that already has millions of lines of code takes skill to navigate through and understand what each function and class does.
This is why I started with simple contributions to Pandas in order to explore the code base and learn how to navigate and understand their code. In the beginning, I had almost no idea what any of the functions did and I would get lost navigating through the directories when searching for something. Solving linting errors was a great start for me and was also challenging enough due to my lack of knowledge in open source and the Pandas project specifically.
Now I could identify where the issue originates from easily and also write tests to ensure that the requested functionality works as expected. Solving the actual issue is still challenging because finding a solution to the actual problem requires the most time and research. However, now I am able to solve real code problems in Pandas, which I would not be able to do when I started. I'm proud of my progress so far and will continue expanding my knowledge of open source.