The most prized degree in India became the most worthless
restofworld.org
restofworld.org
The "study" is by 'Aspiring Minds' - an Indian company that sells buggy web-based pre-interview filtering tests as a service. It is in Aspiring Minds interest to portray Indian graduates as incompetent to make Indian employers buy their pre-interview filtering services.
Aspiring Minds tested engineering students from all fields (including chemical, mechanical and civil) to make up the misleading '90% of Indian graduates are stupid' headlines. It worked. The headlines went viral and people still quote their misleading study. The coding part of the test was to submit compile-able Java code through an HTML input without any syntax highlighting or formatting. Needless to say most chemical and civil engineering graduates will not be able to do that.
I was a CS student at an Indian engineering college. I was forced to take an Aspiring Minds test. The test was buggy and had no feedback. I probably failed. But today I'm a full-stack developer in Denmark. Most of my graduating class have good jobs and almost half of us work overseas.
The camera's on, Document.hasFocus() is obviously also on, I use multiple screen and you can't move your mouse out of that screen. The test questions are repetitive recital garbage that ask you to recite java syntax and concepts. All in all I would judge it as a complete failure in selecting for technical talent.
All you need to prepare for this is to recite some book about locks or thread and names. And have the coding ability to write hello world level programs in Java without a linter or autocomplete, god forbid you forgot how to use Scanner interface.
I might sound salty, but I didn't need that job and I'm in a much better position today. My opinion is that those filtering tests are loads of crap.
Would you mind sharing more details about this? Were your recruited or did you seek out overseas employment?
I'm Indian but in the US since a young age; I'll be finishing my CS education next year and would like to leave this country.
If Europe started to pay better money, then there would not be such lack of engineers.
If you think of yourself as a human and social being, not a shark or worker bee, I think Europe isn't too bad. But I recognize that dollar amounts and funding for new ventures is still in the US, or China nowadays. And all the stuff I cited are things at odds with the pure capitalist system some people seem to want to live in, and so might not actually be desirable for all
> If you are a median person (which most likely, we all are), then your expected value will be about the same, at most a bit lower cash wise than in the US.
In my experience wage offers were significantly lower in Europe when I was potentially looking about a year ago. levels.fyi seems to be pretty in line with my pay experience in the US and that’s not anywhere close to the pay I was offered or researched in the EU.
> Europe we don't treat active shooters as a matter of normal life
People in the US certainly do not treat active shooters as a matter of normal life. Have you ever considered that it makes the new explicitly because it’s a rare thing that people do not expect?
> the cities are made for humans not cars and employee rights are a thing.
I think you would find that most technology companies are in cities with walkability/public transit in the US. I think you would also find that software engineers are not treated poorly as well.
> And looking at the worst case, Europe wins: a medical emergency will not bankrupt you
Medical insurance at tech companies I’ve worked for in the US are very good. For example, I pay $20/mo and the theoretical maximum I would pay for insurance in any given year is $3000.
> if you call the cops they won't shoot you
Again, I think you’re treating news as proof that this is a common occurrence. It gets reported explicitly because it is not
————
I’m not saying the US is perfect because it certainly isn’t. No place is perfect. But, I think that you would find that the US is a very nice place to live for the upper half of the middle class and above and software engineering would definitely put you in that category in the US.
With all this calculated, the salary sort of equalizes itself.
Also there's definitely less extremes around. Less of the bad stuff. Less violence, less criminality, less guns, less social disparity, less racism etc. On the whole I think life is better over here.
I think this one is much more contentious than the others. The racism certainly takes more latent forms, so it's perhaps less extreme in that sense, but "less racism" to me implies lower in rate of incidence which I'm not sure is true. It probably is true in at least a few European countries compared to the US.
Then... If you really want to make a lot of money, there are options to do so in Europe as well. Though US should just open the floodgates for CS talent and force the rest of the world to catch up.
An engineer earning 100K in Europe will be listed as earning 60~65K, whereas in the US that engineer would be listed as earning 100K, despite earning the exact same wage.
They really don't need to do anything. Indian graduates, in my experience, have done everything to screw up quality standings of Indian IT education.
Churning out engineers as fast as possible and pressuring everyone to become one despite lack of interest just guarantees you will churn out astronomical numbers of crappy engineers.
And I hate to say it... but it possibly creates unintentional racial bias in interviewers because the sheer volume of crappy engineers being churned out from [Indian/Chinese/etc. universities] has preconditioned you to think all engineers from [Indian/Chinese/etc. universities] are crappy, which couldn't be further from the truth.
Hearing that was pretty shocking, not so much because it’s clearly untrue, but because he held that opinion of other Indian people. He did fall under the description you gave, though. He seemed to struggle with basic Arduino and Raspberry Pi programming even though he had a degree in computer science from an Indian university.
Why would it be shocking for people to perceive nepotism in their own society?
So, in their minds, it is very shocking that a racial minority immigrant said something negative about their own culture. Especially since it sounds even worse than their over-exaggerated negative perception of the US.
In terms of nepotism in particular - we had the Kennedy's, honestly not the worst political dynasty in America but a pretty clear example of name trumping qualifications. I've since emigrated, but I think I was probably disabused of any glorification of the land of opportunity and american exceptionalism by the time I finished middle school.
There's other stuff like that, too. For example, many Americans - especially progressive left politically, but plenty on the right as well - appear to believe that single payer is the norm in the developed world, and US is unique in deviating from that recipe for universal healthcare, even when discussing other options. When you tell them that one can opt to go with fully private insurance in Germany, or that Switzerland runs on something like ACA (much better done, obviously - but the same basic principle), it just doesn't compute.
Or gun control: some lefties literally refuse to believe that civilians can own an AR-15 in Germany, or a silencer in UK, or carry a handgun concealed in Czechia, without much trouble.
That seems extreme.
I was with you until the "cast (sic) system".
> you are held in more esteem in India when you manage more people.
You can replace "India" with literally any country in the world. Managers and bosses always are and always have been held in more esteem than leaf node workers, in every society past and present. It's got nothing to do with the caste system.
Personal anecdote: I caught up with an American friend from school after about 15 years. He worked in some kind of product/project management role. When I told him I was an engineer in the Bay Area he said "Oh, you're just a programmer?" (OK so he wasn't a great friend, and that was the last time I spoke to him...)
This is true to a much greater or lesser degree depending on country, though. Here in the US you can be a really senior leaf node software engineer with fancy titles like "Staff" or "Senior Staff" or "Distinguished Fellow" and command tremendous respect and compensation.
That doesn't exist in some other countries. I was talking with an Italian friend once who works at a bank over there as a programmer, and seniority was exactly the same as how many people you manage. It was a contradiction in terms as far as he was concerned to be a senior software engineer if you weren't at least managing a team. The first question he asked when I was talking about my job was "How many people do you manage?", and when I responded zero, he immediately thought I was low level (I was not). Everyone aspires to be a manager over there.
My anecdote isn't exactly the opposite of yours, because in mine it's programmers themselves that are assigning status based on how many people you manage, whereas in your anecdote it's someone in an outgroup.
In most industries that aren't tech, compensation and prestige are directly proportional to how many people you manage. Only in tech can individual senior engineers have impact that justifies the high pay without managing people.
Outside the tech world it's barely true, and even within the tech world, the vast majority of companies still require you to enter management the moment you've been promoted a couple of times.
You will have to take this as second hand information as I am not familiar with the relics of the cast system. But as he relayed it to me. When you go on a date with a girl that would be considered to be in a higher social status than yourself, the first thing the father will ask is how many people do you manage. Being a manager seems to provide some mobility in the relics of the system that is left. This is how it was relayed to me.
(Am Indian, have gone on plenty of dates without ever meeting anyone's father.)
90% of my class cheated in some form on regular exams until 10th grade. This was known by the management and teachers often hide it. They also increased marks of students by changing their answers lol. Discouraging environment for actual students.
Why?
Because education is a business. Metrics such as 90 percentile scored so and so drives admission rates.
why cheat?
Because lack of good parenting, teachers and dysfunctional infra. Most teachers outside of few top schools are "failures" (not literally) in private schools where they are spending their time trying to crack exams for government jobs or getting another degree. They don't care or aren't paid enough.
Parents won't help their kids or take much interest in what they like. They will be pretty thorough when investigating report cards and standardized bullshit metrics that indian schools make (outside of board) but shallow when empathising with their kids.
Tuition is a widely common practice in india which is similar to daycare in practice, I guess. It gives off an effect of your kid working... Whenever someone gets a bad grade, the first thing to do is increase their tuition time. My previous schools had same teachers taking tuition at home and an after school program. You will get questions and stuff that will come in exam by going there. It was public knowledge too. Most schools are shady. I can't remember one where I didn't see some bs going on like messing with paperwork for tax fraud (openly), messing with report cards, exams, board requirements, etc.
Big chunk of parents are not educated or live in poverty. Their kids will come to school and disrupt it for others but what can you do about it?
Separate them and put them into low cost classrooms? Yeah, that happens. Though it usually starts from 8th grade onwards. Until then, everyone is in the same classroom.
I think the biggest problem is we start investing in kids at a later age than we should. All their junior years, no one sets a good bar for them. They won't suddenly change as drastically as some people hope.
I think it's often a self limiting thing because word gets around that there isn't enough brass rings for everyone.
Universities do their best to keep a bead on the market (at least, the good ones do), but without medical school-style coordination it's almost impossible not to under- or over-shoot substantially in terms of graduate supply.
That said some of my favorite people to work with (smart, easy to work with) are Indian. It's really a shame that the issues affect perception of everybody. It's a good reminder to me not to judge a book by it's cover, metaphorically speaking.
I don't even know why race or color would even matter when it comes to considering one's capability to do some engineering job. At the end of the day just work with whoever can get the job done.
I know intelligent and successful people who would never take financial advice from someone with a beard for example.
Edit: maybe an interesting example. I grew up around smart woman and girls. From observation, I “knew” women were smarter than men. I was in college before I heard that some thought that woman were not suited for math. I couldn’t even process that. But people see patterns and extrapolate based on their observations and what they hear, and often start to believe something that does not exist.
Why? Does fairness serve a business purpose? Are businesses held to be fair to their employees in other circumstances?
What is fair? Perfect proportional representation of the host population? Within what limits? Can we make a heuristic for what's more fair? Should that drive hiring decisions more than other factors?
The way I've come to see it, so-called fair hiring practices are purely a social signal that companies are required, by the market, to hold - and only in the sense that they need to NOT appear to NOT be fair, in terms of bad press.
Other than that, companies don't seem to have any actual obligation to be fair, unless held accountable by some other mechanism (a union, the court of public opinion, government regulations, etc). They will only do so as far as it provides a favourable outlook for the company, and not further. When sweatshop-like conditions are profitable and the attention of the public is elsewhere, for instance, sweatshops you will get. It doesn't matter much if every race is slaving away in there together side by side if they're still slaving away.
Deciding what fair means is indeed hard. But most would today agree (I think) that judging someone to be incompetent based on the reputation of those of the same ethnicity is unfair.
An example of something that would serve a business purpose: widening the potential target market. Of course if your company is producing maternity wear then you probably don't want to aim for a gender-balanced customer base. But in general, increasing the size of your taget market can serve a business purpose.
1: https://www.purdueglobal.edu/blog/careers/how-does-workplace...
Which model do any of us prefer in most situations: one that allows us to be right more than 50% of times done in miliseconds, or one that takes hours/days/weeks (whatever) and allows 95% of good (or fair) decisions?
When it comes to deciding who I will be working with I would rather take the time (hours/days/weeks) so that that we make a fair (un-baised) decision
As for deciding to whether to evade a baseball being thrown at my head, I would prefer the faster response time. It okay to be biased against fast moving projectiles :-)
Any time you deal with people you need take the time needed to eliminate any biases that are common to many humans
Of course, first you throw out the obviously bad ones - anyone who sent a word document when they clearly asked for PDF; anyone who doesn't have an engineering degree etc. etc. That still leaves you with 500.
What do you do? This is I suppose why implicit bias training exists, so you don't go "this one's from India, the last 10 from India couldn't even spell the company name right, reject".
(The next step in the UK is, reject everyone who doesn't have a first-class degree, if that still leaves you with a long enough shortlist. No wonder students are anxious about getting a first!)
Point I'm trying to make: there's situations in hiring where the time you can take is influenced by the volume of applications.
Agree, but then you would think that engineers (when it comes to working with other engineers) are a little more rational than the average folks and can go beyond superficial observations.
If a cognitive bias lets you arrive at a conclusion 10 times faster and is right lets say 90 percent of the time, is that strictly worse than being super fair and objective as the thinking pattern you employ? I think if you had a process at your job that is 10 times faster and was what right 99.9 percent of the time you would absolutely be for using that process over the one that reaches a 100 percent accuracy rate but was vastly slower for anything that isn't fatal to your career.
Large parts of society seem to reward thinking fast and making quick decisions, and would prefer a quick decision even if its wrong. We have 2 pressures here. Making the decision quickly, and then making the "correct" decision. Your circumstances will determine which is correct at the time. But saying to always stick to one and avoid the other doesn't seem super rational to me.
The last job I worked at, more than 50% developers on the floor were Indian (like either fresh H1b or intra-company transfers), so I noticed that I would get 'lost' in the crowd. A non-Indian person will immediately notice other non-Indian person, and ignore me. It wasn't their fault because most Indians on my floor never bothered to say 'hi' or 'bless you' or even acknowledge anyone who wasn't Indian. But then, I'd also ignore other 'pattern breaking' Indians (until, like me, they made themselves stand out).
> Agree, but then you would think that engineers (when it comes to working with other engineers) are a little more rational than the average folks and can go beyond superficial observations.
You are saying pattern matting is irrational? If one is to apply pattern matching in an absolutely rational way, they would not make abitrary judgements that some traits are/are not superficial. They should just take the fact as is, then make their hypothesis, then prove or disprove it then act upon the result.
They are more likely than the average bear to apply Bayesian probability, which comes alarmingly close to confirming stereotypes in most cases.
That said - Indian cultural quirks definitely play a role in how majority is raised and how they operate. Economic situation and a very clear way to get a well paying job makes people try to get into these fields. IT doesn't have an insane filter like medicine, which is another way to earn a lot in India. Thus you get a lot of people that try to get around the system.
I had two cases happen in India to demonstrate this:
One of developers lied about their qualifications for the previous 3 years. He was supposed to be working for Oracle for 3 years, but we found out that he worked at multiple companies for 3 months at time.
The other one was one of three brothers, but only one of them was somewhat competent and would do the interviews... while the other brothers would actually try to show up for work.
I could not make up this crap.
I'm in US and despite US having 20%(?) black population, I'm yet to have a black American colleague in engineering.
Small nit, this is a nationality, not an ethnicity.
An Indian friend of mine said that IIT is good but hardly anyone can get in and the caste system dictates admissions policies anyway so many people try to get engineering degrees from schools with lax standards. The professors are completely unqualified, according to her, and people have to pay more to learn the material from off-campus tutors but not everyone can afford that.
I think this should be the focus is ending academic fraud rather than some of these other issues. That could do a lot of good. Here is a reference to a story I found that corroborates what I was told.[1]
[1]:https://timesofindia.indiatimes.com/city/chennai/UGC-probe-f...
Like, officially, in writing? Even if it's informal, as an American it blows my mind that that's still a thing.
In history there was a caste system that led to systemic deprivation of education and opportunity to underprivileged castes. So India (few decades back) came up with a reservation system so that people belonging to those castes could get jobs/education/opportunities.
In today's times it's scale is more like racism that you would find in most developed nations.
However after achieving the basic purpose, the reservation system based on caste was never withdrawn. Lots of political parties invested into those vote banks.
Nowadays, the situation is such that many people who get admissions based on the reservation policy are from acceptably well off educated families. There are many people who are relatively poor and financially underprivileged but belong to the upper caste and they cannot get any benefits.
The relevant portion:
> For candidates in the general category, successful students must generally score within the top 0.25% or top 0.5% of all students to gain admission to the IITs, whereas SC/ST/OBC candidates must generally score within the top 2% of all students to gain admission to the IITs.
> Currently, reservation of 15%, 7.5% and 27% seats are provided for candidates originating from the SC, ST and OBC communities respectively.
[1]: https://en.wikipedia.org/wiki/Reservation_policy_in_Indian_I...
Affirmative Action exists today. The Ivies modified its acceptance criteria to "soft" discriminate against Jewish Americans in the 50s and 60s. There are arguments that this is indeed the case for Asian Americans today.
https://en.wikipedia.org/wiki/Regents_of_the_Univ._of_Cal._v... https://en.wikipedia.org/wiki/Grutter_v._Bollinger
In past times (and by that I mean XX century - before WWII usually) anti-semitism was pretty harsh, and official. Even on university admissions in the US.
But unfortunately even the degrees themselves become less significant. A PhD in mathematics used to mean more than it does now. But another point is that with global literacy going up, scarse skills are now not based on the amount of people with certain degrees, but rather with inherent abilities that are uncommon. (Take Fortran coders as an example.)
I held this point of view for a long time but, after lurking at r/engineering, I've learned that their jobs are (depressingly) similar to ours. I.e. it's almost never deriving things from first principles, but rather trying to quickly bolt together a solution out of pieces looked up at different vendors' catalogs. Most engineers don't even remember the basic equations they have learned at university.
> Heck, I would be offended if someone called me a developer rather than a programmer.
It depends on the specific job, but currently, I can spend 30 minutes changing one line of code followed by one week of deploying, testing it, making sure the configs are all right etc. So that's 30 minutes of programming followed by one week of "installing dishwashers" (as the joke on the team goes). Lately, I see myself more of a software configurator than creator (my nominal job title is a backend web developer).
And engineers have always been assembling boxes together. At first those were the most basic components, like levers. Then we figured out about standardized parts and interfaces, and components got a lot less basic. But, fundamentally, what's the difference between an engineer fitting two cogs together, and an engineer fitting two pieces of electronics?
If you wanted to create something that's better than the pages we had in the Geocities era, you can do that in 5 minutes (download some static page generator, add a theme and voila).
When it was unveiled, the GMail frontend was a remarkable feat of engineering. Nowadays? Polishing to that extent (also scaling, etc) will take time, but creating a knockoff UI is no longer a revolutionary job. Most web developers would be able to single-handedly replicate the basic functionality ('ajax' and lots of client side javascript are no longer arcane).
As web development progressed, so did expectations.
I know the basics of chef/ansible etc but I much prefer traditional dev.
Among many of the people I talk to on a regular basis, if I told them I was a "developer" they would assume that I was a real estate developer.
If I told them I was a "programmer" it would be a little clearer, but before I moved into software I worked in the events industry for a few years, where "programmer" means "one who develops event programming."
In practice, I could append "software" in front of either "programmer" or "developer" to provide that clarity, but "software engineer" seems to be more common, and to me feels like it more adequately covers the totality of my job, which is as much about measuring, planning, and communicating as it is about producing code.
However passing such an exam would probably only be partly correlated to success in the field. Part of this is because exams are imperfect, part because success in the field is not dependent on engineering skill, and part is because the tech field’s success is based on finding/creating/replacing/owning (new) markets rather than pure engineering.
If software is much better than what was there before, even shoddy software engineering will be superior to the existing solutions.
Are those phrases misleading? I don't know. I certainly feel like I worked pretty hard to earn and maintain the certifications I hold, but I can't compare the rigour and level of effort to licensure, because that's not required of me for what I do.
I also know that there are quite a few "certifications" out there that aren't rigorous at all, that are basically multiple-choice exams you can cram for without actually learning anything. I've never bothered going after a CompTIA certification for that reason.
It's a tough problem. On one hand, I despise artificial barriers to entry on principle. On the other hand, being able to understand and trust a person's base level of understanding and competence does have value.
The TN visa could be revoked at any time which is why you want to be really clear when crossing the border. I worked for Microsoft and they recommended that I bring my full job description package and lawyer's letter every time I crossed the border
The best part was when I had to go to the border to apply for the TN visa. The poor guy had a list of questions to ask and clearly had no idea what any of it meant. "And will you be doing any <...long, dramatic pause> programming?"
How are they different, in your mind?
It's not really enforced in tech, but for me the definition is someone who at the minimum studied an engineering degree. Calling yourself an engineer when you studied Computer Science is a bit odd to me.
Real Software Engineering, Glenn Vanderburg, Lone Star Ruby 2010 https://www.youtube.com/watch?v=NP9AIUT9nos
which explains what various kinds of engineers actually do. Not at all dry and boring like it might sound! From the YouTube blurb:
Software engineering as it's taught in universities simply doesn't work. It doesn't produce software systems of high quality, and it doesn't produce them for low cost. Sometimes, even when practiced rigorously, it doesn't produce systems at all. That's odd, because in every other field, the term "engineering" is reserved for methods that work. What then, does real software engineering look like?
Engineer implies a higher level of skill WRT establishing and following processes designed to minimize risk. A software engineer, like their mechanical or civil equivalents, has a strong sense of duty WRT building things that are useful, safe, reproducible, etc.
No doubt the line is gray. But, your stereotypical web app developer (failing fast while chasing a unicorn) is not an engineer.
In the real world, I'd expect Boeing to employ many software engineers [insert 737 Max joke here]. Google and Apple would employ a mix of engineers and developers. And a company that builds CRUD apps on contract would be almost exclusively developers.
All of this ignores the licensed engineer's opinion, which is often that none of us are engineers because we don't have to pass a licensing exam. And often don't even have to pass a particularly rigorous academic program.
Programmer: A person who writes computer programs. I would personally also imply that the programs are typically not deployment of other programs, but this is my own view and not a standard definition. (Actually all of these are not standard definitions. At least, not anymore.)
Developer: A web developer; A person who writes or deploys applications. In the web era I guess most developers have some inherent focus on the internet as a client interface.
I would also add:
Hacker: A person who likes to probe things until nothing jumps out anymore. (These days people call this a White Hat.)
Cracker: A person who likes to probe things until nothing jumps out anymore. Then they probe some more where they really should not and the police get uneasy. (These days called a Black Hat.)
I've never cared what people refer to me as, and I've never seen anyone voice a preference for it among people I've interacted with.
I call myself a Software Engineer, because pretty much every job title I've had has used that term.
The only anecdotal observation I had is that people in nontech, non SV companies use the term "developer". People in SV style tech companies use the term "engineer". YMMV.
The line is blurring though, as I see the term "engineer" becoming more common in nontech companies too. Just like how leetcode interviews are spreading too.
Developer: codes websites and apps.
Programmer: writes computer code. Encompasses developers.
Engineer: builds bridges, rockets, cars, missiles, smart tvs, gaming consoles, computers, power stations, electric infrastructure, water treatment plants, etc.
But to come to your point, in my mind - an engineer is the one who designs the software, a programmer is the one who actually writes good code to make that design a reality, and a developer is a blanket term for someone who does both (or more) jobs.
Engineers apply math to create systems. Without Newton and his math there wouldn't be engineers or the other way round: engineers are those who create the stuff that is only possible with Newton's math.
Since only few software needs math to that degree, rarely any software is developed by software engineers.
Software developers on the other hand are like real estate developers. They don't build walls, they don't do structural analysis. Instead they combine systems. Unlike real estate developers, they mostly do the plumbing by themselves.
Programmers are to engineers what words (Greek: grams) are to math. They focus on the language and care about expressing ideas in program code.
Then there are also software designers and architects who care about the overall system structure.
I don't have an engineering degree, or even a CS degree.
I feel pretty uncomfortable calling myself an engineer since it seems to carry a certain weight of responsibility, but seeing as the title was bestowed upon me by my work place, I'll continue using it.
IMO the designations are meaningless until there is a real standard in place for "software engineer" and what it entails (in the US at least).
I refer to myself as a "programmer" or "developer", but I use them interchangeably.
Anyone putting any real weight on the title is splitting hairs.
Of course, I also see titles like "Customer Success Engineer" and "Technical Support Engineer", which are just as, if not more, ridiculous.
On a side note, when people ask what my job is, I usually say "programmer" or "software developer". For some reason I just feel uncomfortable calling myself an "engineer", I think I find it is just a bit pretentious.
Yet I tell everyone that I'm a programmer/developer. To me, having seen what goes for engineering in other fields, I feel like a small subset of engineering jobs in non-software fields is true engineering. To me, that bar is inventing something worth patenting. I'd say its an even smaller subset in software.
The thing is, I wouldn't say it the highest value work is the stuff that is true engineering. Actually implementing ideas is so much more value adding and difficult in my opinion. Execution and front lines gritty work is incredibly undervalued in every industry. So I prefer to go by developer because I take more pride in that part.
I have no issue calling myself engineer, because I have a degree in Informatics Engineering and in Portugal it is a professional title validated by the Engineers Organization and all universities must have a green light to offer such degrees.
What I have an issue with, is developers feeling like calling themselves "engineer" after a six months bootcamp, or not having any kind of engineering degree to start with.
Pretending that engineer is a restricted title does not match the reality of the world today, and is unnecessary at best and creates miscommunication at worst. Language evolves and certain words become more lax and widely applied. We can prevent it in cases that are sufficiently technical (Zoom does not have E2EE, that's a blatant lie), but getting the world to use "literally" as it was originally defined is no longer feasible IMO.
Well, I for one am both a developer and an engineer. I have a B. Eng (equivalent) degree in ICT and I work as a full-stack dev. I don't really have a problem with using either "developer" or "software engineer" to describe myself.
Soft skills and people skills are also scarce skills, in my experience. You can always teach a monkey a new trick (you can always teach a fresh looking young man to program in Python or to solve a differential equation), but you can't as easily teach them to: communicate in a professional manner, talk like a professional to other professionals (both people above you and people below you), write clearly, concisely, and without grammatical or orthographical mistakes, sell yourself or your product, etc.
The geeks will not inherit the Earth. Socially sophisticated people will inherit the Earth.
I didn't have any particular prejudices about Indians before I started dealing with Tata and Cognizant and Infosys and Cap-Gemini and the ATT/IBM/Oracle Global Services divisions, but afterwards, it's just hard. You get to where you just expect dishonesty and incompetence and disorganization and abusive behavior as the default.
Still I think there should be some needed post-grad accreditation for software engineers if they want to actually be called engineers.
Everywhere in the world people flock to careers with prestige and money. Chasing cash in a developing country makes even more sense because being poor there sucks even worse than being poor in a developed country.
Which will depreciate just as fast for the same reason.
This would reduce the need for crazy interviews for those that have passed it, since it proves a level of competence above scraping by for a CS degree, etc! Maybe you need a few years of real work experience to have a chance at passing the Software Engineer accreditation. Just like if you have a long work history at GoogAmaFaceSoft, it's assumed you're already pretty capable.
That's just the opposite of what works. I personally find looking at github or whatever personal project the person had to be the best indicator of whether he/she actually liked/is good at programming - for someone coming out of school or claiming little/no experience otherwise.
You can't blame interviewers being racist on the bad actions of some university. They have to address their own racism themselves.
Yes, you always blame the racists for being racists.
Edit: instead of deleting my (incorrect) parsing of the parent poster, I’ll leave this here and accept my well deserved lashings and downvotes...
Biggest predictor for anything is past experience, and understanding what bad habits people pick up in different places and roles — your interview needs to look for that.
End of the day, people are snobs about education, etc. Some companies just won’t deal with you if you didn’t go to a school on the happy list.
This has been a problem my entire career. Long before China, India, Vietnam, etc entered the fight.
Credentials are just one signal in the torrent of noise.
GP is trying justify racism by interviewers when the people being interviewed and the people mentioned in the article are two distinct groups. This is HN so you can't just say "don't be racist", but even from a logical point of view this doesn't make any sense. How does perceived poor performance of one group justify discrimination of another unrelated high performing group.
As an Indian CompSci graduate, I am excited for this bust to happen as soon as possible. Most people I know did not like studying computer science, are absolutely unhappy with their worklife and want to get out of it as fast as possible. Out of the 700+ in my graduating class of Computer Science, less than 70-80 are still associated with computers in some for or manner. Most fucked off to other fields, predominantly MBA. I hear similar stories from other Tier 2/3 institutions.
I can't wait for Indians to realize just how much easier it is to get employed today if you are willing to let go of the traditional path. Internet has unlocked so much opportunity and after 2016, pretty much all barriers to internet access have been lowered as much as possible. All you need is a computing device like a phone or laptop to get started. Doesn't work for the extremely poor still, but the opportunity for mass swathes of people have been widened much more than before.
I can back that up with my anecdotal stat as well, that number is rather generous, not even 70-80 would be doing it still. There were some which hated it and it showed. They were pressured into it and they were just struggling all around to develop any interest at all in the field.
> I can't wait for Indians to realize just how much easier it is to get employed today if you are willing to let go of the traditional path.
I am skeptical about this. Unless you can actively demonstrate competence (select few) you are not going to be favoured against someone with real degrees in the pile of resumes.
That's why I said, if you are willing to let go of the traditional path. If you have to compete against a pile of resume, you are near or on the traditional path.
Employment doesn't necessarily mean you have to be working for a company.
Clearly, there are new paths. Streamer, Podcaster and so one. But nothing that couldn't employ masses.
Note there are no easy roads to success in general. Being born to the right family helps (a lot) , but you can sti mess up.
In addition, automating a factory process is more effective if the designers live in a society with plenty of manufacturing experience. Avoids problems like egghead designers creating the latest automated process that turns out to be a nightmare for maintenance when actually used in a high-volume manufacturing line. I'd be willing to bet big chunk of the companies in the future automated factory revolution would be Chinese companies leveraging their manufacturing experience. Once again, skipping steps = problems down the line.
It does not work for literally everyone from the country but the people I'm talking about can definitely travel on this path.
'700+ graduating class' sounds more like a fraudulent diploma mill than a Tier 2/3 college.
Actual Computer Science and Computer Engineering grads from Indian Tier 1/2/3 colleges have no problem finding jobs.
I never said they had trouble finding jobs. You jumped the gun. I said they were not happy with choosing computer science as a career.
Isn't this the case everywhere? Even in developed countries education has become the default path to a successful life. Medicine and law are extremely competitive fields because they have a reputation for guaranteed success. There aren't many opportunities available for people without qualifications.
Looking back here are a few memories of my college education experience that stand out:
* 1 computer "lab" with 15 PCs shared amongst 720 students. Only 1 PC had a dial-up internet connection that rarely worked.
* Majority of the courses taught by industry rejects who were unemployable.
* Hilariously we learnt standard nix command line tools (sed , awk, filesystem commands etc.) by writing the commands and their outputs using a pen and paper never once using a real terminal + shell because the college did not have a single nix machine.
* "Systems Programming" professor walks in the first day and declares she cannot code in C and 8086 assembly which the course mandated. She encouraged us to seek external tutoring (coaching classes as they are known in India) instead of relying on her.
* There was small cottage industry that sold finished projects to students - including source code, project reports, electronic circuitry where applicable. About 30% of the class bought these “projects” off the shelf.
Thankfully my family was able to send me to an American university for a graduate degree allowing me to have a shot at a tech career. Now having lived and worked in the Bay Area for 15 years I can say that quality of education at an average community college in the US is far superior to the tier-2 / tier-3 universities in India.
I would say at most 10% of engineering students in India are properly taught and properly tested and rest of them just spend 4 years in college essentially learning nothing. When it is so easy to get an engineering degree, people who barely pass high school also enroll in these programs for "engineering degree" and become an "engineer" after 4 years of college. It's no wonder that most of these "engineers" can't do anything.
Another significant element I'd point to is outdated curricula. By way of example, many Indian CS course materials still require students to use Turbo C++ -- an IDE from the mid-1990s which runs under DOS. Needless to say, what ends up being taught is hardly representative of modern practices.
Moreover -- the use of a 25-year-old IDE is symptomatic of a more general problem in Indian CS (and probably other) curricula. Many instructors are teaching to a syllabus which was set in stone many years ago. If you look at some of the links I posted in a sibling thread or explore other universities' posted materials, you'll probably see signs of this -- Java courses which still cover applet development is another common one, for instance.
https://www.quora.com/Why-is-Turbo-C++-still-being-used-in-I...
But I'll do one better -- here are a couple of syllabi and course materials that suggest that it's still being actively used in universities:
https://www.darshan.ac.in/DIET/CE/SubjectDetail/2140705 (note the "reference books")
http://cmscollege.ac.in/course-menu/syllabus-object-oriented... (similarly)
http://www.alagappauniversity.ac.in/modules/DDE/uploads/book... (published in 2018, references Turbo C++ throughout)
http://www.dbit.ac.in/cse/syllabus/compiler-design-lab.pdf (2017, references Turbo C++)
You can find more examples pretty easily. It does look as though some universities are starting to support the Code::Blocks IDE and/or Geany, but not consistently.
Today the same state has about 250K seats. Anyone who writes the entrance test can get into some college or other.
Has the quality gone down? I would think so. But I definitely think qualified students is definitely greater than 2k even when I went to college.
I would rather prefer over supply rather than shortage of educational opportunities any day.
The value of an education comes as much from the group of peers (classmates who interact regarding experiences, plans, lessons, and ideas) as from the books and professors themselves. Like a critical mass of brains.
If you water the group down, then the most talented cohort benefits less than if they were the only people to advance.
The difference in terms of work output and professionalism between students is massive. Presentations from other students lack depth and often fail to explain basic concept; they have very little educational value. Group work is a complete mess since a lot of people never learned how to organize themselves, have very little motivation or fail to explain their ideas properly. Simple things you usually learn in undergrad like putting a bibliography together or spell checking documents are lacking. You end up wasting huge amounts of time correcting other people's mistakes.
Another big difference I've noticed is that students seem to have little interest in the area of study; none of the ones I met have non curricular side projects. There's also a lot less discussion happening outside of classrooms.
I don't doubt great undergrads exist in an average school, but the chances of randomly running into one are much lower. I did not run into any.
I'd also disagree with the characterization of "top" students. A lot of the top students at the average school, while great at academics, were still a lot less "well rounded". They had few projects that they worked on outside of class, etc. Not that they weren't interested - just that there was not enough "critical mass" of such people for it to become natural.
Also, the Ivy League students just have a much better education. You can tell by interviewing the bad Ivy League students and noticing that at least their thinking process is structured (try to understand problem, form hypothesis, etc...) The bad students at non Ivy League level schools have no thinking process. It's saddening.
You can tell that the few top students at the random state school would be even better if they had the opportunities that the Ivy League students are provided. It's much more impressive to get to third base starting from home than getting to home starting from third base. It shows independent thought, grit, and adaptability. Those aren't that common even at the Ivy League institutions. The trait most prevalent in Ivy League interviews seems to be excellence in a circumscribed area rather than general ingenuity.
Value of education itself cannot be only quantified by the its value in a job, even a poor education is better than none. Lack of employability should not be a reason for not learning.
Being from the same decade , could not agree more. It was really selection through fire (especially if you were in general category of applicants) . Not all set their sights on this degree , the later part of the decade set about this whole boom of software engineers (Y2K , eCommerce etc.)
Those who didn't get in , then got into roles of lecturers in these colleges that mushroomed. The quality started going down in GP , 1/2 cooked engineers produced 1/4 cooked ones and this went on.
I think what is to blame as well was the fact that the path was all too easy and clear , finish engineering , pass through some quant tests , 3 month bootcamp and lo you have your job (or in some variant of this). Attitudes changed toward this easy life.
Compared to this other professions like Charted Accountants (CPA equivalent) , Actuaries (who i think are the best data scientists around) or Doctors where there is a lot more work in the first decade of one's career post undergrad , engineering was a cake walk.
> There are currently more than 3,500 engineering schools across the country, and about 90% of graduates do not have the programming skills to work in software engineering
That's because there are non computer science graduates as well?
> In India, you need a ‘traditional degree’ before you pursue your passion,” he said. “And that degree in almost all cases is engineering.”
Not true, this depends on the region. Engineering is way more prominent in South India than the rest of the country.
> With programmers everywhere, annual salaries for entry-level jobs have remained at around $4,500 for the better part of a decade
This is referring to the outsourcing companies I'm assuming. Ironically, majority of intake of the outsourcing companies are graduates whose major is not computer science. So the presence of "programmers" should not have an impact on the other engineers.
We managed to hire about one smart person a month, out of a torrent of perhaps 1000 applicants per month. The vast majority (like 85%) of the applicants were from India and Pakistan. And out of those, 95% used the exact same resume/personal letter layout and content, sometimes down to the exact same wording.
We tried to be openminded, so we set up a bunch of interview calls with especially promisingly people from this "pool". After about 10-15 of those calls we just gave up.
We did eventually hire two indian people and were very happy with their contributions, but only after they had made their ways to our little country on their own. Imagine being a talented developer in India, interviewing for a job overseas, against this background of overwhelming mediocrity?
Generally I start classifying resumes into two piles: those that put everything they know on their resume, and those that include a handful of relevant, interesting pieces of knowledge with a few lines of job experience to back those up.
When "everything they know" fits on four pages, in my experience they aren't worth interviewing.
When "interesting pieces of knowledge" makes me want to ask more questions about what they did, in my experience they are worth interviewing.
Unfortunately the HR system scans for keywords, which makes the "interesting pieces of knowledge" resume less likely to get through HR and "everything they know" more likely to get through HR, which is the opposite of what I want to see. HR needs to either admit that they need to hire a developer to scan resumes instead of using automated software or just admit defeat and pass all resumes on, regardless of source or quality. They just are not capable of filtering software developer resumes in their current form.
(HR printed out all applications on paper. We sat in a meeting room to scan through them, and discuss them. The mechanism was: scan through each one; write your initial and then yay or nay. Obvious ones got into the yay/nay piles, then we debated the maybe pile. After all of that, HR set up interviews with the people who ended up in the yay pile.)
Good coding skills (the ability to write functionally correct code) are possessed by 4.6% of Indian job applicants, 2.1% of Chinese candidates and 18.8% of the US candidates in the IT and software industries. However, if we consider only those candidates who can write correct code with few errors, the gap between China and India narrows (8.6% vs. 9.8%, respectively). Interestingly, while the percentage of Indian engineers who code well is greater than the number of Chinese engineers, a much higher proportion of Indian engineers (37.7%) cannot write a compilable code compared to Chinese engineers (10.35%). This means that India must do more to educate its general population in proper coding skills. By comparison, the US engineers perform four times better than Indian engineers in coding: only 4% of the US candidates cannot write compilable code despite the fact that the base of the engineering population in the US is approximately four times smaller than in India.
I wonder what their tests look like.
We have that problem here in Canada and the USA. Plenty of developer jobs are open, but I also know lots of CS grads who never found jobs, even two years out of university. That's because most would struggle with FizzBuzz.
Sure, they are on paper qualified to do the work, but absurdly unqualified in actual skill.
I guess it's possible they didn't practice, but I have a hard time believing that they could get through an undergrad CS program and not be able to quickly remind themselves of some basic code logic beforehand if they don't already code regurarly.
Were they actually passionate about CS? Did they have bad professors?
This is one of the core issues many people seem to ignore. The number of universities where you can actually become a good engineer is really small, apart from the IIT/NIT/BITS/IIIT, the rest can be categorized into mediocre to astonishingly bad.
I do have a lot to say about this topic, as I had go through this experience first hand, and I wasn't one of those who managed to get into a good university (in fact, I barely managed to get into a really shitty one).
Here's a short summary of what's it like to get a degree from shitty private university in India -
a) There's no focus on getting an actual education, people (including professors, students, their parents) are more concerned with getting a piece of paper which certifies that the student is an engineer now.
b) The faculty responsible for teaching rarely give a shit, not that they have an ability to give a shit in this case. Most of them barely know the material they teach. I've had lecturers who would literally write out Java code on a board and then explain the meaning of each word for the next hour.
c) Most of these schools have mandatory attendance for classes, so if you have assumed you'll just sign up and go through the material on your own, you're screwed. You will end up spending 8 hours everyday for 4 years doing this, then spend additional 2-3 hours everyday doing assignments which basically consist of copying shit from a textbook.
d) Exams are just an exercise in mugging up the textbooks. Even for subjects which involve programming.
e) Companies that hire out of these schools are usually service based like Infosys, TCS, etc on a salary of about $300/mo. So the next time you complain about the shitty Indian guy with a thick accent who writes spaghetti code, just remember that they're getting paid peanuts for doing so. Also these companies have a bond of anywhere from an year to 3 (which basically means if you leave anytime before this period, you pay the company <X> amount), it might be illegal, but then your lowly IT guy doesn't have the resources to take these companies to court.
There's lot to write about this topic, there are a lot of facets which intermingle with one another in absurd ways, perhaps I might write something more detailed some other day.
I wonder why this is. It doesn't seem like it would be that hard to teach basic CS well, nor would I think that India would lack for competent people able to teach this way.
Does this occur in other parts of Indian society? For example, is it like this in medicine? Or food processing?
Full disclosure: The author is a friend.
https://www.livemint.com/Opinion/9B4x2LbRpZuwuFz72g9f3O/The-...
https://www.livemint.com/Opinion/RybPVLh2hlTYsSBycUIzgM/The-...
(edit removed an irrelevant link)
Why do you think so? If anything it's harder than doing a regular programming job, because in addition to knowing CS, you have to know how to teach. And programming pays better than teaching.
Let's quantify that since most people don't understand just how bad the discrepancy is.
A lecturer in CS might get $4000 for a semester. That's 12+weeks at 40 hours a week of work preparing the lectures, grading, preparing tests, and answering student questions via email. Not joking.
That's right around minimum wage in most civilized places in the US (about $8 an hour).
I presume the discrepancy is much worse in other countries.
Based on the above description, though, the issue doesn't seem to be that CS education there is mediocre, but rather than it is abysmal. Not sure what to make of that.
But almost no US educational institute is for-profit, many run on endowments. The teaching faculty often have PhDs. The faculty in CSE even in teaching colleges have had post graduate education, often involving research.
The teaching staff in Indian for-profit colleges are essentially the stragglers among the UGs from similar for-profit colleges. Poor pay with a shoestring staff willing to work for that pay is part of the business model.
[1] https://www.insidehighered.com/news/2012/07/30/harkin-releas...
In other words, the value one gets from the exclusivity of a credential is separate from the practical value of having the credential.
The value from the exclusivity is bound to decrease as a population recognizes that value and rush to claim some of that for themselves which in turn diminishes that value for everyone.
As the value of the exclusivity is removed, the true value of the credential is discovered.
Of course in the real world, supply will react to the increase in demand and those looking to make a quick buck will offer an inferior credentialing service. For example: the fairly recent glut of web dev bootcamps (Of which I am a graduate of one, it can work occasionally).
And then things get complicated and every firm tries to filter out unqualified candidates with wild interview processes which leads to countless blogs about the whole situation including the article featured here, which is, at least, tangentially related.
There is still demand for skilled tech workers, but many technical colleges are not producing them.
There have been several mergers (I'm personally aware of one in my area), and it sounds like some schools have closed as well:
https://www.abajournal.com/magazine/article/urge-to-merge-la...
The same around early 2000s where suddenly there were a large amount of surplus programmer and even my parents social circle which is about 3 level removed from any programming start talking about this 'surplus' and how starting a programming career or major is a bad choice.
Tech is still the biggest job creator and the best paying job for what we do. It's easy to be shortsighted over a couple of months about what you don't understand or can't do well, but this world is clearly marching towards an more autonomous future.
I think bootcamps can work, but the incentives for those running them are off.
At the camp I'd look around the room and think that about half the folks straight up can't do the job, and "If one of these people interviews before me / or worse gets a job and bombs ... am I even going to get an interview?"
Fortunately I got a chance to prove myself with an employer and got my foot in the door.
But even so sometimes in casual conversation I just say "self taught".
Asking as an immigrant to the west.
Personally, I'm glad there's been a leveling of the playing field.
"Good coding skills (the ability to write functionally correct code) are possessed by 4.6% of Indian job applicants, 2.1% of Chinese candidates and 18.8% of the US candidates in the IT and software industries"
Aspiring Minds is an Indian company that sells buggy web-based pre-interview filtering tests as a service. It is in Aspiring Minds interest to portray (Indian) college graduates as incompetent to make companies buy their pre-interview filtering services.
Seems a bit unethical to pay someone $3/hour for their time (unless he is retired/mainly doing it for fun/teaching a lot of students at the same time).
But for a person trying to make a living with 1-on-1 lessons, that's pretty brutal.
I pay $15/hour practicing foreign languages on italki
Well, for now, he is looking at this as side/fun income. if he asks, I will pay him more. But ask he has to.
Also, all along I was not able to pay market rates. So, I could not entertain idea of hiring a tutor. Only Because of covid crisis, I was able to hire for so low.
There are just not enough new people hiring in India right now. So any extra little money helps.
To your question, who in the world is willing to teach for that low, think of it as his first teaching gig. Through this, he is discovering a new market for himself.
1/ Society should provide the courses that people want to study. Not everyone wins the lottery when they are young. So to to limit engineering to X number of slots and lock the rest of society out of engineering degrees. That's wrong. That's not freedom. And that's why bootcamps and diploma serve important roles. They give people a choice. As for the quality of graduates, that's up to the filtering process of companies.
2/ Computer science is far too broad and should obviously be broken up. Yet it hasn't. People focus on different things. Some focus on security, on web dev, on robotics, on machine learning. You can't throw a frontend guy into the backend and 1 month later call him "a terrible coder". That's unfair yet it happens.
3/ Programming is clearly on the path to becoming ubiquitous. My prediction is that the trend will move towards having more domain knowledge. So yes, the degree is becoming useless because just being a programmer isn't going to be enough anymore in the future.
That said, I'm curious how you could talk to someone about programming for four years and at the end of that 9 out of 10 of them could not actually do it.
I honestly don't know how it happens. She clearly wasn't an idiot, and she certainly learned a lot of theory but couldn't program her way out of a paper bag. And this was not for an entry level position, either.
How can you get all the way through a PhD program without even encountering the concept of rebooting a computer?!
Out of a class of 35 students who were already in their 2nd, 3rd or 4th term of this program, no one knew to press F12 to see the console in a browser. This was a web development program. I basically had to teach these kids as if they just walked off the street. No matter which new batch of kids I had, it was like this. I asked them how they could know so little about anything development wise if they took 4 years of CS, like literally what did they do. They'd always just answer that they learned "Theory" and something about learning out of a book, not actually developing or anything.
I still didn't understand how 4 years of theory or book learning couldn't teach you the most basic programming concepts. I'm pretty sure the schools were just mills or scams or something, it was sad.
Most of the students had no real interest in actually learning how to code or doing any learning either, they seemed to believe that just by showing up they'd pass, get a degree and a good job, which was bizarre, especially in a university town and tech hot bed. The amount of cheating, copying, lying, begging, etc. didn't help. A few folks were genuine, but the program seems like it's just a legal loophole to get into the country where if they get at least a technical support job after 2 years of grad they can legally become citizens. This is the fastest growing and most profitable sector of this college.
I sometimes wonder if they did that by design...
To be fair, I can understand when someone doesn't know that the shortcut key for the dev console is F12, but I would hope they would at least start at the "hamburger" menu to see if they could find it.
Your anecdote reminds me of the dot com days when I was trying to hire some network engineers. Their only qualification appeared to be they passed some certification test on Cisco gear. The only questions they asked about the job were "how much stock will I get?" and "when do you think the company will go public?" It was easy to not hire them, even when we were really in need of people.
That's different than a computer science/engineering degree being devalued to the point where it's no longer more attractive than any other college degree.
I believe software engineer is pretty free-for-all. Just don't try and represent yourself as a P. Eng. Then you're in trouble.
Since he uses the word "worthless", how does that compare it to folks who graduated in History or anthropology or (running joke in the US) graduated in English?
Think of this: People in poor country, need to do what it takes to better their prospects. So they go for the one industry that pays relatively better. Nothing illogical about it and seems perfectly rational to me. And I can see similar trends in the US too. A lot of lamenting on "how I wished I learned to code, major in CS, etc.", given how drastically better the tech industry pays. https://levels.fyi ICYMI. Oh, the poor worthless English majors.
Also the lack of empathy was quite striking given the author himself is a recent "worthless" graduate of a technical degree - https://www.linkedin.com/in/nilesh-christopher-20831784/ Maybe he comes from an upper-middle class background and was able to pivot into journalism, but the fact that he didn't mention his own background meant that I couldn't take this article seriously.
On a more meta topic, does education always have to "worthful"?
I don’t have a CS degree. Background in something completely unrelated. But I’ve been able to make a living programming doing my own thing (bootstrapped online stuff). As a result, I never bothered to apply for jobs at established CO’s.
For those who work in established tech start ups or tech companies, what proportion of your software devs have an actual CS degree vs self taught? And is there some glass ceiling as a result?
But my viewpoint is skewed, there are only about 25 of us at our company.
FWIW, I can't even remember the degrees of the guys I've hired.
Probably not even at the time I hired them.
CS degree from right places puts you on at a advantage. So, without a degree you will be competing with guys who had benefit of formal education. And that may seem like a glass ceiling if you don't interpret correctly.
This is also evident in the compensation for new grads. CS grads from lower ranked colleges typically make $5k-$10k per year, while those from these good colleges make $20k-$40k per year(gross). Exceptions exist of course.
I have a question to Hindi speakers: they say a word that sounds like "futur" meaning literally "future". Is that a borrowed word? Or is it something native to Hindi?
I am quite astonished that I can grasp a bit of it. The language kind of reflects some European languages. For instance, I can understand a tiny fraction of what actors are saying in Hindi. Never learnt it before, but that lingual link is interesting.
"Do it for money and you'll be crappy at your job"
It sounds like many organizations in India have significantly reduced their standards or are awarding their degrees to unqualified people. So why do businesses continue to value degrees issued by those organizations?
The programs in the US weren't fake ...
The US government (VA, etc.) didn't like paying for schools that had low graduation rates, or had high student loan defaults, so closed them. In some cases, legit trade schools were closed, like Wyotech:
https://en.wikipedia.org/wiki/WyoTech
Ironically, this being HN, private investor groups trying to monetize education were behind a lot of the closed schools.
Some historical perspective as I recall it: even as late as the late 1990s, there were very few engineering colleges in India, and a B.E. or B.Tech was a prestigious degree to have. For example, Uttar Pradesh, which is a state that has about the population of the entire US, had 5 or 6 state engineering colleges (+ IIT Kanpur + Univ. of Roorkee + Banaras Hindu Univ, which were national level institutions).
The AICTE which controls technical education in India, mandated that no CS department should take more than 65 students in a year.
I think what changed was Y2K. I suspect under pressure from NASSCOM, (led by the charismatic Dewang Mehta [1]), B.Tech in CSE got doubled in number by creating a second department called I.T. thus working around existing norms. In the 5 years following, engineering education itself got "liberalized" by allowing a large number of private for-profit colleges.
The impression was that they will become places like Harvard and MIT, just because private is better than public sector. Many of these colleges still do not want to employ qualified teaching staff - the faculty are mostly people with just a B.Tech degree from similar colleges, who did not get a job in the tech sector, hence are willing to pay for dirt pay, and under draconian corporate-style management.
The situation is true to this day.
An inevitable result has been the deluge of people ill-trained, but holding a degree, tarnishing the reputation of Indian engineering education.
TLDR: 20 years ago, there were very few engineering colleges in India, the degree was prized, and the graduates were kind-of well-trained. Then there was a huge and unregulated explosion in graduates from for-profit colleges. Today, the graduates who are assured of good jobs and whose degrees hold value, are still those from the pre-1990s engineering colleges.
Doctors have resisted a similar dilution of norms. But recently India achieved a significant "number" - one can only hope that the doctors are better off than the engineers. [2]
* First of all, the system is very rote learning oriented. The questions in the exam will be exactly same as those solved in the class. That means people without proper understanding of concepts can still get A+ grades by memorization techniques. But it is PITA if you actually have some interest in subject. You may not get good grades if you write right answers in exams but they aren't like what is in the book.
* Too many people enter Engineering, especially CSE in hope of getting a Job. Entrance process is based completely on basic sciences and while better than other exams, people still game the system by studying four years for entrance exams. This and management quota in Engineering colleges leads to huge influx of students out of them somewhere like 2% - 5% actually have interest in the branch of engineering they take.
* Talent gets no recognition many times. Rote-based exams make it easy to distinguish average from absolute low. But average and talented appear to be at same level because a talented person can be as good as an average but hard working student in these rote based exams.
* Since there is huge influx of students and huge number of engineering colleges, most faculty is underskilled and better we could have robots teach us. We had a teacher who doesn't appear to indent C code, but also has a "qualification" in "distributed systems" and "computer networking".
* Something that has been a problem to me: I was pretty good in basic sciences, passed entrance exam with good marks without any tedious "coaching", and I took up CSE because I was interested in computer science. The first year of engineering syllabus consists of same common subjects to all branches, like Physics, Chemistry, Mathematics (Calculus) and introductory courses to other engineering disciplines (C programming is only CSE related thing they teach us). That's improperly using one year. However relevant those subjects are, they aren't as relevant as teaching programming/CS related subjects in practice. We will have campus placements in 7th semester and due to this, we only get 2nd and 3rd year to actually study CSE. Even those subjects wouldn't have been a problem apart from being waste of time - but they are too rote learning based and uninteresting - As in teaching some methodologies to solve some kind of numerical problems and asking them in exam. Today as I am writing this I have an online exam some hours later. I never thought I would be grades in 7/10 range but the uninteresting and rote based nature of these exams doesn't motivate me to study anything.
And this "interdisciplinary" kool-aid has another effect. I have seen even toppers of my class not understanding recursion and algorithm complexity. Because algorithm complexity is not taught in first year. We only get to learn C programming (No 'advanced' concepts like malloc / free, file I/O) in first year. This is huge waste of resources because all these rote learned physics fundamentals don't be useful for most of these people in practice. They will be forgotten after exams. If they had taught something related to CS, at least it would be useful to do side projects and have something more on our resumes, and would be perhaps useful as an engineer.
* Perhaps as a result of the above, Syllabus is far behind the actual advancements in technology. Git? Apparently only members of college's coding club know what that is. Docker? What's that?
I am frustrated. It is just pointless. Especially because all this is too costly for a middle class rural student and we have to get education loans. If it was not the societal pressure / norms, I could have self studied and could have become a better engineer. The system is so screwed up - perfect one to churn out enterprise droids anyway.
if(i % 3)
...
else if(i % 5)
...