| As an Indian there are reasons you can point out for this. Education:
Engineering syllabi are pretty outdated. And due to a work-just-enough-for-month-end-salary mindset, professors are against being up-to-date. As a result, everywhere but in top notch colleges, quality of teaching is piss poor. The "Rat Race":
There is no better word to describe this. 90% of people who enter computer science / engineering courses don't have any interest in computers. They enter because they scored well in entrance exam (which can be games by studying some books relentlessly for some years), and since Software is still one of the highest paying fields. And quite some of them continue their relentless pursuit for a good "package" by grinding Hackerrank / leetcode. It is literally a rat race. The same mindset will create an impression that being a manager is superior to being a programmer. Because you are "managing" people. These people do all kind of office politics to become manager, and spend rest of their life ruining someone else's life. You can't expect these kind of people to love their job or even do it properly. Hierarchy:
Related to above point, in India, you don't oppose or even question an upper officer or elder's decision, because ELDERS ARE ALWAYS RIGHT HERE IN INDIA. That's why so many people want to be manager. Lack of interest in improving education:
In many Indian engineering colleges, one year is wasted teaching theoretical subjects like chemistry and physics. No computer science related subject except basic C Programming (Lol not even malloc() and free()) are taught. This appears to be purely done in order to provide jobs for people who had studied these subjects. While teaching these subjects may have marginal benefits, they are outweighed by pure rote learning oriented assesment sysem and wasting one year of CSE programme. That's a bad trade-off for someone interested in CS. All entrance exams are based on Math/Physics/Chemistry and we have learnt enough of that. STOP the old age tradition. If the chemistry they teach in last two years of high school (called pre university here), which is quite high level, qualifies for entrance exams, Computer Science should too. No I am not telling this because it is a programmers forum. But CS taught in pre-uni (optional subject) is more essential and often more helpful than chemistry and half of physics taught to these grades. But chemistry is compulsory for some legacy reasons. There is no interest to change that. |
India has a lot of Engineering students.
There are around 60k students joining Tier 1 colleges every year in India (IITs, NITs, etc funded by the Central Government alongside some private colleges like BITS). Very few students from Tier 1 colleges join these consultancy companies. Most of them studying CS from these colleges join product companies like Flipkart, Swiggy, Paytm, Amazon, Microsoft, Uber etc.
Consultancy companies get students mostly from 2nd and 3rd tier (mostly private) colleges. Pretty much all these colleges are in a very bad shape. I think there are over half a million students enrolled in these colleges every year. Students still go to these engineering colleges since the education is not as expensive as in the USA and it's what pretty much everyone do after high school. If it was USA they would have just left college altogether instead of wasting money on a terrible college.
Sure, the quality of education of Tier 1 colleges can be improved a lot as well. But generalizing the entire Indian engineering education as the reason why these consultancy companies are doing poor is not correct either.