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.
Your generalization of Indian colleges is not right.
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.
Yeah. Tier 1 colleges. Tell me more about NITs and IITs.
I study at a so colled top college. Where highest placement is always around 50-60 LPa. That doesn't mean teaching and other things are good (sure better than average, but that's not what I call 'good'). The highest placements are more because of students and a FEW professors who actually happen to be passionate.
But in the entire class, there are less than 15% of people who actually have interest in CS or Programming. Many came through good scores in entrance exams (myself included) and many through management quota (i.e Paying the institution heavy sums). While the first group has some people who like programming and CS, it also has more number of people who just happened to get good scores because of relentless studying and practice, then took CSE branch because placements.
I don't think NITs and IITs look much better these days. I attempted JEE but that was really hard to get an NIT without studying hard for 2-4 years. People who have money take coaching classes and study for JEE exclusively, but a rural student like me can't do that. The system is gamed like hell. With the abundance of such coaching kids, I don't think IITs and NITs can keep their previous charm.
Here is a paper on the Joint Entrance exam (JEE) tragedy:
I dont't really understand what point you are trying to make. Nobody is saying all the students in top tier colleges studying CS are super passsionate into CS. Some are. A lot of them are not.
My point is that tier 1 colleges produce a lot of good programmers. The reason why they are good at programming can be because of high salary expectations, peerpressure, parents, status, passion, etc. I honestly couldn't care less as long as they do their job. The reason why companies like TCS/Infosys are bad is not because tier 1 colleges produce programmers that are not passionate about CS. It's because India has way too many Engineering colleges that is of abysmal quality. And those colleges accept students who otherwise would not have gotten into any decent engineering colleges
> Many came through good scores in entrance exams (myself included) and many through management quota (i.e Paying the institution heavy sum
I don't think there are any tier A colleges that takes money for accepting students. Highest package is not really what is used for defining tier A. What I meant by tier A are centrally funded colleges like IITs, NITs and really good private colleges like BITS and IIIT-H(not SRM, MIT etc). None of them take students by accepting money. If the college takes students by accepting money then it is definitely not tier A.
> The system is gamed like hell. With the abundance of such coaching kids, I don't think IITs and NITs can keep their previous charm.
Sure. The system is gamed. But it's still a fair system. The rules are same for everyone. You are measured by the number of correct answers you circle in the paper. Nobody cares about who your parents are. Nobody cares about what you wrote in your essay. Its a hard competetion. But it's a fair competetion. There is reservation at play for students from backward castes as well but lt's not get into that. Some would say it's good. Some would say it's bad.
> I dont't really understand what point you are trying to make.
That the quality of NIT and IITs are decreasing. I have seen a lot of previous generation people who studied in IITs and have stellar achievements. But I don't think the same will be true for current crop of IIT and NIT students. To be clear, I won't be judging those people who are of my own generation, but this is a disappointment about how artificial the entry to these institutions has become. How many of them will be mechanically grinding leetcode as compared to their previous generation?
Increasingly so in recent years - the year I wrote JEE mains, the paper was much more susceptible to 'tricks' and 'shortcut formulae' taught by coaching institutions, than the previous years.
At this point, I have heard IIT professors expressing discontent about the coaching center crap. I don't know how you think it is still a fair game.
> I don't think there are any tier A colleges that takes money for accepting students. Probably explains why your batch had a lot of CS students who were not any good.
Fine, what defines tier A? I also mentioned lot of them with high state-level entrance exam scores are not "Good Enough", too.
In what I have seen, those people who do well in exams solely due to peer pressure and high expectations, don't very well understand the concepts. I have seen so many such book-worm topper kids not properly understanding recursion or algorithm complexity.
60k from tier one engineering colleges. It includes all branches. Not only CS students. Similar number to the number of students enrolled as undergrads in entire engineering colleges in USA.
The number of engineering students enrolled in India as undergrad is around 350k (It's not over half million. My bad).
So students from tier 1 colleges makes about 17%. That's not a small fraction that can be ignored.
Statista says that CS in India is 880k + 660k of Electronics Engineering (CS adjascent field). That's 1.54mil students in the field that we are talking about.
60k of tier one - are fairly smart and probably half of them are brilliant and passionate(being very generous here). They are the outliers that prove a point.
That said - 4 year degree shouldn't be a requirement in software engineering. It's a very poor quality marker
These consulting companies are often referred to as "mass recruiters" in most engineering colleges. I went to one such school too, and the the qualifying test/interview was a couple of CS101 questions, and was the default option of employment for anyone who wasn't joining any other organization (this also included good mechanical, chemical and civil engineers with little to no CS background, but the market had slowed down at the time, and they had to resort to IT jobs).
This might not be the case for every firm or client, but I hear a lot of my friends complaining about there not being very little work, and if you're someone competent enough, you can complete a day's work in an hour and play Fortnite for the rest of the day.
> 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.
I've seen this a lot, especially in ODC parts of Capgemini, TCS, Cognizant etc - it felt like only a very small number of people actually wanted to be developers or even architects; everyone else just wanted to be "a manager".
I'd asked about this strangenes, and Indian friends told me that managers were seen as superior, and even their families would push them to become managers.
You see this everywhere in the world. I've worked with a huge number of Americans who went to school for anything but computing, would rather be doing anything but computing, but realized that a six-week crash course in web development would literally quadruple their salary. Many of them go on to embrace computing, many of them turn out to be good developers, and some even become passionate, but they all start out by abandoning their dreams and chasing the quick buck.
Tech and finance eat all the smart people. There are unlimited tech jobs, but only so many jobs for physicists, chemists, professional musicians, teachers, lawyers, etc. And the vast majority of them pay a lot less than tech and finance.
Difference is, a lot of these people wouldn't get jobs as junior devs in the west, and if they did, there just wouldn't be so many "natural" opportunities to move into management. Whereas in India, the big outsourcing firms need such a large quantity of people every year, that thousands upon thousands are hired and placed in junior dev or test roles. And because these orgs are so large, there are many layers of middle management, and plenty of opportunities.
I don't think this is true at all. The tech bubble in the West is huge and claiming junior devs in the West are anywhere less afflicted by the rat race syndrome than India is outrageously false.
The tech bubble in the west is bug, sure - but that's not the same as organisations with 100s of thousands of employees selling bodies as cheap as possible.
Furthermore, it's naive to think India is the same as western countries - it's a huge country with it's own unique culture (cultures, really), history and languages. For many Indians, software development isn't seen as professional career path; a dev job is little more that a vehicle to becoming a manager. And being a manager, in charge of people, elevates your social standing, to a position of kudos and respect - that doesn't happen in the west.
> everyone else just wanted to be "a manager"...I'd asked about this strangenes
It isn't strange in the slightest. If you look outside tech, you'll find this in every industry in every country. Everywhere in the world the person in charge is more respected and better-paid than the person doing the work. And it's always been this way. Tech, and software-heavy tech in particular, is the outlier.
> ELDERS ARE ALWAYS RIGHT HERE IN INDIA. That's why so many people want to be manager.
I think it's because managers get paid more money and have more respect. People wanting to be manager (or chief, captain, general, shaman, headman, minister, consul, cardinal, king, nobleman, judge) isn't a unique feature of any single culture or organization. It's a universal drive across every culture throughout history.
Regarding the lack of secondary level CS education, it is a problem everywhere. You have to be passionate about teaching CS because practicing it is so lucrative. There's a global shortage of CS teachers especially at the secondary level.
Indian here. This piece may sound biased, but it is true.
The lockdown was a good step. But poorly enforced. /people think it is against their prestige if they are home quarantined/. Not much of rationale could be seen even during the lockdown. People always put emotions above logic and screw up everything.
People also stepped out of homes unnecessarily because they don't understand the seriousness of the situation. But it is like every other country, only that we have much higher population density and disorganised public.
But the darker side is that there are lot of people in India who Cannot afford to stop working and stay at home. And this means lockdown can't be completely obeyed at villages, where most of agricultural activity happens. Village people are harder to keep aware of social distancing as well. (No offence intended, in fact I am from a village). The agricultural activities confined to villages wouldn't have been a big issue if people reduced other methods of contact with cities / other villages. But they don't understand.
Since there is no Govt. support for COVID-19 patients, it costs some multiple times of a village person's income. That means people won't get tested even if they have slight idea about the pandemic and suspect they are infected - because they can't afford treatment even if they get tested.
COVID-19 is currently mostly limited to urban areas. I can't even imagine what happens if it spreads to villages.
It has already spread to villages. The ridiculously haphazard implementation of the lockdown led to a widespread migration of people back to their homes - which are often villages. Lucky for the government, theres no one there to challenge the official numbers and story.
That's true, but, if you look at how university budgets have changed over the past few decades, it's clear that they aren't supposed to be.
They've been aggressively holding educational costs down (see: adjunct professor), while the costs for non-educational services such as career counseling and "student support" (not entirely sure what that entails; my alma mater didn't have it as far as I'm aware) have mushroomed.
The value I got out of university was mostly not tuition, but I think overall, (very pre-pandemic) the whole package was worth it. I've learnt vastly more by reading, engaging with people, and doing both before and after university though, for much less cost.
I've also never been on a paid training or course that was worth the cost and didn't involve something above and beyond the tuition (networking, project based, access to facilities/tools/data, etc.). The only times this obviously isn't true are when you're gaining some required or coveted industry certification, and then that's only because of the value attached to it, not the value of the learning itself vs other ways to gain the same skills/knowledge.
The lesson for me has been that for any course or school there's got to be an expected benefit way beyond the perceived value of the tuition, and that most of the time this doesn't exist.
I think paid training in companies is likely as popular as it is mostly because it feels a bit like a vacation and most companies don't allow, or don't make it socially acceptable, for people to take sufficient time off for their own long term wellbeing.
Ye well the major upside with a degree for me was forcing me to learn stuff I would never have bothered with. I mean, at the time when I started in uni I had no clue where to even begin. Nowadays I would prefer reading a book rather than taking classes, but I think that is because I went to uni and learned to learn.
I feel it is the same with books on programming. They are worth reading first when you already know how to program.
I think people here sometimes are delusional about the prices of education since everything software-related has almost become a commodity. You can buy a Django/React/whatever course for 9.99 on Udemy. However, there’s an incredible amount of effort which goes into preparing courses in other disciplines.
* people are delusional because colleges are getting away with low quality work, because of the higher barrier of entry for competition compared to something like Udemy.
* People are getting delusional because of both low quality and high price.
Edit: disclaimer: I am a college student at thus I may be biased about what I see here in India. But I assume it is almost universal from other discussions here and on reddit.
The other firms were worse in vision, thus Jio had an edge.
When I was using internet on a J2ME phone and Opera Mini, it cost INR 4 for 20MB airtime (2G!), which lasted 1 day. A GB of data cost somewhere around INR 250, and lasted a month. [1]
After Jio, these days I get around 30GB of 4G data for INR 150. That's the kind of improvement that changed people's lives.
Yeah the fake news is No. 1 issue in India, WhatsApp and Facebook spoiled this country. The elder generation naively believes what they read on whatsapp and that's terrible. The young generation is driven by emotions and identity politics not logic. But I think that's orthogonal to Jio the company.
[1] It is another thing that Opera Mini was freaking fast even on that network and didn't spend even 10MB per day for casual web page browsing. But if you want to get PDF or media content the internet was both slow and expensive.
Yeah I know. I had even detected using about:config to render Kannada text on the phone which didn't support it - it cost more bandwidth but 20MB was too much for a day at that time.
Sort of. Airtel is costlier than Jio and BSNL is worse in many areas. BSNL 3G is not only slower but doesn't have half the coverage of BSNL 2G (which is mostly used for calls and SMS not internet).
Jio is slowly increasing prices but is still cheaper than Airtel as far as I know. And the speed, while not true 4G, is better than BSNL 3G IME.
At what point we, as an industry, failed to mandate a level of technical education for being a manager? Almost always the non technical people who can't think beyond quarterly profits and their resumes are the biggest problem of this industry.
The point is, they should not actually require candidates to recall these things from memory. But there is certainly value in the non-memorization part of this knowledge and the ability to solve this kind of problems distinguish people who can think from those naive jobsworths. If nothing, they are better than back-of-the-newspaper if-you-have-seen-the-answer-you-know-the-answer kind of trick questions.
In my experience it's pretty necessary to do this. Probably depends on your local job market, but there are a shocking number of candidates that just don't know how to code.
The explanation I've heard is that good devs generally get hired after only a handful of interviews, whereas really bad devs are going to do a lot more interviews on average before they get hired, so you get a pretty skewed sampling even if there aren't that many really bad candidates around.
Yes, Joel Spolsky and IIRC Jeff Atwood have written somewhat extensively about it.
We are in a bubble, if we read programming blogs and think about programming in our free time, we are definitely not the kind that FizzBuzz exists to filter out. But from the perspective of companies, it makes sense if they really understood pointers or recursion or graph manipulation, because there are so many people lying on their resumes, not having sufficient analytical skills despite doing some resume driven cargo cult development etc.. And as an industry we don't really have an alternative to these algorithm interviews at scale, at the point we rely on non technical HR people to filter out resumes for us and they literally grep for framework/language experience.
Real jobs have certificates and degrees that mean something, where you can avoid the whole "do you know literal 101 things" phases of the interview process by just going "do you see the line on my resume that says M.Sc."
I don't know what your hiring experience with this is, but there is an entire market around "coding interviews" where people will learn how to pass these. I found algorithmic interviews completely useless to assess junior engineers because of how many just learn just to pass interviews, but then have very little experience with real problems.
If you want an example of this, check out r/cscareerquestions. The standard advice is not to practice any practical coding with projects, but to "grind leetcode" to get past interview filters.
If you want experience with real problems, they juniors should not be your thing. Juniors are supposed to be people with little experience that are able to work if given tasks by seniors.
RedReader and Slide come to mind.
Edit: that was on Android, I guess there are alternatives for iOS too, even if less likely to be open source.