Eat, Sleep, Code and Repeat! : Coding Culture at NIT Rourkela
Print (“Hello, World!”) … and hit the big green ‘RUN’ button at the top of the page. You’ll see the computer execute your code and say Hello, World! It’ll even be in the white-on-black monospaced text so you’ll feel like a proper hacker or a developer. Congratulations! You’ve just partaken in one of the oldest traditions in software. Nearly every time a neophyte starts to code or even when a seasoned programmer decides to learn a new language, the first thing they do is get the computer to say “Hello, World.” Every craft has its lore, and “Hello, World” is a key part of the cultural canon in software. From printing a couple of lines of code as a novice to debugging stuff to spending sleepless nights in Hackathons, a coder depicts an unfathomable quintessence of a tireless geek.
Programming and Software Development has emerged as the ‘cream of the crop’ amongst the rapturous professions of the globe. This stream has unequivocally engulfed a large student mass of the entire nation with its varied nitty-gritty like Competitive coding, Machine Learning, etc. In an era of an insecure job market, when redundant professions are projected to be eliminated while new ones arise, learning to code gives hope to our collective imagination. It creates the promise of alternative sources of income as well as opportunities for self-employment given the demand for coding skills in a variety of industries.
Collegiate coding or coding culture in high schools and colleges across the nation has grown into a vibrant and dynamic aspect of a student’s academics. Not just the people involved in different domains of Computer Science, the people pursuing their majors in different core sectors like Mechanical, Electrical, Civil and in various other Basic Sciences, have adopted programming as an integral part of their career. Many indulge in it with the sole purpose of acquiring lucrative job offers while many pursue it out of interest and passion. NIT Rourkela, an institute of national repute encompasses numerous bright technical minds who have reserved a certain space, henceforth a certain time out of the daily routine of their academics devoted to programming and software development. Be it competitive programming, Web/App development, Machine Learning, Artificial Intelligence or Hackathons, NITRians have carved out a niche in themselves, excelling in different fields and leaving an indelible imprint of glory in NITR’s history.
With the inception of this culture and its ingression into the social mainstream, dating a couple of decades back, this culture has been successful in rapidly embracing thousands of programming enthusiasts and making the chain continue to eternity. Now, the thing that is truly essential to ponder upon lies on the fact that whether the pace at which coding culture in the institute is emerging could be able to meet the desired level in the future or will it remain stagnant and reposing. Team Monday Morning surveyed the institute’s junta and retrieved their opinions about the coding culture at the institute and how it has impacted their NITR life. Their opinions were critically analyzed, which have been lucidly put forth below in the form of pie charts and infographics.
A GENERAL ANALYSIS
Computer Science has a large variety to offer where coding is essential and these all fields require a strong grasp of the concept and regular practice to master.
The responses obtained from the survey had students from approximately all the branches who were interested in coding or were trying their hands in the field of coding. According to the survey, 49.7% of the students who took the survey did not have coding as a part of their core-academia.
Is Coding a part of your core-academia?
Moreover, the fields of coding in which students were working had a good variety. While a majority of students were working on Competitive coding (63.6%), others were seen displaying an interest in fields such as web/app development (42.7%), machine learning (46.2%), Artificial intelligence (18.2%), robotics (1.4%), game development, etc. A few students were still figuring out what they were interested in and were still a beginner in this field.
How did they start coding?
Many beginners don’t know how they should approach coding and where to start. We asked students about their starting point in coding and these were the responses:
- Majority of students (42.7%) of students used to code in their school time and knew the basics of coding before joining college.
- 28.7% of students started coding after attending the C programming lab in freshman year.
- 21% of students started to code out of interest after joining college.
- Around 5.6% of students started coding as it was their course requirement.
The rest of the students started coding just because their project work required them to have a particular skill that involved coding.
Students have been taking up coding more than ever as a result of a variety of opportunities promised in the field of Computer Science. On asking students what was their motivation to start coding, we had the following responses.
- 55.2% of students took up coding as it was their hobby.
- 37.8% of students coded as it was a part of their academics.
- 51% of students were interested to build their careers in the field of Computer Science.
The rest of the students coded to fulfill their academic requirements and to get the skill needed for their project works. Students start coding out of interest but tend to leave it in the middle and start losing interest which is a result of irregular coding practice. Regular coding is a must if one wishes to have control over the coding section. Only 43.4% of students were seen to code daily. While 22.4% of students used to practice coding weekly, 32.2% of students admitted to not having a regular routine to practice coding. The pie chart below gives a perfect picture.
How regularly do you code?
MEDIUMS OF CODING
With the evolution of coding and software development, there are many ways a person can code and learn how to code. There was a time when only basic compilers were available. But, now even if you don’t have a compiler on your computer, you can compile your code online in a range of websites and even get a measure of the fitness of your code in terms of run time and correctness. Some of the examples are HackerRank, HackerEarth, Leetcode, Codechef, GeeksForGeeks, etc. Talking about the trends of such platforms in NITR, coders in NITR use both online, and offline platforms but the online platforms are used more because of the availability of updated information and the presence of content which is in trend.
As the name suggests, open-source coding is a medium through which one can access, contribute and learn from other coders who have made their project available online on platforms like GitHub, Google Cloud, Amazon Web Services and more. Although many more are there, the most popular platform is GitHub as it is the easiest to use, collaborate and most importantly, free. Popular Softwares/projects like Linux, Android, Mozilla Firefox, Python, etc. have made their codes available in open source platforms and invite developers to contribute to their projects. Open Source projects give an exposure to the coders of what legacy code is and what type of coding is done in big companies, and that is why it is such a powerful tool for the developers. Let us see what the trend of open source coding in NITR is:
Google Summer Of Code (GSoC)
One of the most prestigious Open Source programs is Google Summer Of Code which is a Student Developer program. This is a work from home program in which a developer can work with an open-source company and contributes to the software of that company based on the issues and reviews of the product. Google Summer Of Code is a platform through which developers submit their proposals to the company they want to work with. It is also one of the most sought after opportunities for a budding coder, and most of the developers are from colleges across the world. But the acceptance rate in GSoC is very low at NITR.
Many factors play a role in a student getting selected for GSoC. In fact, the awareness for GSoC and similar events have gained a sharp rise in the past two years due to inception of Open-source communities under SAC and more students are applying to them each year. As I said before, numerous factors play a role in getting GSoC and the number of people getting selected for GSoC can't be considered as a metric for the exposure of student community to such events. But definitely, the number of GSoC applicants from NITR is an appropriate metric to know the exposure of students to such events and it is increasing every year. – Shaswat Lenka, 4th year BM Department
Hackathons are an excellent platform for the developers to put their ideas and coding skills to a race against time and compete to bring out the best in themselves. Unlike the name suggests, Hackathons are not hacking competitions but developing competitions where an idea or a problem statement is given, and the developers have to build a website or mobile app or any other model based on that idea in a given period of time. There are many hackathons which offer internships and other rewards to the winner and runner ups. Talking about participation in Hackathons, NITR still lags in participating in Hackathons and adapting to this trend.
Addressing the important and unparalleled efforts made by Shaswat Lenka in introducing hackathons at NITR, this is what he had to say:
I had envisioned an open-source culture in NITR through the inception of OpenCode club in which we get more open source contributors from the institute and in the process of doing so I accidentally and additionally established a Hackathon culture as a by-product. OpenCode in association with Developers Student Club NITR by Google has successfully organized offline and online Hackathons in the institute with a solid number of participants since the time of their inception. We were also able to conduct webinars and workshops by most prominent personalities in the software industry like Rajat Monga and many more. NITR can extend support to the clubs and communities which are willing to organize such events with the budget, space, and basic amenities. With the collective efforts of SAC and the coding societies, we can expect to bring the best opportunities dor the student mass.
International Collegiate Programming Contest
The International Collegiate Programming Contest, known as the ICPC, is an annual multi-tiered competitive programming competition among the universities of the world. It is one of the most prestigious competitive coding competitions in the coding community. Again, the selection rates in ICPC is meager from NITR.
Taking to Paili Sagar, a student of NITR who qualified for regional level of ICPC, he shares his views on Coding Culture in NITR and the reasons for low acceptance in ICPC from NITR:
Students should start or at least know about coding right from the 1st year.
But students have no idea what to do with a lot of free time they get in the 1st year.
In the C lab, they don't pay much attention and copy stuff from others.
2nd-year students are also not very different. Talking about circuital branches, most of the students don't know coding until the end of the 2nd year.
But at the end, everyone wants to get an internship in a good company. So they start coding during their summer vacations which they think will be enough for them to get into a good company. They start mugging up things written in different sites. But things don't happen that way.
And then most of the students finally end up not getting an internship at the end of 3rd year. The profs will never tell the students to do coding. They are more theory-oriented.
He also shares how the Coding Culture can be improved in NITR:
There should coding classes or at least awareness class for the 1st year students.
For the 2nd year students, there should be a lab where they will be given good coding questions to practice or practice questions from a previous contest.
Students should form coding groups among their friends. This can be used by them for doubt clearing, sharing good questions, learning new stuff and many more. All the members will benefit from it. They should actively take part in different online contests, hackathons etc. This will boost their confidence.
Students should also consult their seniors frequently about what to do, what to practice, from where to start coding, etc. Seniors are the best resources we have. We should make use of their experience. They will give us the best tips.
CODING CLUBS AT NITR? ARE THEY WORTH IT?
NIT Rourkela, being an institute of national importance, has always supported its students to hone up their technical skills by going beyond the classroom teaching, to grow up as productive and efficient engineers. The institute offers multiple options to gain practical experience of the acquired knowledge through its vibrant club network. It has an array of clubs under the Technical Society, which proactively engages students in several activities like coding, robotics, automobile engineering, etc.
Coding clubs are some of the most sought after clubs in any technical institute. Every coding enthusiast in an institute aspires to strengthen his foundation and upgrade his coding skills by joining the coding clubs of the institute with the hope of emerging with improved skill sets at the end of the graduation. Team MM thought of doing a descriptive and deep analysis of the present scenario, by gauging several factors and by comparing it with the state of affairs of other institutes. The percentage of people engaged in coding clubs out of the total people surveyed were noted and were asked to share their experiences in being a part of the same.
Of the total people surveyed, 64.3% of the people don’t belong to any of the coding clubs while the rest 35.7% of the people are part of at least a single coding club of the institute. It could be inferred from the graph that a majority from the people opted for the survey have indulged themselves mostly into other technical clubs apart from coding and into several other literary and cultural clubs. The reason behind such a low percentage of people’s indulgence could be targeted to the inefficiency and inactivity of the clubs and also their inability to provide the people with what is required for improving their coding skillset (resources, regular sessions, proper interaction, etc). Another reason could be that the clubs induct the people with induction tests that denote that most of the people with prior coding knowledge get inducted whereas the rest are left behind. The respondents of the survey expressed their mixed opinions addressing the issues pertaining to existing clubs as:
The existing coding clubs at NITR do not provide the members with sufficient resources to learn and excel in various fields of technology. Most of them are about conducting an event or two in the year and that's it. Students are not provided with an environment to explore various technologies and get started with them.
Smarak Das (CR)
Coding clubs are useful for ones who already have a background. So who are completely new to this field, I don't think they get the chance (maybe due to the induction process of clubs). If you actually want to teach people, then why are you taking their coding test before they join? Isn't that what they are supposed to learn in the club?
Sweety Shukla (CSE)
I think coding clubs are not meant to teach you coding, for no one but oneself can teach him/her how to think and solve problems. The main purpose of these clubs is to provide a good environment for its members to learn about the strategies to approach anything and prepare for contests or interviews by seniors who've been there and done that before, and to work as a team or community which is really essential.
Pratik Priyadarshan (CSE)
They are doing all that they can as a club to encourage coding. They conduct classes on topics which are decided in the club meetings by all members. They encourage everyone to contact seniors and the more experienced members to clear doubts and get suggestions.
Koushik Sahu (CSE)
Below is the pie chart depicting the percentage of people satisfied with the opportunities provided by the clubs to learn and improve coding skills.
Here is what the post-holders have got to share regarding the current scenario of coding culture at NIT Rourkela.
Nishith Gunjan Behera, President of Code Red had got this to say;
Before the academic session 2019-20, there were 4 coding clubs - Microsoft Campus Club, SPAWN, CodeHub and OpenCode(+DSC). These can be classified into two categories. OpenCode and DSC focus primarily on software development. Remaining three tend to focus on general-purpose coding. When I say general-purpose coding, I mean that they don't focus on any particular field like web/app development or ML, etc. I refer it as using general-purpose programming languages like C++/Java/Python to solve problems. However, being someone who is passionate to a fault about coding, I found some aspects that could have been made better. That is why I and some of my friends started the club Code Red in this academic year. Let's take a look at some of the points.
1. Irregular meetups: The more you explore, the more there is to learn. Let's assume that a student joins a coding club in the first year itself and suppose the coding club holds one meetup a month. Our semesters are four months. So, in a complete year, there are a total of 8 sessions. Frankly speaking, that's not enough even to engulf the tip of the iceberg.
2. Inactivity: What is a club? A group of people sharing a similar kind of passion. Instead, what I find is that a lot of students rush into the clubs and later they decide that they are not passionate about it. IT'S COMPLETELY FINE. However, what you can do is to simply inform the post-holders and leave. In a club of 30-40 students, only 5-10 would be attending the sessions. That's a horrible scenario. Sizes of the clubs don't matter, passionate members do.
3. What about those who want to learn? It's very clear that not all have some experience with coding before joining college. JEE in itself feels a heavy burden. Then what are the criteria of actually including some in our clubs and denying the others? Those who want to learn might feel hesitant and may not show up. Rather, why not provide basic lessons to indulge the students in it first?
Why did we start Code Red? Our primary goal is to improve the coding culture of NITR. When other NITs can come in the list of top 50 institutes with the best coders, why can't we? We conduct monthly online contests and have conducted a workshop series to initiate the first years. We are pretty strict regarding the problem of inactivity. What's more is that we are open to anyone and everyone. Whoever wishes to learn something is always welcome and we are always ready to help. Furthermore, we have some innovative plans for next year to encourage students to indulge in it.
Milind Choudhary, President of Spawn expressed his opinions as;
Coding clubs generally don't have much physical involvement. Most of our activities are online which a majority of people seem to miss or ignore. But promoting this online culture amongst us all will definitely help to keep the coding culture at par with top tier institutions. We have been taking classes which include basic coding, data structures and algorithms for the juniors. A few batchmates of mine and some seniors are also trying to collaborate on some projects. We have planned to make these classes open to all students and will encompass new topics like ML, Web and Android development. With guidance from our faculty advisor Prof P.K.Sa we have planned for an awareness drive amongst the schools of Rourkela regarding Cyber Security. Moreover, the hardware museum is also in its final stages.
Swati Kumari, Coordinator of Microsoft Campus Club added considering the present scenario;
The problem is whenever we initiate or we want to conduct an event of importance, the participation scenario is zero from our own student community. For example, we wanted to conduct a space app challenge in association with Space App India through which the winners could participate in the NASA Space Apps Challenge and can get internships and certificates (participation) even for those who don't win. But we had to arrange around 60+ teams, so we circulated a Google form so that we can get an idea about the number of participants we can get. Since the number of responses we got was only three, so we dropped the idea. I understood that the problem was with money as the challenge demanded 1440 INR for registration per team. Even though there was an issue with money, we thought that since we have amazing coders we would get a successful event but lack of participation from our end made it to zero. Also, I, being a club member have seen very less participation from the fellow members when it comes to intra-club workshops even though they know that the workshops are being conducted by seniors who are placed in the best of coding companies or have excellent records on HackerRank.
President of Code Hub, Ritesh Dash had the following to say;
We as senior members of Codehub have knowledge in various domains which include CP, IoT, ML, Web Development, etc. And we have tried our level best to share the basic knowledge on these domains to the freshman people so that they have the chance to explore more on these fields and go ahead. We will keep conducting workshops on various CS topics as we have been doing. In addition to this, we have decided to assign projects to our members, which would be helpful in more than one way. The students would get an idea through the project work and the students can showcase their project on their CV which would be quite good.
Shaswat Lenka, one of the prominent personalities of NITR who significantly contributed to improving the coding scenario at NIT Rourkela said:
The main reason for which we lag behind others college is that, in other colleges, more importance is given on practical programming use-cases. Our college focuses more on theory and the labs in which introduction to programming are taught to freshers are ineffective on many levels. I believe when we can have mindset shift from marks based learning to project-based learning(may it be a simple programming task or a code snippet), we can see real change.
A GLIMPSE OF THE CODING CULTURE AT OTHER PROMINENT INSTITUTES
IIIT Hyderabad boasts of having one of the best coding cultures in India and it is obvious from the results they produce in an online coding competition. Students at IIITH are groomed to excel in coding from their first year itself by conducting proper labs, much-needed assignments, and guidance of mentors, who themselves have either bagged Google Summer of Code (GSoC) or are champions of the International Collegiate Programming Contest (ICPC). They start practicing on coding platforms such as Codeforces, HackerRank, CodeChef and Sphere Online Judge (SPOJ) in 4-6 weeks after admission.
The students are trained by the ex-participants who have secured a meritorious position at such national and international level competitions. IIITH gets the most number of students selected for the GSoC and trains the students well enough to qualify for the international round of ICPC.
In Kharagpur, there is a group by the name of Kharagpur Open Source Society (KOSS) which caters to nurturing the open-source culture on campus. They have also organized the Kharagpur Winter of Code for helping students gain an insight and a first-hand experience into how the Open Source community functions.
KOSS was also responsible for helping 30 students get selected into the prestigious Google Summer of Code Programme for the year 2017.
The Kharagpur Data Analytics Group (KDAG) is a society that deals with this field. Apart from that Data Analytics event in both the Inter Hall Technology General Championships, provides a lot of scope for juniors to learn the fundamentals of Data Analysis and Machine Learning from their seniors inside a competitive framework!
Moreover, working in a fest gives a much more competitive environment and exposure to the students to hone their skills in web and app development as well as in graphic designing. The teams responsible to conduct these events also release courses for the fresher’s which can be effectively utilized under guidance from the seniors and mentors.
Amrita University (Amritapuri)
FOSS (Free or Open Source Software) at Amrita is one of the most active student clubs on the campus and helps in training students for the GSoC and other various competitions. It helps in making a competitive environment for students to push their limits and bring out the best in the students.
Team bi0s: Another extremely active club on campus. This club takes part in cybersecurity competitions and is the top-ranked team in India. The club was also the first to start a Capture the Flag (CTF) competition and summer training camp for school students in India in 2015 and the first Indian team invited to participate in an onsite CTF competition in Russia (PHDays CTF).
IIT Madras also has a variety of activities going on in the field of coding to provide the student platforms to explore their interests. They have their web-ops and mob-ops clubs to build and design websites and mobile apps. They have already designed the IITM student app.
The students also take part in tech and cultural fest Saarang and Shaastra where they can work to be a back-end programmer, front end programmer or UI designer. They also give special avenues like game design, game creation and also consist of teams to participate in competitive coding and various other competitions.
As compared to other Premier institutes, NIT Rourkela has certainly lacked participation in such events even after having ample knowledge and skill set. What is expected from NIT Rourkela is to guide students to ace such competitions while honing their skills in that field?
Student lead of DSC NIT Rourkela, Abel Mathew had the following to say:
DSC NIT Rourkela has taken numerous sessions ranging from app-dev to ML to empower students into the world of tech. Not just workshops, we also did self-paced learn from home sessions. One of the most cherished events is the HackNITR Hackathon which is the only NITR event that was not taken down due to Corona. We were able to make the event completely online. We will continue to have online sessions and further sessions to empower students
We as a club are here to guide and nurture those who have an interest in the field of coding. We are not a club that will bring coding enthusiasm in someone who is least interested. We are always open to those who need guidance. One of the primary aspects that you learn as part of these clubs is working together in a team on a project.
The coding clubs need to bring in similar events more frequently to make the students familiar with the coding culture and to give them the experience. Recently HackNITR, a two-day-long online hackathon was organized by OpenCode and Developers Student Clubs, NIT Rourkela which aimed at bringing together ideas for the long run. Microsoft Campus Club also organized Codenigma 7.0 in association with HackerRank to facilitate enthusiastic programmers to make their quarantine productive amid COVID-19 pandemic.
CODING VS ACADEMICS
To code is like a daily cup of morning tea for the people pursuing Computer Science as part of their career. But for the rest of the people, coding comes out of interest or passion or with a motive achieving something in the future. The academic curriculum of NIT Rourkela has undoubtedly served its students everything essential in molding bright engineers of the nation. It has been often found that people pursuing core sectors of engineering ultimately end up landing in a non-core profession. Of course, thanks to coding for consuming a considerable amount of time out of the daily academic schedule of the students.
As per the survey, the results mentioned below in the pie chart denotes the percentage of the people satisfied with the flexibility of the curriculum in giving an opportunity to the students to code.
A majority of students seem dissatisfied with the flexibility of the curriculum in providing sufficient time to explore and practice coding. The major cause of this points to the prevailing 85% attendance rule in the institute while the other causes include outdated course structures, ineffectiveness in providing industry-oriented topics to make a core-sector student suitable for a non-core profession, ineffective optional courses and basic programming classes, unavailability of 24x7 internet connectivity, etc.
Addressing the issues, the students of NITR share their mixed opinions about the current scenario as;
A lot of faculty here ask for the results instead of asking the process. And the effort is under-appreciated here. And one more thing, students should change the view when given an assignment, rather than copying it to get full marks, they should explore things of their own, learn from it and should try to improve each time.
Ritesh Dash (CSE)
Extreme attendance rules and outdated course structure really don't make the students able to connect with what they learn. If there is time given for personal development along with industry-standard education, we would be much better off.
Eshan Mukeshbhai Patel (CSE)
I have noticed that students blame the institute for not having a better coding environment but I believe that a person who has an interest would pursue coding irrespective of the environment. Though I believe that the attendance policy of our institute is not helping to encourage the coding culture. Sometimes we have class during a coding competition. After attending class till 5:15 pm it is hard to sit down for a coding competition which requires us to be fresh mentally.
Koushik Sahu (CSE)
There's no role of the institute in this, as many of the top-rated coders on various competitive coding platforms are from tier 3 colleges, As far as academic time table is concerned, there are no issues with that because those who have the real passion for coding will find a way to get the time for that.
Pratik Priyadarshan (CSE)
Introduce Data Structures and Algorithms in the first two semesters, no matter how many students fail, so that we would have some good CS topics before the summer of 2nd year.
Ritik Parida (CSE)
Strict attendance policies, ineffective optional courses with much less emphasis on courses related to software development and machine learning, clubs aren't accountable to anyone which at times is quite detrimental for their own development, they should be made accountable.
Debabrata Panigrahi (BM)
Now the question arises “Are we industry ready?”. The below-attached pie chart depicts the answer to this.
Anshuman Samal, the current Placement Secretary of CSE Department adds;
The coding performance of the students is pretty good. Most of the students in the final year have been able to bag a job in a top company offering a very good package. Also, In the pre-final year, the students have bagged internships in many high paying renowned software companies. Most of the recruiters have been satisfied with the coding skills of the students but the general feedback that I get from them is that students are weak in OOP concepts or basics of a language. Even though they are able to solve tough coding problems they aren't able to get the basics and OOPs right. To bag a job in the software profile, you need to be strong in coding. And I feel the topics taught in class are limited and students need to do a lot of practice and study on their own. The main subjects that are taught and are very important are Data Structures and Algorithms and Analysis. More work needs to be done in the practical classes, as one will learn the most in the practical classes. Right now, the well known basic questions of data structures, dynamic programming are only done in the lab, which doesn't help the students in tackling the questions that are asked in the interview. Students need to practice a lot on their own. They cannot be over-reliant on academics of the college. They can master data structures and coding on their own also. It all depends on how much you practice. Also, it is recommended to have a good understanding of OOPs concepts and the basics of any language you are comfortable in.
A CODING MINDSET
Programming had a beautiful past since its inception and presently it has got an exceptionally bright future. The scopes and opportunities in this field will never cease to cater to the interest of a diversified section of coders. In the context of NIT Rourkela, where the coding culture is presently growing slowly and steadily, it is high time that the community should work to bridge the lacunae hindering the overall development. In other words, a coding mindset should be strongly and explicitly incorporated among the people to work for a vibrant coding environment. This mindset not only represents a gradual development of computer programming knowledge and strategies but also includes analyzing systems, solving problems, persisting in front of errors, being resourceful and collaborating. To teach the coding mindset, educators need to include more explicit foundational computer science concepts and competencies, such as creating algorithms to solve problems, debugging existing programs, and designing systems to accomplish new tasks or gather data.
Learning to code should not be intimidating. But it should fulfill promises, not simply hype mythic dreams.