In an age where computer science is one of the most sought out course at colleges like MIT, Stanford and IITs, a plethora of kids do not like computer science, and end up opting for it due to the ‘herd’ syndrome . Recent example of IITJEE AIR-1 Chitraang Murdia who relinquished IIT Bombay ‘Computer Science’ to pursue a Physics course at MIT is one of the several evidences.
Here is my perspective as to why do some kids do not like computer science:
Computer Science is perceived to be more of software programming
Being associated with software development for last 20+ years, I have been a part of dozens of software product development efforts in India. By virtue of being an insider, I have keenly observed the growth of global & Indian IT industry. Undoubtedly, most of the work (to the order of 90%) by computer science graduates is pure application software programming and its associated maintenance. And for most of it, you do not need formal academic 4 year/ 6 year qualification in computer science. I would say that there is very little work where you would be working at core of operating systems, algorithms, database internals, or even less in the area of machine learning and artificial intelligence. When kids see everyone around doing the simple tasks, they really do not want to be a part of that career.
Software is abstract
Software is more abstract than let’s say quantum physics, astronomy, architecture, cars and planes, machine design, electronics, art, music and medicine. By nature, humans have been interacting with the physical environment and involved in activities wherein the actions drive physical outcomes directly which conspicuously seems to be more exciting to all of us. For example – watching a football match live is more exciting than listening to the commentary, witnessing the launch of a rocket live will be more exciting than watching the launch of rocket on screen, for most humans. Therefore, designing a rocket or a car, performing a surgery on human brain, creating music or a new solar cell or a new sensor to measure the pulse etc., would definitely be more inspiring and exciting for all of us. In hindsight, designing an application software, not necessarily results into a physical action making it look like an intangible, abstract task. Hence, this may appear less fascinating to some children.
Growth is plateauing
In nineties and 2000s – the revenue of Indian IT industry grew from zero to billions of dollars. People who were a part of this growth also grew rapidly. At a young age of 25 – some were managing a team of 25 people, while some other were handling business worth millions of dollars. All those opportunities have declined enormously now. We are reaching to a demographic state wherein the average age of a software engineer will rise from early twenties to early thirties, and then to early forties.
I remember visiting a R&D lab at Portland in 1999 where I, my tech lead and one engineer went to get an embedded product development work to India. I was a project manager at 29, tech lead was 28 and Engineer was 24.We were interfacing with our counter parts – who were in their 40s and 50s. That was the level of responsibility that came to us in nineties and 2000s. USA back then was saturated and it was quite common to find a reskilled software engineer 50 years old. But for us it was a big surprise. I think we will start seeing 50 year old individual contributor software engineers in India in a few years’ time.
Omnipresence of computers have made them look like a commodity
Assembling, building, maintaining computers and associated software has become easy due to consolidation and standardization in the industry. They almost look like a commodity now. Any work related to commodity especially when it is related to its operations may seem to be less exciting for some kids. I remember the days when we used to have dozens of operating systems (every server vendor had its own OS), databases, middleware, networking products and therefore there was abundance of core work. Today, when everything is already consolidated, mobile and web apps seem to be the order of the day; not sure if that is exciting enough for every child.
No disruptive research or innovative product out of India so far
I can certainly say that when it comes to compute science, we have not been able to produce any product which has come out of Indigenous research. From mobiles, to computers, to network, to embedded systems for industries – we have been by and large supported the back end for global innovations initiated somewhere else.
This demonstrates that we do not have any great computer scientist as a role model in India for the kids, whereas they hear and see thousands of software engineers, managers in their day to day life, but they do not hear the story of any Indian computer scientist.
While there may be many more reasons; the combination of all or some of the above is generating undercurrents of disinterest towards computer science among students. While some of these issues could be related to perception, others are real. Having said that, I strongly feel Indian IT community should take initiatives at grass-root level to foster computer science research and evangelize innovation. It should also create awareness across the gigantic spectrum of Indian schools, so that this country can see possible future innovators in the field of computer science as well.