What is open source programming and why are we discussing it?
Open source software refers to software whose source code is made available freely to all the users to modify and distribute according to the requirement of the user. The development of such source codes is called Open Source Software development and the mutual sharing and developing of such source codes further is called open source programming.
Over recent years, open source software development has gained momentum after seemingly losing to competitive programming in early stages. Students are mostly passionate about competitive coding and at many instances are not exposed to open source coding and software development, which certainly has been the core purpose of programming. But now the culture of open source programming seems to be thriving in KGP, thanks to the developers here. GSoc has been a key element around which the development of open-source culture revolved. Kharagpur Open-Source Society (KOSS) too has played a significant role since its inception to nurture and grow this culture. With all these developments it is essential that the students remain acquainted with the increasing opportunities available to them so that they are better equipped to explore their options.
To build this up we talked to Mr. Himanshu Mishra, final year student of MnC and Mr. Pranit Bauva, a fourth year student of Mining Engineering department. Both of them have the experience as a GSoc Intern and have been members at KOSS throughout. Being closely associated with the development of this culture they have seen all the developments in it over the last four to five years. We tried to recognize the common confusions among the students related to coding and get the answers from them.
Open source v/s Competitive Coding
Both open-source programming and competitive coding have their own pros and cons. What to be preferred, does not have a general answer. In the beginning, freshers are not aware of what they want to do after graduation — whether they want a coding job or something else. Everyone has to do competitive coding in the last three months before the interviews for placement. Then doing it in first year itself won’t help much because there will be ample time to do it later in the summer before the placement semester. For those who really enjoy competitive coding, then they should participate in various hackathons, and competitions like ICPC, which if they manage to go in their first or second year will definitely help in their interview. In this matter, GSoc, open-source and projects also help the same.
Competitive coding is like a sport. It won’t help much in real life. On the other hand open source proves to be useful in real life. Open source will give you an edge over others in terms of coding, and you will learn about tools useful in real life projects which you don’t learn about in college. If you really want to venture into the software field, open source will give you a head start. Competitive coding is not enjoyed by all — as it requires too much thinking, may become boring for some, and is even quite time consuming. But doing projects is really appreciable.
In order to cultivate proper software development skills, open source projects are a better option. Open Source is quite varied in its usefulness. It depends on the project one is working on, it maybe the most interesting project or the most boring project. A lot of companies test only competitive coding skills. So it is important majorly for that. But is different for different people. For a core CS person who’ll work on building compilers, he needs a good grasp on algorithms and data structures. This is required as they design databases on which they write codes. You can’t afford the databases to be slow, they need to super-fast. Competitive programmers usually write shorter codes. Thus, it is more important for core CS people. But if you belong to a non-CS background and don’t intend to do hardcore CS stuff, it is less important.
Google Summer of Code (GSoc) –
The Google Summer of Code commonly called the GSoc is an annual programme conducted by Google where it pays selected students a stipend to complete a project in any of the registered mentor organisations. The students are selected by the mentor organisations after reviewing their proposals to solve their projects. After being selected, the students are paired up with mentors and given three months time to complete their projects while meeting deadlines agreed upon by their mentors. The students are then notified pass/fail status of their GSoc project after reviewing by their respective mentors. The college-wise selections in this year’s GSoc can be seen in the following graph.

Over the years, GSoc has grown in prestige and has gained value around the world due to its unique structure and the ability to bring in global exposure for the students along with quality open-source projects with choices. Out of the total 1264 students selected in the year 2017, 605 were from Indian Universities at the top, and 104 from the United States at the second position. The statistics show no surprise owing to the booming software industry in India with so many software engineers. Department-wise distribution of the students at IIT Kharagpur is as follows:

Read everything about GSoc from their official student guide:
https://google.github.io/gsocguides/student
Coding Options and Open Source –
The options include software internships, projects with professors, projects with various organisations such as through GSoc, your own projects.
In GSoc, you get to select your project. Whereas, in an internship for a company, even if you don’t like the project you will have to work on it. The way you enter a company intern depends heavily on your skills on paper: like your department, your CGPA etc. GSoc, on the other hand, gives much more importance to whether you can work for them. If you can prove your worth to them, they will take you. For a person in a non-circuital branch, it is relatively difficult to enter into a big MNC. But also, the people who work in a big MNC are the people who contribute to open source and they will be the mentors in GSoc. So, one may get to work with them as well.
As a software intern in a startup you may get to work on core modules of the company. Whereas in an internship for a big MNC or GSoc Intern, you are mostly made to work on side modules. However, in these MNCs and in open source, the code quality is very high. If your code is bad, you will be asked to improve it. But in start-ups, not much importance is given to the code quality. Thus, in order to learn to write a clean code one should prefer open source programming.
GSoc is a quite prestigious and helpful option and everyone interested in software field should prepare for GSoc. Just preparing for it will help you a lot in future, if you are aiming for companies like Microsoft. In CDC intern, there are a few interns and hence, you create an impact as an intern. But in open source, you get to work with so many people and develop a lot of other things like soft skills. It is a new experience to share your work in public, unlike corporate where you work mostly alone.
Another option with the students are projects under professors. Professors generally have many projects under them and there are many opportunities in hot areas like ML and Deep Learning. But usually, there are time-management issues, since the professors are busy with multiple projects at a time. One may even try for projects outside KGP because there are a lot of better options outside too.
An exclusive option for women and other non-binary coders is the Rails Girls Summer of Code (RGSoC). It is aimed to bring more diversity in the open-source community. It is a new programme having been started in the year 2013. The programme structure is quite similar to GSoc structure and more details can be sought through their website.
Everything comes with its pros and cons. There are multiple options for students. Rather than getting confused, it is advised to explore open source because it is really vast and gives you freedom with respect to the kind of contribution you want to make in a project of your choice. A useful intern is where you can learn something which you can’t learn by reading a book. A person always learns something from each experience. The point is identifying your interest areas, working towards developing them and moving ahead in those areas.
What about beginners?
It is recommended that the first years introspect whether they are really interested in competitive coding or doing it only for the sake of a job. If they really enjoy it, they should keep on doing it. As every organisation has its own list of projects, you will get one to suit your skills. But if you know only C, it is advisable to learn another language as C alone is not enough. If you know Python then it’s good enough. Python is one language which others can understand easily. So, it’s important to choose an easily understandable language, where you can write a clean and shareable code.
It isn’t necessary that you must have a certificate. You can do your own projects as well, where you’ll learn and get rewarded equally. Beginners who want to do internship shouldn’t be disheartened if they don’t make it because the main purpose is to learn.When a few people code together to make something useful, it’s called hacking and that helps to know about a lot of open source tools. To enter open source, you make something, improve your skill set and develop a community. That’s why many people choose Open Source.
A peek into the history of Open Source at KGP –
Open-source has had quite a history at KGP. Himanshu very keenly tells about all the happenings which led the open-source community to here.
“Around 2002 LAN connection was laid down in KGP, from where DC was born. It was shut down in 2004 and started again in 2006 till around 2009. The current version is the third time DC is running and has been quite a long time. DC Community is one of the communities which had some of the original hackers of KGP. DC is kind of an open-sourced community where anyone can share anything voluntarily, and it runs on donations. There was a really old group called the Kharagpur Linux Users Group (KLUG) around 2006 which is no longer active. In the year 2009, the KLUG became active again. The members of KLUG used to meet and talk about interesting but random stuff over chai. One of them was Mr. Harsh Gupta who joined in the year 2012. From starting itself, he was very passionate about Open Source, LINUX, UNIX and free software. He used to meet the seniors of KLUG in his first and second year and became a GSoc intern in his second year. There was another person Mr. Vikrant Varma who was an year senior to Harsh, and he too became a GSoc intern in his first year itself. I came to the college when they were in their third year. I used to hang out with those people of KLUG, participate in their discussions at my level and take notes of what all terms they were using and talking about.
After this when I was in my second year we made a wiki called Metakgp. It was started by Mr.Vikrant Varma, Mr. Soumyadeep Mukherjee and Mr. Vivek Aithal and turned out to be a really big project of KGP. Vikrant was searching for a lot of things about KGP required for the preparation of SOP in elections. From there he got the idea of integrating all the information regarding KGP to a wiki. Following this Harsh and Mr. Vivek Rai made significant contributions in shaping up Metakgp after which many other people too started contributing to it. Along with it many other projects started such as the MFTP for CDC notices regarding placements and internships, question paper search portal MFQP, etc. So a small community in the form of Metakgp started which had the hackers of KGP, but it was not structured and did not have any governance. But this type of community was not able to target freshers. It targeted to self-motivated people who wanted to contribute but not the people who were passionate but did not know much about it. That’s why Kharagpur Open Source Society (KOSS) started. I along with two of my seniors and some other of my friends. We were two to three people who used to promote Mozilla open source organisations. After GSoc a lot of things became formal and at one point in time, KOSS became GSoc oriented. After some time a number of people joined in and started doing really good open-source programming after which KWoC was started and now KOSS is what it is.”
How did Himanshu and Pranit find their interest?
Himanshu came to know about GSoc from his elder brother who had already cleared GSoc. He used to talk to Harsh and learnt a lot from him. Continuing further he explains the importance of working in groups, he says, “In GSoc, it is quite important that you have an organisation backing you. GSoc is about belonging to a community so it’s not possible to do it alone, unlike JEE. In GSoc, you learn how to talk to people, how to talk in groups, how to introduce yourself etc.”
Pranit’s interest in open source started to develop when he was in 8th standard when his brother told him to switch to LINUX instead of using Windows; “I switched to Linux, and my life has changed after that. I started exploring computers a lot more once I switched to LINUX. I used to see how things work internally and a lot of other stuff. Most of my interest developed because I was using LINUX. After installing LINUX I could understand a lot of things. I realised things were so easy and what was happening under the hood. I thought it to be much better and that is how I started gaining more interest in programming.”
Different Experience of GSoc and its impact –
GSoc is different than a project where you do things together by meeting up. If you are communicating with someone and the person is in front of you, it is easier to express thoughts and emotions to the person. But the same becomes very difficult over emails, or online. So you have to be really careful about how you express yourself which you get to learn. Another advantage is that you get to choose a mentor from a pool of mentor, whereas in a company internship, you have to work with the mentor assigned to you whether you like it or not.
In CDC, there are companies whose interview forms especially ask if you have cleared GSoc or been to ICPC. This clearly indicates that in the software development field, people value GSoc. An intern is a loss to a company as investment is quite a lot more than return since they have to teach them a lot. Doing GSoc is an indication that you know about software development. But it’s just like a project. If you have worked with a community on some other such project, that is also equally rewarding. Moreover, you can get a project in GSoc on what you know in development.
It doesn’t affect much if you do not get selected in GSoc. People who fail to get selected become really good by learning a lot during the preparation itself. Compulsory internship does not get affected by GSoc due to its timeline. There are many people who did not clear GSoc but continued with their interns or made something themselves.
Kharagpur Winter of Code (KWoC) and other Initiatives of KOSS –
KWoC is an open source software development programme organised by KOSS in December vacations each month. Its structure is same as GSoc but on a much smaller scale and simpler process. KWoC started in 2016. People who prepare for GSoc utilise December in a very productive manner but they do it alone. People usually develop something new, coding for 8–10 hours each day. They learn themselves and build it up which is something which cannot be learned by any book.
KWoc was built so that people could do this together. There were organisations who were willing to contribute to the idea. Keeping this in mind, the website was built. It had projects where one could apply, be mentored and complete them. It has a contribution chart which shows the rankings of contributors. Many people do it very passionately and it helps them a lot too. This year they collaborated with KTJ and organised on a much larger scale receiving much better response from the students. KOSS also organised an Open Source Summit in Kshitij which had tutorials and Guest talks by mentors of KWoC.
In GSoc, each project has thousands of files and each file has thousands of lines of code. So if there is some printing error you will find it difficult to remove it. But in KWoC the size of the projects is small, so it is easier for you to understand what is happening and how to contribute. It is like GSoc on a smaller scale so that you don’t get scared when you see a lot of code. To edit the bug you have to change one line but finding that one line is difficult. If you are able to find the bug in thousand lines you can do that in ten thousand lines too but the only difference is that you won’t be scared. That’s how KWoC helps a lot and that’s why it is being promoted, because if you want to start it’s less scary. You will have a mentor to help you out. When you apply for gsoc you don’t have a mentor. It is only when you get selected that you have one and he guides you. But in KWoC you are paired with a mentor right from the start so even if you have little tiny errors, they’ll help you out.
Apart from this KOSS also organises Python Learning classes and Dual-boot fest for installing LINUX. They also teach Android, Javascript and other basic coding languages. The main aim of KOSS is to help people out who are passionate about coding but do not know how to proceed and don’t find anyone to help them out. Also KOSS have plans to start internal sessions, where people who have learnt something new will give a talk about it on Friday. Also they have plans to start engineering blogs. On the culture in KOSS, “It is really open.” Any new executive can suggest an initiative and he/she may take the responsibility of organizing and completing it from start to the end.
GSoc Bubble –
The name GSoc is often spoken about, but the term “GSoc bubble” is unheard of. People believe that after doing GSoc, they would have a set and defined life. But it is not the reality. GSoc is a thing, but not THE THING. We should now realise that we have made a bubble around GSoc that we have to burst. GSoc is not the ultimate thing. It is a great achievement, but Open Source programming helps a lot in later life, especially for those interested in programming. That’s why we are preferring Open Source over GSoc now. Not being able to clear GSoc doesn’t imply that coding abilities are not upto the mark.
