My GSoC 2020 Journey

Google Summer of Code

 

I have been a student developer under Python Software Foundation for the last 4 months as a part of Google Summer of Code program and have successfully completed the program on 31st August 2020, the last day for this year’s program! So, for the unacquainted — What is Google Summer of Code (GSoC)?

Well, It is an annual program in which university students all around the globe contribute to open source during their break from school in the summer(starting from April/May and ending in August). The program consists of organizations which register themselves in the program around February with the projects that are going to take part in the program. The interested students start discussing project ideas with the organizations and apply to these projects with their proposals for those project ideas, the accepted students then start to code throughout the summer. The program is incentivized by Google by offering a stipend to the accepted students.

 

So, what’s my background story?

I was finishing my 2nd semester studying Information Technology at Maharaja Agrasen Institute of Technology, Delhi, India when I got to know that there is a program called GSoC where students are given an opportunity to contribute to open source software from my friend who was taking part in GSoC’19. I saw how much he has learnt and grown as a programmer during and after the program. At the time, I only wrote code in C++ and had no prior knowledge of python or any other language. So I started learning python and after a few weeks was introduced to the world of Machine Learning. That’s when I started contributing to open source. I looked for organizations and projects that caught my interest and started contributing. For the most part, I was contributing because I was getting to learn a lot of cool new stuff! In March 2020, I submitted my proposal and on 4th May, was accepted as a student for the summer.

 

4th May 2020 - The day I got accepted!!

4th May 2020 - The day I got accepted!!

 

A summary of my project -

Integrating Image Processing into DFFML

 

DFFML is a machine learning based project which provides APIs for training and testing datasets using various machine learning frameworks such as scikit-learn, etc; making it easier for anyone to input their datasets to train and test upon no matter the knowledge of the user in programming.

The project, Integrating Image Processing into DFFML aimed to add various functionalities to DFFML for properly performing image processing tasks such as image classification that would make it easy for anyone to do when using DFFML and get their desired results in a clean and user-friendly way.

Before this project, there was no definite and fast way of training and testing the machine learning models in DFFML on visual data. Most of the machine learning algorithms are very likely to fit very closely to the training data, especially when there isn’t enough data to train on. Part of the problem is that visual data is very complex, therefore models tend to have higher dimensions of input and therefore a lot of parameters to fit. And hence, there was a need of a less time-consuming and an accurate way of performing image processing tasks via DFFML.

The project is divided into 2 main parts:

  1. Adding ways to read image datasets and perform pre-processing operations on them.
  2. Adding state-of-the-art and accurate machine learning models to perform various image processing tasks such as image classification, object detection, etc.

To read the detailed final report of what I did this summer - Final Report

For a detailed weekly description, check out my weekly blogs - https://blogs.python-gsoc.org/en/sakshamaroras-blog/

 

How can someone get selected in this program?

A lot of the students get confused on how this program works and here I will try to clear some of the main obstacles students face while getting started with open source and GSoC in the simplest way possible.

 

1. How to start contributing in open source?

To get started with contributing to open source projects, learn how to use version control systems like Git/GitHub understand how these systems work. This can be done easily by reading up on one of the many detailed articles on internet, online resources(MOOCs, etc) or watching YouTube videos.

 

2. How to prepare for GSoC? Which organization/project to select?

Preparation: There is no definite/proven way of preparing for the program that will make sure that one will always get accepted. It depends on the skills you possess for that specific organization/project you are applying to.

Organization/Project: To choose a project to contribute to, you can visit the site — https://summerofcode.withgoogle.com/organizations/ , search and filter out by projects/languages you’re interested in. Read their guidelines and look for good first issues to get started and build your confidence! Yes, it’s that simple! (I know it seems intimidating at first, it did to me too, but taking the first step is always the hardest). then you can move to bigger issues and establish yourself as a hard-working individual. Don’t hesitate to ask your doubts to the project admins.

 

3. Do I need to be an exceptional developer/programmer to participate in GSoC?

Not necessarily. Having a basic understanding of the concepts of programming and stuff related to the project you’re interested in contributing to along with having enthusiasm and a craving to learn and explore are some of the things you should have!

At last, I’d say that consistency is the main key! I believe that “putting in the hard work” is the only thing between you and your goals! You’ll have a lot of distractions in your journey but always remember that Consistency always leads to excellence.

 

If anyone else who has participated in GSoC is reading this article feels I’ve missed something important, let me know and I’ll make sure to add it to this article.

 

Thank you for reading!