My Intro to Open Source (week 10 @ Encora Academy)

Uriel Martinez
3 min readDec 1, 2020

Open Source… the third phase of the Encora Academy

The first thing that I needed to do was picking a main and secondary developing stack. This was an easy task because for so long, I have been working with python for building different types of projects.

For my secondary stack, I picked Node.js, which I used in the last Academy phase. I actually got the hang of it and even started to like it.

The following was to find open source projects to actually contribute to. This is was not an easy task.

I searched from the most popular open-source projects to the easiest to start projects.

I dived into a lot of projects of all kinds of topics, some of them like Pandas, Scikit-Learn, Numpy, Celery, Node.js, Leaflet, and so on.

The next step was to take a look at the issues tab, where the magic is. Some projects had a few, but others were highly updated with issues, comments, and contributions every day.

Most issues seemed to be particularly difficult to solve since they go deep into the functionalities of the project. Some others were also too easy, such as modify or add something into the documentation or typo fixes. So I needed to figure out a starting point. Lucky me, there’re labels where you can see how hard is every issue, so I focused on those labeled as “good first issue”.

I picked Pandas as my first project to contribute to because I had used this tool a lot in past projects, so I know what this project is about. Besides, I would like to get a deeper understanding of how pandas work.

This week we also had to do some research about three questions.

The first question was about map-reduce functionality in Apache Hive. How does it generate a map-reduce query for a simple min/max?

First, I dive into what is and how it is implemented map-reduce. Turns out that it’s a functionality to manage large amounts of data in parallel, mapping data into key-value pairs so this way is easier to handle data, and then, in the reduce part, a given operation returns the result that we want.

The two following questions were picked by me, so I decided to use some Pandas functionalities for doing one question, and the last one was about how the Main and Renderer process work in the electron.js library, used to build desktop apps out of web apps.

Conclusion

This week was a shock to me. I thought it couldn’t be harder than the last phase because I had to learn a new technology from zero and start working on a real project. But now, this is a whole new world, the world of contributing to large projects, communicate with the people behind them, and get a deeper knowledge of how the projects work.

This implies a lot of research, a lot of time to set up the project’s environments and get to work on their issues. This is what this week leaves me, to show me a whole new world that I barely knew about it.

--

--