1. This is incredibly anecdotal, but the half a dozen people I know who have come from Indian educational backgrounds (specifically IT programs) did not have much to show with their diplomas. These are all incredibly bright people who seemed to start out levels behind their otherwise peers, and often rely (as we all do) on online material to make up for gaping flaws in their knowledge. From the source article:
Hiring is slowing down because recruiters are changing their strategy. "An engineering degree is a poor proxy for your education and employment skills," says Manish Sabharwal, chairman of TeamLease, a temp staffing firm.
"The world of work is evolving... employers increasingly don't care what you know, they focus on what you can do with that knowledge." While dozens of new institutes have been established in the past six or eight years, he claims that over a third of them are empty and perhaps they are "worth more dead (for the real estate they sit on) than alive."
This suggests to me that many Indian STEM degrees are not an adequate proxy for value (just the same as many American STEM degrees.)
2. I wish decentralized certification systems became a bigger thing. Personally, I would love to be able to take a definitive test on whether or not I knew Python well enough to spend forty hours a week working in Python. Make it open notes and timed, like the real world is. I know this used to be a big thing in the 90's, but that was before my time -- why did this go out of style? Did the rapid advancement and evolution of the industry prove the system prohibitively time/effort-consuming?
> 2. I wish decentralized certification systems became a bigger thing. Personally, I would love to be able to take a definitive test on whether or not I knew Python well enough to spend forty hours a week working in Python. Make it open notes and timed, like the real world is. I know this used to be a big thing in the 90's, but that was before my time -- why did this go out of style? Did the rapid advancement and evolution of the industry prove the system prohibitively time/effort-consuming?
The problem is when you have enough desperate unethical people to break any system of testing that you can throw at them. During my undergrad, there were books that were filled with possible questions that could come up in the statewide exams. One was supposed to memorize the answers (given in the book) and write the same answer in the exams. I remember when I wrote my GRE, there were people constructing a database of all the possible questions that showed up in a particular month of the GRE. Every system is breakable; your decentralized certification system will make it only easier for a bunch of people who don't know shit but have shiny new certificates to show up.
> Look at interviewing. There exists of a database of interview questions that you need to learn to game the interview.
That is part of the reason that I have become tired of the tech industry; its job application process is silly. There is enough correlation and causation issues. As an interviewer, you assume that a lifestyle, schools, ability to solve a bunch of textbook algo problems means that the person will be a good employee; as an interviewee, you assume that a company which asks such questions, talks about exotic languages, technologies, provides free lunches and other crap will be the good fit for you. I have decided I am going to ask companies if I can work for x time for them on a project; then we can figure out in practice whether we are both good fits and then decide on a final settlement. Of course, this will never become widespread because it fucks with the H1B system and a lot of people are still convinced that the way tech interviews happen is the right way.
It seems that most Indians who are knowledgeable and well-educated got that way despite the educational system, not because of it. Sure, a tiny proportion of elite students have access to high-quality education, but everyone else seems to be shoved through absolutely awful courses.
The worst example I've seen of this is that until 12th grade, Indian tests consist solely of reproducing memorized material! I mean this literally: you actually will fail an exam if you write anything novel and don't just reproduce the exact text printed in the textbook. So anyone who actually manages to get some kind of understanding and pass the course is doing something above-and-beyond what the coursework prescribes, by both memorizing the text and working to understand it. Someone who learns nothing but merely memorizes the textbook will get a 100%, and someone who comprehends and retains the knowledge but fails to memorize the exact text in the textbook will get a 0%.
At the college level there is a huge variation in quality. At one end there's the Indian Institutes of Technology (IITs) which are world-class and highly competetive research institutions providing a truly top-notch education. However, many students go to for-profit colleges that sprung up to meet the huge increase in demand for education and come out with degrees of questionable utility. These people are often of high aptitude, but were put through systems where they were made to learn narrow material (e.g. upper-division courses on Java 7 or Oracle 8i). This leads to the appearance of success in the short-run with high paying jobs right out of college, but a lack of preparation in the long-run (and a lack of knowledge of the lack of preparation).
That said, it's not all bad. One could argue that while the grade school education sucks, the higher-education system in India is actually far more pragmatic than the overly idealistic American system. Trade schools and practical job-oriented degrees are far more common in India than the US. In the US we like to pretend that everyone is training to become some kind of airy-fairy academic (with our liberal-arts degrees and theory-focused engineering degrees), and yet we also want to pass everyone. We deny the reality that most people are looking to acquire practical skills for gainful employment. This leads to a situation where we shun practical vocational training, and instead give everyone a diluted version of a pure academic education.
Disclaimer: I grew up in the American educational system and have observed the Indian system only through my family members and friends-of-family (and a small amount of first-hand experience). I haven't experienced the Indian system up-close as an adult, and I'm sure the above is tainted with a fair amount of Western-centric bias where my expectations are simply miscalibrated. I look forward to corrections from people who have actually been through the Indian system.
> At the college level there is a huge variation in quality. At one end there's the Indian Institutes of Technology (IITs) which are world-class and highly competetive research institutions providing a truly top-notch education.
LOL, no. The IITs hardly do any research; they are undergrad mills just like the rest out there in India. All they have is a bunch of incredibly smart people who do research on their own, work their ass off to find an internship abroad and figure out how to escape the system. The American system works far better in taking a bunch of dumb high schoolers and transforming them into engineers (personal experience, not statistically driven).
> Trade schools and practical job-oriented degrees are far more common in India than the US. In the US we like to pretend that everyone is training to become some kind of airy-fairy academic (with our liberal-arts degrees and theory-focused engineering degrees), and yet we also want to pass everyone.
The problem is not with the system; it is the people. A lot of people at seventeen are stupid; the ones in India go blindly do whatever their family tells us them to do (Engineering, Medicine etc); the ones in America make decisions that a 23 year old working in a coffee shop probably regrets. I would argue that less people need to go to school at that age and should probably spend their time working in the real world before figuring out what they want to invest time in school doing.
In my experience recruiting engineers, I have found brighter candidates outside the IIT system more often than not, who have invariably higher levels of extra curricular skills that translate well into excellence in jobs. I am afraid IITs are a mono culture that values academic achievement far more than they ought to.
I haven't; my interviewing of Indian origin candidates (with graduate degrees) in the U.S. has mostly found their ability to think through solutions to be uncorrelated with their undergrad institutions.
I doubt if the IITs are so drastically different from other institutions as you describe them. First off "extra curricular skills" in the way they exist in the U.S. (where an Engineer can take an art class, learn to row or learn about constitutional law) don't necessarily exist in India. Secondly, the IITs (from what people who went there describe it) are not that hard academically on their students: It is fairly easy to do "relatively well". It gets much harder to get perfect grades; it is that percentage of people where you see the monoculture obsessively working all the time. It works out well though; that percentage typically goes to do a PhD in the U.S. where that obsession pays off well.
As you rightly said, you can't take different stream courses in India, but that is where ingenuity shows. People step out of their academics and achieve proficiency in one or more unrelated fields - and since it is not so easy - only the driven few do it - and what I meant is I see it happening more often among non-IIT candidates - and they invariably turn out good. IITians I believe get a (somewhat correct) sense of job security after course which probably makes them focus only on academics. I have worked with many interns from US (MIT and the like), India (IITs and non IITS) and have recruited many - but my best interns and recruits always came from less privileged backgrounds.
I agree completely that the US higher ed (in engineering) is highly idealistic and not job or practical oriented. However, I think this is probably the strongest advantage of the US over everywhere else.
This kind of system is the only way to create engineers capable of dismantling _any_ sort of animal that bestows upon them. Without a big portion (perhaps not the majority though) of students educated this way there is no hope to get some essential, game-changing innovations going.
Picture an educational system full of, say restricted domain Java programmers capable only of producing highly practical business oriented applications. The market rapidly overflows with useless software and workforce and global productivity stalls.
The reality is, most things around us suck. They not only suck a little, they suck royally. And we're not going to get away with pulling any changes with incremental engineering and maintenance. So only with a broad set of skills we can envision the extent to which things suck and devise tools and solutions for them. Only afterwards incremental changes, straightforward engineering and maintenance play a role (admittedly an essential one).
"the US over everywhere else .. This kind of system is the only way to create engineers capable of dismantling _any_ sort of animal that bestows upon them"
From what I have seen this is just not true, or at least a too narrow point of view. First of all I think there are other western countries out there where you get this type of not so practical nor job oriented eductaion. There's enough countries where you can even choose to take the more theoretic engineering approach or go for the more practical approach. Also I doubt every single institution in the US where you can get an engineering degree works that way.
Secondly, that capability is something that you cannot simply learn to anyone out there. I even dare to say some are born with it and some are not.
Finding a job is hard, but hustling and networking is relatively easy. Once people figure this out, then the real global competition will begin. However, I suppose not everyone has the personality to deal with people well.
The problem with a lot of job seekers (which I think is worse with Asians) is they are too focused on the abstractions of that process.
The process in the U.S. starts with the K-12 system and learning habits from the previous generation. It then goes into college, resumes, cover letters, interviews and then the benefits of the comfort of a steady job and benefits. Add to that the perception of success which includes things like the American Dream, house, car, family as well as that steady job.
What people really need to do is focus on the human elements behind these abstractions. A system which isn't running well is a tough nut to crack, but people are easy.
Forget the abstractions. Do things which can land you the job without even dealing with resumes, cover letters and even college. The college diploma may help get you past certain gatekeepers, but a relative few will land you a job all on its own.
Learn the art of hustling. Open up dialogue with real people. Build things which attract notice. Work with others even if you aren't getting paid for it (open source, help people fix problems.) Reach out through LinkedIn, Twitter and other social networking sites. Find a good niche and then find the center of conversation for that niche. Establish yourself as an authority. The list goes on.
The abstractions have been around for a short time relative to how long we have been bartering goods and services. What I love about a developing nation such as the Philippines is that the downtown of a decent sized city is full of people hustling for their daily bread. This makes me feel isolated and out of touch when I'm working from home with only a computer, but I try as much as possible to participate in the virtual hustle and bustle of the niche communities I'm involved in.
Often I don't have a job, rather I have a gig that might be a few hours to a few months. At any given time I usually have multiple gigs going. This is my personal start-up. It may feel uncomfortable to others, but it's much more secure dealing directly with people than it is dealing with abstractions. At least I can get a yes or no answer from a human, I have no idea (and no control) when I submit myself to an abstraction.
What people really need to do is focus on the human elements behind these abstractions. A system which isn't running well is a tough nut to crack, but people are easy.
I think this is not only good advice about getting a job, but business in general. Anyone's job -- employee, consultant, executive, whatever -- can be abstracted into either make people's days better or making them less worse.
20 years back, there were only few (say, 10~20) educational institutions (IITs & Government colleges) around India that offered engineering degrees. So, getting into them were really hard and only few of the bright students could make it into these engineering colleges. And these institutions produced real engineers, who are all now in higher levels at several tech/Govt companies.
Now, there are at least 500 'Engineering' colleges in my state itself (Tamilnadu). Most of them were started by politicians just to make money. Providing quality education is not their objective, but to lure the not-so-bright students join Engineering after taking a huge money from him/her (they call it as 'Donation', but it is mandatory).
So, when these students complete Engineering degree from these so called 'engineering' colleges, they are getting a degree just for the namesake. They are not accumulating the knowledge like an IIT student. Obviously, they struggle to find a good job without proper knowledge.
It is very sad that everything (education, health, even basic necessities like water) has become a business in India. Money-making is the people's only motive and they forget ethics. :(
It's not just Indian degrees. Chinese degrees are similarly worthless. Do not confuse Chinese degrees with Chinese engineers; these are pretty much orthogonal.
Honestly it's quite sad; living here in China makes you realize how awful an educational system can be. It's not the worst system… at least I don't have a way of verifying that its the worst system, but the lack of institutional oversight into ensuring the quality of education (ie the system, except perhaps at the highest levels, is a money sucking, rubber stamping, paper printing factory) means that you have millions of individuals tasked with building bridges when they can't be sure if they can build a table.
It's not just Indian and Chinese degrees. We hired a guy who had a BA in Computer Science (or something like Engineering Science) from Dartmouth (ivy league!) who turned out to be incapable of doing real work. He had trouble implementing linked lists and hash tables.
Why in god's name were you having him implement linked lists and hash tables?
(it is no excuse that he couldn't implement them, especially given you can google tens of thousands of implementations of each in every language imaginable, but I can't for the life of me come up with a reason to create yet-another-implementation in this day and age)
It was probably one of those retarded interview questions. "Show us how you would implement a linked list because that's what you will be doing for a living: implementing links lists!"
The very nature of software is that you should only implement everything only once.
Clearly, this is not conducive to creating a repeatable test. Therefore any test must involve reproducing code that already exists.
If you are going to ask a candidate to reproduce code that already exists, it stands to reason that you would ask them to create something for which the definition is well understood in order to make the question fast to ask and require little explanation.
Therefore a linked list or hash table is a good example of a practical coding question. It's a good test to give you a negative result even if it's not a good test to get a positive result.
No. If you want a test to accurately predict the candidate's job performance, it needs to be a work sample test that represents and is similar to the types of problems the candidate will be solving at that job.
In other words, unless the job is literally about finding creative ways to implement linked lists, then it is near worthless as an interview question. (I say "near worthless" because there is some value in seeing how candidates respond when given questions that are obviously nonsensical or just outright dumb.)
Implementing a linked list is a good test if the job is programming in C. If you can't do it there's a good chance you aren't really a C programmer. It's a weird question if the job doesn't require programming in C.
Why would you though given there are so many implementations that have nice features like sentinels, freelists and are optimized for cache locality, thread-safe and potentially even lock-free?
(a simple struct for your linked list isn't really the implementation for the linked list operations. obviously in C you would define your own next pointer. i seriously doubt this guy had trouble with that part of it.)
For example, one of the ways to implement order independent translucency involves a linked list of fragments in a render target. You cannot really use some external library in a HLSL/GLSL/Cg/whatever shader language you use. Even if you could - since all you need is the very basic list, any overhead from a library would be unacceptable.
Linked lists are ubiquitous in programming, hooking up a library every time you need a linked list is as same as using some library for loops. Sure, you can get some fancy loops with guards and Duff's device built-in, but in some fields of programming you will be laughed out of the job if you ever try to do this.
Because some large percentage of candidates can't handle pointers. If you can't come up with a viable "delete a node from the middle of a linked list" during an interview where you are supposed to program in c then you don't get the job. No, you probably won't need to implement a linked list, but you will need to dereference pointers, and the linked list is an adequate proxy for your ability to understand the most fundamental of systems programming tasks.
Pfft. I feel like I could teach pointers to someone who had a firm grasp of any iterative language in less than 15 minutes.
Heck, I'm pretty sure I could teach pointers to someone who has only worked in matlab occasionally by cut-and-pasting others code in less than 30.
And teaching someone something new during an interview and seeing if they can understand it and then turn around and use it is far more valuable for interviewing the types of people I want to hire than asking them random questions they could find the answer to on google in less than a minute.
I mostly use linked lists when I need to allocate a bunch of stuff and it doesn't have to be contiguous, so I can avoid the cost of the mremap happening in a realloc() call. Linked lists aren't exactly a commonly used data structure by C or C++ programmers, due to their large storage overhead (usually one heap object and two pointers per item) and awful cache locality (heap object headers and list pointers between successive items).
You seem to suggest that there's a wide variety of linked list implementations whose existence you agree with, so at least you agree that some programmers should be making linked list implementations.
the problem with linked list is the cost of cache misses from memory fragmentation killing any iteration. On a current x86 processor a linked list is death for performance. For light insert/deletions work vectors still outperform. However there's always the possibility that "linked list with a twist" may provide a unique solution to a specific problem.
I can't speak for the op, but I would think that writing linked lists is something that pretty much anyone working in performance constrained environments does. No one solution is perfect for all situations, so you end up writing one that is tweaked for your use case. It's not like they're hard to write, so why wouldnt you roll your own?
I don't think linked lists and hash tables show if you are a great programmer or not. But if you CANNOT program those, then I really have no use for you.
I just looked at the Engineering Science degree from Dartmouth, from a brief glance it looks like you could make it out only taking 1 or 2 computer science classes.
I wouldn't expect someone who's taking one computer science class to be able to implement a hash table.
But that's what I have! :( In all seriousness, though, the lesson isn't to examine the degree, but rather to examine the individual and his/her ability (or potential ability).
Related, on a recent riot in china which was caused when authorities tried to crack down on cheating. The rationale of rioters was that since everyone cheats, the crackdown put kids at an unfair advantage:
Well, you could always hire from tier one schools. Even though there are still problems at places like Tsinghua, student quality is still high, and most of them go to the states for grad school. I assume the same is true with IIT.
I have just appeared in third year finals in an engineering college, which happens to be in India. So, I know pretty much about the way things work in `Engineering institutes' in India.
The thing is that, in about last 5 years, number of Institutes have grown so fast that one wouldn't even imagine. The year I took admission in my College(2010), there were about only two colleges in the district I live, where, now, there're 6 colleges now! Most of the politicians have realized that `there is so much money' in Engineering institutes! The don't give a shit about Education quality.
Having really bad score in Entrance exam after 12th grade, I had no option but to take admission in one of such a college.
So, what these `leaders' do, is hire freshers as professors (those who're unable to land a job as a programmer). They lack in knowledge/skills.
Next reason is that, most (almost 99%) of the students who are pursuing degree have their only motive is to - secure their future by having a good job. They don't LEARN. They `remember' things to get a good score. That's their sole purpose. Because, they think having good score will give them a good job.
People can't LEARN things by just reading several books, they have to USE things that they've read. Just to make sure if they are able to use what they've just read (or learned).
Currently there're about 80 students in my class. We had to develop a dynamic website as a mini project in the last semester.
Your people would not believe it, but 99% of the people had it downloaded from Internet (or taken from some former student). Worst thing is, they were only static pages. And even worse is, faculties didn't say a thing while demonstrating those projects!!! I assumed the only reason that could happen is the faculties themselves are utterly lacking in knowledge!
In second year, I wrote a simple packet sniffer and port scanner in C (again, as a mini-project), the `external' professor didn't even see the code, he waster almost half an hour asking me things about Packer Sniffer (He had no idea about what that is!)
The only reason I can think if this unemployment is the quality of Engineers..
As a current undergrad from India who chose to seek an education abroad, I probably have a unique perspective on this.
1) Yes, most Indians who graduate from their colleges often are lacking quite horrifically in their knowledge as compared to a similar non-Indian counterpart, primarily because the culture within the educational system is largely based around acquiring short term knowledge and then never looking back.
While in the Canadian system, I found it quite pleasant that everything is gradually built from what you learn in your first year, the Indian system is modularized and disparate, with large parts of what they learn forgotten in their earlier undergraduate years.
2) There is a vast variation between the quality of universities in India, however even the IITs are definitely not the same thing anymore. My father who went to IIT gave me the impression that it was definitely a centre for higher learning, where the students actually seriously thought critically about what they were studying, whereas now (through the descriptions of most of my friends and colleagues), they have been reduced to places where one no longer has such a luxury, as their marks matter more than the actual knowledge they accumulate; this wouldn't be much of a problem if the courses actually aligned with real world problems, however the courses deal are largely tangential to real hard work that one might see in academia or industry.
3) In contrast to this, American (Or Canadian) universities offer a much more comprehensive education, and while definitely relying more on the initiative of the particular student, they generally encourage independent critical thinking, and don't place much emphasis on a number received from a three hour exam. This I think is the crucial difference between graduates of these universities and graduates from Indian universities, those who actually go on to do something important would have had a much harder time in an Indian university than a non-Indian one.
I should also probably state for completeness that I am not pursuing and Engineering degree, and I am a physics major, however I don't believe that makes much of what I have said irrelevant.
Perhaps some Indians who have been through some of these institutions would be able comment on this... my impression as an outsider from a few months in India (including Bangalore, Chennai, etc.) was that its education systems, particularly at the lower echelons of non-university courses, still heavily target rote learning. I saw many advertisements for courses teaching specific software; little evidence of broader education. Similarly, the HR market seemed to have a certain post-colonial obsession shared with bureaucrats everywhere - re: checking boxes and processing people as products ("you need <x> to be considered for <y>") rather than engaging candidates more openly on the basis of real merits. This two-pronged attack on the individual is what awaits the Indian graduate as welcome to a life of nine-to-five, but is to some extent common to the impression I have felt in other parts of the developing world. Perhaps my own experiences have been luckier, but where an interview has been gained in Australia, the UK or US I have always felt that employers were more interested in demonstrated personal capacity than a candidate's nominal value in terms of third party paper accrual. On the plus side, those scoring jobs in this sector in India do seem to be afforded relative respect and income versus much of the population, so it's not all bad.
I graduated five years ago; my college (among 800) colleges in the southern state of Tamil Nadu was one of the best among the private colleges. This meant that the students in the college used to be so good at rote learning that they used to get good grades in the statewide exams. This is how things work everywhere; the only difference between the IITs and such colleges is that the former had people who were more driven to be successful.
The average person who studied at these private colleges would invariably get a job in one of the offshore development firms. What type of Engineer you were didn't matter; the requirement was that you were able to do well in the system of rote learning. Today, the pipeline is still flooded with people trying to do the same thing; the only problem is that the offshore development firms are more picky. They pick a small subset of those 800 colleges and hire people from there. Those who are unlucky enough not to have predicted what this subset would be 4 years in advance are fucked; they are forced to figure out a new system of surviving, those that can do, the others become statistics.
While this article particularly pertains to India, I think it can be seen in a more broader sense. If you go into a degree program because of social pressure or you think it is a path to a decent job, yet you have no real interest or passion for what you are doing, you are likely to fail.
Even decent CS/CE programs here in the states have paths through them that allow you to graduate, but at the end of the day, if you are going through the motions, what do you learn?
Good engineers (and engineering students) use provided opportunities to learn and if they are hamstrung by their environment will seeks out additional learning opportunities.
Anyone who goes through the motions, has little excitement or interest, and lacks intellectual curiosity is probably someone you don't want to hire.
If you go into a degree program because of social pressure or you think it is a path to a decent job, yet you have no real interest or passion for what you are doing, you are likely to fail.
I've often failed because I care too much.
If you actually like programming and care about doing your work well, you'll probably struggle with authority throughout your career in the software industry, and be utterly intolerant (were it not for being stuck in it) of subordinate software bullshit by age 27 or so.
Ninety percent of the people out there are going through the motions and they have much happier lives than the people who actually care, at least in most of the places I've seen. Creativity and drive are good for the world, not the individual.
I've read many of your posts and comments, and generally agree with a lot of what you write.
Regarding caring, there are two types in this industry that come to mind -- caring about the type of work you do and continually improving your skills; and caring about what the company you are working for is building and hoping it succeeds. I was referencing the first. I have also gone too far down the path of the second, to the detriment of my own quality of life.
Creativity and drive to better one's self is important. Expending unappreciated/unrewarded energy for a company that isn't investing back in you is a losing endeavor.
You won't believe how bad the ground situation until you see yourself happening. I have been in Noida since one month and some really awful things I saw.
1) Low Scale IT companies are exploiting such graduates by paying them awfully bad salaries to their employees especially Fresh graduates. In fact people are not expecting salaries above 10-15K INR / month. To translate into better perspective, this salary is marginally more than what a Pani-Puri stall may earn.
2) Some people are being made to work for very long shifts (almost ~10hrs) and also have the obligation to fulfill the any shift, may be night, evening or noon.
3) Some crooked IT companies and code academies are offering training in ABC and promising jobs after that period but once they get their sum, they train them with cheap IT engineers and simply deny any obligation to get them placed.
4) Joblessness frustrates people and grads start thinking of migrating to any other city like Bangalore but the situation hardly changes. In fact, Bangalore had become a low IQ hub from what I hear.
Certainly, the problem is with parents who got him enrolled into random college into CS/IT branches because they looked promising that time, and with grads who don't realize that some jobs are not for everyone and refuse to widen their perspective.
I wouldn't go and make blanket statement as saying 'Indian degrees are useless'. But in most cases, its not just Indian colleges and universities. A course only prepares you for an exam or at most clearing a interview.
No body teaches you to build things. This is something you need to learn. And you need to learn it by actually building things. It can't be learned by attending lectures, doing assignments, small time projects, passing exams or clearing interviews. You actually need to go out, talk to people find the problems they face and provide a solution to it. It needs to have definite end goal, a tough timeline. And then when you go out and spend 17 hrs/day going round in circles or failures-success, triumph, enthusiasm, joy, sadness, arguments, debates, consensus. That is when you learn to build things.
When you learn to build things you realize, books, degrees, colleges don't matter. In fact there is an opinion that most people college was useless, they could have rather been spending all those years building something.
As an Indian, I started my official career working at a call center. Before that I have done a lot of small time jobs. Its a journey. In India you need to first work hard to create a opportunity then you need work hard on the opportunity. At every stage, and even money was never enough. I am not close to earning big money- But I've gone from attending reporting office at 1 AM in the morning to staying up till 1 AM solving problems with software.
If you are not finding a job, get into what ever you can. Then start up on the side. Learn to code, to build. Then make incremental progress towards that grand goal.
A small percentage of Indians fall into the higher income group while the majority continue to languish in poverty without even the hope of a squared meal the next day. One of most easiest way to jump from a disadvantaged background to the higher income group is an engineering degree in India. Parents want their kids to become engineers, doctors and chartered accountants not because they think their kids love these professions but rather because it gives them a ticket of sorts to ensure a safe financial future. The parents aren't completely wrong as they themselves have spent an entire generation struggling through the ranks to raise their children. They dream of a better future for their kids than the ones they had. Once this realization set in, mass engineering enrollments took place. To supplement these mass enrollments, engineering universities were spawned which produced engineers like a factory. Alas the break even point has come - the market can only support so much engineering graduates. The over reliance of the market on service based jobs coupled with the thought process which links an engineering degree to a better quality life has led to the current state. Yes, things are changing - I know of two best companies in the world who have set up their research labs in India in the last 12 months but the change is too slow for the supply. Something will give in, one point or the other.
While I agree with most of your comment, your statement that majority languish in poverty without even hope of a squared meal quite hyperbolic. Yes in India poverty level is high, but it is not that dire as your above statement sounds.
I am wondering if it is down for other 'outsourcing countries' as well. Like Ukraine, Russia, Romania etc. I was working as an outsourcing consultant from 1996 until a few years ago and when advising or staffing companies, one thing remained constant during that time; Indian made software/code quality was always below (similar priced) east (and since the crisis also south) EU coders.
Yes, I do understand there are exceptions, but in general, if I put a random coder from India (living and staying 'forever' in India; people who moved to the west score much better) with 5 years experience and a degree against, say, a random Portugese coder with the same experience and a degree AND the same price per hour, the PT person invariably wins on quality. Quality being, in this case because i'm a coder, readability of code, use of tools, use of good style, amount of code smells, etc.
So I would think the education system is not working well; my favorite pet peeve is that bachelors/masters (in CS) from India, when interviewed, generally have no idea what recursion is or how/why to use it. Which often amounts to the most 'interesting' and unreadable code fragments you have ever seen.
In their attempt to find jobs, many jobless engineers are further exploited by another industry - training institutes that promise placements and jobs. These institutes offer courses on Java/.NET, SAP, Cognos, Oracle etc. They charge a ton, their trainers are no good and the students gain nothing from these. More recently, private engineering colleges are asking their students to base their final year projects on IEEE research papers. And there is now a large number of training institutes that offer readymade "IEEE Projects" to students for a cost.
I happen to know many such engineers who are lacking skills or grades or both. Some of these people happen to be distant relatives or family acquaintances. The problem isn't just with the engineering colleges. Many such graduates lack understanding of basic sciences to have studied engineering in the first place (due to many factors including their own limitations, bad primary/secondary education etc). Few who manage to learn enough to be "employable" are stuck because there are no campus placements in their college. It is incredibly hard to find a job if there are no campus placements. Companies don't have the resources to go to every such college when most of the graduates passing out are not employable.
I have been on the board of studies of two engineering colleges as an industry representative for past few years. There is a meeting every year to revise the course content but nothing useful comes out of it. In such meetings, I have strongly advocated that we introduce more hands on assignments/mini projects, ensure assignments/projects are not copied, lab exams are not based on a fixed set of publicly questions (students already know these questions). In one such meeting, suggestion was shot down with the excuse that if a mini-project is introduced, another set of institutes will come up to help students work around the system. Sure, preventing this would mean that the staff get their act right!
I'm sorry if this sounds selfish or xenophobic but this is in all honestly such a relief. I graduated college in 2008 and I remember being incredibly scared all the programming jobs were going to be outsourced to India. I remember blowing an interview trying to get the employer to prove to me he wouldn't outsource my job then took the first stable job I could find (even though I was never really happy there) for fear of not being able to find another one. Now that we've made it through the financial disaster and computer science jobs in this country is at an all time high I feel a giant weight lifted off of my shoulders.
I am a typical Indian engineer who has just recently graduated ( This Year) and I am pissed off at the article.
1. The original Economic Times article points that a large number of engineers are struggling to get placed but fails to give any satisfying evidence.
2. The article also only takes in account the candidates that got placed through college placement, it entirely disregards the engineers who may have gotten job through other means or those who may have started a business of their own.
3. Compare the hiring data that is shown for two universities - For IIT it is fairly consistent, For Amity, as the article mentions the placements are currently underway in the institute so it is not final data.
4. It says that India's IT industry will be hiring fewer people this year however it doesn't take into account other Indian industries which saw a boom in hiring this year - such as the Indian auto industry. In fact the article is mainly or as I suspect solely based on the IT industry data.
To conclude I think the Economic Times article only convinces me of one thing - rate of increase in engineers in India is proportional to it's population growth rate which I should think is the natural course of things.
Working with many Indian 'engineers', i can say we'd be better off if there were fewer of them. Their typical approach to software development is proverbial. I know there are good ones, but they mostly run their own outsourcing shops, or are already in the U.S.
Maybe education is to blame in part, but mostly it's because of poverty. In a first world country, one can pursue a lot of occupations ending up with nearly same living standard - so the choice depends on one's attitude. If a guy is a U.S. programmer you can be sure he does it because he likes hacking, there is little reason to go there otherwise, a lot of occupations get the same living, or better. In India there is little one can do except getting a non-commoditized job for an export-oriented business, which mostly means engineering. So crowds of people are struggling to get these diplomas simply out of greed, with no passion for what they are supposed to do. I don't think this can be fixed until India pulls itself out of poverty to give people more career choice.
How to qualify as one of the million "engineers"? By having a diploma? Or by being a person who's engineering stuff?
I think if you are really "engineering stuff" in ICT on a daily basis that soon enough you can attract some employers attention. Only passing the tests for a school and having "core Java" next to "MS Word/Excel" on your resume does not land you a job. Is that a bad thing?
Final note: I found that in India many families (often fathers) choose the study direction for their children; this also grows engineers-on-paper that do not really love engineering so much. Companies I know avoid hiring these.
"Some end up in the US on work visas because the US citizens purportedly do not have the right skills. In reality, there are plenty of skills here, but foreign workers will work for a lot less. Since companies can hire a programmer from India or Russia for 1/3 the cost of a US worker, that's what happens."
This is what tech companies need to iron out before the American public is going to go along with increasing H1B Visas
I think that is the case. There is no difference between the education system in India 300 years ago and now. Then, you had people memorizing poems about daffodils and daisies in order to get an arts degree. This would then mean that they could become low level clerks in a colonial administration. Today, you have people memorizing what a transistor is or a linked list in order to become engineers in an offshore development firm.
This mirrors my opinion, every country has subpar students. I wonder how many of these students are actually quality engineers. Another explanation is that they are graduating from institutes that are not demanding or preparing them for real world challenges.
Seems like a problem that will figure itself out over time, my experience has been that the industry has a very high attrition rate for those who are under talented. If you love what you do and actually possess skill the long term prospects aren't terrible in any kind of way. Of course when I say 'talent', I mean the strategic onus is on the individual to find higher profile work.
+1 problem with the education system, if the hustle is that CS is a golden ticket or some crap like that. The gems will always shine and get snatched up by more mature players.
I don't think this is a reflection of the economy. It's a reflection of:
1. the educational system
2. the menial tasks outsourced to India
3. the poor development practices of Indian companies
All of them lead to low-quality programmers. This is a problem worldwide as well. I've been hiring as many people as I possibly can for the last 6 months (worldwide, between $15 and $60/hr). I've hired about 5 people.
This is the problem with selling education primarily as a means to gain monetary wealth. You'll get lots of people who just want that piece of paper at the end -- and this effect will be increased in countries where monetary wealth is relatively uncommon.
And yet when I look for a qualified developer, I need to sift through 50 resumes to land one eligible candidate! Such is the quality right now - and few engineers have aptitude and expertise for job market.
basic problem solving skills, familiarity with a mainstream language and basic systems knowledge is what I look for in a fresher candidate. I only look through alumni networks and intern forums and shun job portals.
Source? Most tech companies I've worked at here in the Bay Area have either a few contracted engineers in developing countries for a reduced rate, or contact with foreign firms that have very low rates. It's a global market, man.
There is a difference between contracting work offshore (which can be done for pennies) to bringing contractors here (there are specific rules; the upshot of which means that they are not as cheap as one might imagine).
About half way through this video (its from the Australian ABC) there's hidden footage of a lawyer in the US teaching employers how get around hiring laws.
"In May, 2013 the Canadian Broadcasting Corporation, in its extensive coverage of the hiring of temporary foreign workers in Canada and the unemployment issues faced by Canadians , reported that TCS (Tata Consultancy Services) rarely hires skilled experienced Canadians while advertising open positions in Canada." - http://en.wikipedia.org/wiki/Tata_Consultancy_Services#Hirin...
Tata Consultancy Services is one of India's biggest IT company's.
In Australia its exploitation of 457 visa's. Which is if you have adequately looked for locally for talent but cant find any; you can hire abroad. However as seen in the video, the companies don't look adequately and import cheaper talent.
If I remember correctly Robert Cringely has talked about similar issues with IBM and the US.
My views on Indian sector maybe a little outdated and mostly Bangalore centric, but here they are:
a. The IT and Outsourcing boom happened in the 2000s and the Indian IT sector started outpacing all other industries and non-IT companies began to suffer. For example, during the 80s and 90s, there was demand for electrical and electronic engineers in state owned corps like BEL and there were other players such as Onida, Dyanora and Kirloskar. Then globalization happened - suddenly in came Infosys and Wipro with unheard of pay scales and they started sucking in the talent. Foreign players came into the electronic appliances space and non-IT companies began to lose talent heavily. They never were in a position to compete with Samsung etc., and got completely wiped out. As a result, in the 2000s, most engineers irrespective of their specialization (Computer Science, Electrical, Civil) would go towards an IT space looking for a job.
b. Indian IT is mostly service based. As a result, they are looking to maximize value at all times. They don't care if you can't think on your own or need supervision. As such, the idea is that if you are good enough to graduate with an engineering degree, you are good enough to succeed in an Indian IT job. There are no true technical interviews, there are no true behavioral interviews. They are looking for molds. The same guys go on to become supervisors and they in turn look for similar traits when they recruit.
c. I seem to be the only one always complaining about this but Indians in general are not risk taking. They seem more content working for a Wipro or an Infosys than taking the plunge to start their own companies. The problems here are multi-prong. Parents are more focused on ensuring their kids success relative to others. The whole thing is based on a giant mediocrity scale. As long as I earn more than my friends or their friends daughters and sons, parents are happy. Inheritance, wealth, prestige are far more important and play a huge role in related incidents such as marriage, political influences, etc., Part time jobs will get you treated like you are below the poverty line. As a result, failure is not an option. Start-up mentality is non-existent in most engineering colleges. In fact the whole setup is against startups. Opportunities are extremely hard to create. The political hoops, the societal hoops turn most people off. No start-up companies in turn leads to lesser product based companies and more IT service based. And as globalization progresses further, the cost differentials and the drops in quality cause a progressive decrease in number of jobs outsourced etc., So, of course the job market is going to suffer.
d. The last part is around the Indian Education system. I came from a pretty good Univ and again, the whole thing was set on mediocrity. Labs were strictly controlled. You couldn't use equipment when lab supervisors were not around and they were in general never around unless they had a class going on. Most programming courses I took hardly had any practical implications. I thought I was terrible at programming only to later realize that it was taught to me in a ridiculously stupid way by professors whose only knowledge of programming came from Indian authored text books which in turn acted as guidebooks for technical interviews to Indian IT Service Companies. So, it was a giant vicious cycle. My final coding test was to swap a set of numbers using pointers and I could never understand the practical implications of any of it. My Professors used employment statistics for comparisons with other educational institutions and between students and constantly emphasized how hard work would get you through an Infosys. At the same time education hardly costs anything compared to what is spent in the US. The Govt authorization of educational institutions is a giant political scam in itself and requirements are fairly minimal. So institutions are mostly ill equipped and are focused on quantity than quality. You will never know your relative worth in an Indian educational system because there is already a pre-existing mediocrity scale for that.
>>>>by professors whose only knowledge of programming came from Indian authored text books which in turn acted as guidebooks for technical interviews to Indian IT Service Companies.
I feel that the difference in the caliber of the instructors is a major factor. Majority of my lecturers were fresh out of college. There wasn't a single one in the whole computer science department who has published a paper. Compare this to the publish or perish situation in the US.
(I did my Bacherlors from a tier 3 college in India and Masters from a US university.)
Author takes into example two extreme institutes: IIT Bombay and Amity. They are the extremes in quality. The former is from the upper part of the extreme.
What you need to open an engineering college in India?
-Money and land. It's al right if you do not have adequate amount of land but you have money. [A]
How do you get the license?
-You have to pay for it. Fees and then the mandatory bribe.[B]
Are all the engineering colleges(you can read tech schools) are like these?
-Government - no, almost none. Almost all are good. They are usually free of [A] and [B] mentioned above and quality of education and students(at the time of entry) is exponentially better than most of private ones.
Private - 90% or more among these colleges can be simply labelled as garbage even though they have all the shiny pretty campuses which actually few have.
How do you admit students?
-If you are one of the TOP ones - {IITs - call them Ivy tier-1}, {NITs, IIITs - call them Ivy tier 1.5 - 2}, {some better private and Govt. colleges, maybe 10-15 in entire India - they range from Ivy tier 1.5 to 3} - then you admit students based on entrance exams and/or marks obtained in 10+2 exam(both are considered now).
If you are are among the rest then it's donation based. Donation is a form of bribe/development fee or whatever you call it. You pay a hefty fee either directly to the institute or through agents/crooks/thugs blah-blah and join that institute to get a B Tech/BE[1] degree at the end of 4 years. A degree is almost 100% guaranteed at the end of the year even though you can't figure out what the fuck is O(n)[2] and I mean just the definition without even understanding it.
Do they get jobs?
-Yes. Many(most of them) do. If not via campus selection then trying from the outside. Some get in 2-3-4 years. A friend of mine got a job 2 months back. 3 years after leaving the college. In the mean time he had collected 4-5 fake experiences and show a particular experience papers for that kind of jobs. There are companies offering this service they even pass background checks. Hiring is taken care by services companies. Forget Google, Amazon, MS, Fb, Start-ups blah-blah. It's Infosys, Wipro, TCS, Patni, CSC, Cognizant, Accenture. They hire in thousands. There are jokes in colleges like this year Infy is coming with a bus or train.
Their interview process is great. You are asked questions like "Do you have a girl friend?", "Which city you would prefer to join in?", "and why?", "Who is your favourite sportsman?" -> answer is a cricketer almost always, "Favourite sports" -> it's Cricket and then maybe he will talk about it. Questions like this. No, you are not interviewed for your coding skills. It's just a luck or random game. Some get in some don't. Don't ask why. Earlier I used to get angry why they don't check coding skills but then I realized they don't need that.
So, students don't learn or enhance their skills because it's not needed.
What is AICTE then? Don't they check it?
-Well, other than the officialese[3] it's a shop where you can buy anything if you can pay the right price. It personifies Indian bureaucratic corruption, babudom and how almost every system in India is rotten at the core/root and people are watering the tip or at least pretending to do so.
[1] Bachelor of Technology/Engineering and it really doesn't matter whether it's an E or a T.
[2] I am a CS guy so I skipped Mechanical, EE, Chemical (&c) equivalents.
tl;dr: Education in Indian engineering colleges is a farce that is why students don't get jobs when their skills are tested and they can't create jobs either. Skills again.
1. This is incredibly anecdotal, but the half a dozen people I know who have come from Indian educational backgrounds (specifically IT programs) did not have much to show with their diplomas. These are all incredibly bright people who seemed to start out levels behind their otherwise peers, and often rely (as we all do) on online material to make up for gaping flaws in their knowledge. From the source article:
Hiring is slowing down because recruiters are changing their strategy. "An engineering degree is a poor proxy for your education and employment skills," says Manish Sabharwal, chairman of TeamLease, a temp staffing firm.
"The world of work is evolving... employers increasingly don't care what you know, they focus on what you can do with that knowledge." While dozens of new institutes have been established in the past six or eight years, he claims that over a third of them are empty and perhaps they are "worth more dead (for the real estate they sit on) than alive."
This suggests to me that many Indian STEM degrees are not an adequate proxy for value (just the same as many American STEM degrees.)
2. I wish decentralized certification systems became a bigger thing. Personally, I would love to be able to take a definitive test on whether or not I knew Python well enough to spend forty hours a week working in Python. Make it open notes and timed, like the real world is. I know this used to be a big thing in the 90's, but that was before my time -- why did this go out of style? Did the rapid advancement and evolution of the industry prove the system prohibitively time/effort-consuming?