Over 80% of engineering graduates in India unemployable

The problem isn't with the students. It's just that we Indians need guidance and time to evolve to the point where we are comfortable teaching ourselves.

I don't feel this is a big issue. Building good fundamentals in the early stages of education will ensure that students know how to read, learn and apply. It all starts with how you are imparted basic education early in your life. Of all the examples I have seen, people who were taught early on to study for knowledge than study to prepare for exams, they had no trouble in teaching themselves when in college. The trouble is that both parents and teachers don't take the time to teach properly and hence average or less than average students become complacent and worry only about scoring rather than gaining knowledge.
My brother had learned reading both Hindi and English at home because he used to see me read story books and didn't want to wait for Mom to read the same to him. So he ended up applying himself and picked up reading both languages on his own (with some help from my parents) before they were taught at school.
I agree that the it's largely the fault of the Indian system. But whom do we blame for the lack of gumption. Mastering difficult concepts requires passion; hard-work aloe won't be enough.

As I have pointed out above, this lack of gumption in higher education is because emphasis was on scoring marks in their early education days. Even my parents were slightly at fault for the same but I could study and understand from just books from quite early on and due to relatively easy workload issues didn't crop up for me till I entered 11th standard.
The situation unraveled very quickly from that point. I used to have quite a few extra-curricular activities ranging from sports to music to public speaking that I used to enjoy a lot. Studying two course loads (one for CBSE and another for entrance exams) took a toll on me. The big issue is the lack of proper guidance when one enters 11th standard. Very few people have an idea of what their lives would become from that point onwards. The school teachers were only interested in making us memorize derivations (Physics) or nomenclatures (Chemistry), while the tution teachers were only interested in making us solve numericals. No one bothered with making us understand the concepts. With very little time on my hands, and lack of access to Internet, I , for the first time, wasn't able to just study by my own from books.
The only concept I remember from my 11th and 12th is the concept of surface tension and that was because I calculated the surface tension of water for my 12th class Physics project. That concept is still clear to me because we actually applied our minds and replicated the experiment and that is how we should have been taught in the first place.

Same thing happened when my brother started studying Physics again when developing his games. He told me that he finally understood projectile motion and collisions properly because he was studying and applying the concepts at the same time.
 
Okay. I tried to stay out of it but I'm tired of seeing this bullshit report again and again.

Yes, many IT graduates are not capable of writing good code. However Its not 95% or 80% as these "studies" claim. Your anecdotal evidence may make you think its 90% or whatever but its simply not the case. For every incompetent IT student you encounter, I can show you same number of incompetent CS students or mechanical students or commerce students.

This latest "study" is done by Aspiring Minds, a company which provides "employability evaluation and certification company" as they claim. In short, they provide technical courses for graduates or soon to be graduates.

This study is meant to portray that all graduates are unemployable and hence they should come to their coaching center and join their courses. Creating a perception that every graduate is incompetent will only help their company.
 
Yes, many IT graduates are not capable of writing good code. However Its not 95% or 80% as these "studies" claim. Your anecdotal evidence may make you think its 90% or whatever but its simply not the case.

Last year, my company visited 26 campuses of good repute for recruitment and could not hire a single person in any of them. We could only find a small handful people in few other campuses. The basic requirement for the jobs is knowing the very basic fundamentals of programming and capability to learn by themselves. We shun the process of teaching programming fundamentals as on job training like some companies do. So yeah, even if we cannot give a percentage, I can say that most of the output of colleges in this country is rubbish.

For every incompetent IT student you encounter, I can show you same number of incompetent CS students or mechanical students or commerce students.

Which is actually my point, you can show incompetency all over, but not competency which is in very short supply. Programming field is different because you don't have to rely on college education. All you need to again competency is a high school level education, will to learn and access to a computer which a lot of people these days have access to. But students are too busy using them for their social media activity or watching porn to bother with making themselves marketable for jobs.

Our generations too didn't have competent teachers and a lot didn't have access to internet like these days. But I know many people who became competent with programming or other fields on their own.

This latest "study" is done by Aspiring Minds, a company which provides "employability evaluation and certification company" as they claim. In short, they provide technical courses for graduates or soon to be graduates.

This study is meant to portray that all graduates are unemployable and hence they should come to their coaching center and join their courses. Creating a perception that every graduate is incompetent will only help their company.

Of course, its meant to market their own company, but the fact remains that these statistics are true. My company had the same experience when we held programming tests as part of the screening process.
 
^^ Yes, there is more to CS, but the basic fundamentals are like the first steps of the programming ladder. Sorry, but its hard for me to believe that there is some "genius programmer" hanging high up in the air without ever having climbed the basic steps to get there.

Its not like I ask them to balance a binary tree or delete a node from a linked linked list or ask them write down some complex algorithm that they have little chance of using on the job. I don't care about how good their theory is but rather about how good they can use their fundamentals practically.

I ask for something very basic like search or sorting though a list. There are people who never heard of binary search and many could not implement it. Most people could not write a simple bubble sort. In fact, I have had people who could not write a code snippet to print an array of numbers using a loop and he had 6 years experience. Most people did not know the syntax or semantics of the programming language that they have been working with. People have failed to write a simple switch construct or use ternary operator for a conditional statement. A Java programmer is stumped when I when I ask about the difference between an abstract class and an interface. They don't have a clue why they have been using abstract classes or interfaces. One guy told me that the skeleton code is generated and given to them by the architecture team and they don't bother about one or the other.

I also used to give a small 80 line program listing with a variety of syntactical and logical bugs and ask them to fix it. Many people were unable to get the syntax bugs sorted out and get the program to compile leave alone the logical bugs. As for writing a program from scratch given an abstract problem, forget it because its just going to be waste of time.

A person with 8~10 years experience who professes experience with distributing caching with memcahced or hazelcast also ought to know the basic fundamentals of what a cache is. How is this person expected to solve a problem related to caching in a large scale system when they don't know the fundamentals of what a cache is. Knowing a ready made library or software tool is not enough.

Take the resume of any Indian programmer and you will find a big list of every small thing that the programmer has supposedly used over his career, but check deeper and you will know that they don't have a clue what they were doing with those tools. This is why our programmers have gained a reputation for broken systems made by programmers who don't understand the things they were using.

Just holding a wrench doesn't make you a qualified plumber and you are unlikely to trust somebody to fix the plumbing in your house just because they are holding a wrench. You know what happens when you do that. The same holds true for programming too. So, if you are telling me that there are abstract geniuses up there hanging in the air without the basic fundamentals, let them remain there, we need people who have firm roots on the ground.
 
Training is a continuous process that begins with on-the-job training. To shun the idea of on-the-job training is to curb the growth of your employees. How would a software development company, like the one you work for, expect to groom developers/programmers who can compete with the best from the rest of the world? You can't keep pointing fingers at everyone and still expect to shield yourself from the problem. Not in a country like India.

Of course learning is a continuous process for everybody. But sorry, you are expected to drag your own weight once you are on the job. We have job orientation program to familiarize people with the domain and training programs for new technologies for people (both new and veteran) to enroll in. There are people always ready to help. However, teaching you basics of Java or C++ programming for first 6 months as part of orientation is not going to happen. Your 4~6 years of college education is for that. If people have wasted all those years, its unlikely that 6 month's more would be any different. As proof, you can always see the photos of people sleeping in Infy or TCS class room training programs.
 
this thread is bizarre!
engineering graduates, job availability to coding and programming operators.
exactly where us Indians lose sight of the discussion and get into a perennial loop :)
 
How would you architect an entire system using a bubble sort? We've all abused the ternary operator at some point in our careers. How long do you think it would take bring someone up to speed on caching fundamentals? I doubt it would take as long as teaching someone how to use a library.

The question is how would a person who doesn't even know the basic fundamentals enough to write a simple bubble sort or know the difference between a abstract class and an interface be able to design and implement a large scale system on their own?

Yes, it wouldn't take long to learn the fundamentals of caching when you are claiming to have used caching systems like memcached. So during an interview, I expect candidates to know and answer questions about caching rather than about the caching libraries they have used and it is to show that they know caching enough to be able to use a entirely different caching library/system and still be able to figure out and solve problems/challenges associated with caching or distributed caching. Not knowing that shows me that they have no interest in learning about the stuff they claimed to have used. Needless to say, when they don't know caching, they don't really know memcached either and they just used it because probably somebody asked them to as part of the solution. In our interviews, we don't focus on how well a candidate knows a library or framework, but rather the underlying fundamental concepts.


I don't know what has given you the impression that geniuses have their head stuck up in the air but it isn't true.

No, I did't say that. You are the one who suggested that there are programming geniuses out there that don't know or care about the most basic fundamentals of programming (like data structures and algorithms). That is what I meant by hanging in the air. Without a solid foundation from the ground, one does not make a good programmer.

There is a reason why students of IT/CS have DS/Algorithms early in their curriculum. Because they form the core fundamentals for programming regardless of language and regardless of the kind of systems you build. You may not need to implement a binary search tree or a B+ tree from scratch in everyday programming on the job, but you are still using, lists, sets, maps, hashing, queues, priority queues etc in your large scale systems. It pays to know how they work what are the heavy operations and which is suited where. It pays to know when to use quick sort and when to use a different method. For instance, if i have a data set that has to be sorted and displayed and there are new records coming from server over time that need to be merged, does it make sense to perform a quick sort on entire data set every time? Many of the implementation issues in the large scale systems often end up hinging on small fundamental things like this. Ultimately, every class you create is the template of a data structure and every method is an algorithm. Some times, you build on existing patterns and other times you may create your own custom types. but a complex system does not exist without these fundamental building blocks.
 
This might turn into a long debate but sometimes I wonder if the people writing these articles understand the purpose of education? Surprisingly, it is not to make people employable or give them hefty salaries (many people tend to calculate ROE when selecting MBA).

So what really is the purpose of education? It is to instill people with big ideas of everything, in case of a specialized degree like say CS it is to instill not only programming but other related subjects too - like say DB, QA etc. For people to get specialized in a particular stream like say Databases they need to go study further or learn on the job. But how many do that? Not many because the same companies lamenting lack of talent hire people who are basically generalists. If there is an easy way out why should people consider higher education at all?

The article does point out the need for training programs but whose responsibility is that? If you look at Infosys they hire people en-masse and then train them to get their job done. Sure people can debate as to what kind of work these people get eventually but that would be a more controversial headline - 80% of the IT jobs are.....
 
How can you conclude that candidates who do not clear your interview are uninterested just because they can't answer your data structure/algorithms questions? Can you please list some interesting caching questions you would ask during an interview?

If you put some topic on your resume and highlight it as your strong area, but can't answer questions on the very fundamentals of it, then it means you have not put any real interest in learning about it. You either not mention such things on your resume at all or be ready to answer questions. Questions around caching could be anything from mentioning a few types of caching/eviction policies, implementations, defining a basic cache class, to potential problems that one can face while dealing with multi level distributed caches.

I'll repeat myself again - there is a big problem in the Indian IT industry because Indian developers do not know where data structures/algorithms end and where real software development begins.

I think you have some major confusion. You don't seem to realize that software is itself data structures and algorithms? Whether its what you seem to consider "real software" or what ever "non-real software" is in your opinion, data structures and algorithms are the basic building blocks of programming. Every class you design and every method you write is a manifestation of data structures and algorithms. ADT like list, stack, queue, sets, maps, trees etc are abstract representations of some commonly occurring patterns of data representation and operations on it which can be translated into a combination of data structures and methods. A good programmer with strong fundamentals will be able to identify the patterns in the problems he is required to solve and will be able to use the right approach whether its implementing code from scratch or using some library, but the point is that even if you want to use a list, set, stack or queue from a library, you need to know what they are meant for and the kind of problems they fit. Otherwise you are just fumbling around trying to solve a problem that is already well defined and solved.

Knowledge of such things is even more important when you are building complex system. It is a big deal when you write code with 3 or 4 level nested loops for attaining things that have already well defined efficient approaches. Every such mistake is going to cost money and other resources. We have had situations where company lost few hundred thousand USD in revenues in just a few hours because of such badly written code.
 
Not exactly into software, from what i have seen, lack of strong fundamentals is a serious hurdle for people to relate and understand practical stuff. One of the issues i have felt in the schooling and colleges is that there is too much spoon feeding. The natural learning abilities of a student is supressed and they are limited to academics only.
 
So this topic has risen again... I do agree with everyone saying that Most of the Indian Engineers are weak in their fundamentals. But lets speak about people who are in the system already, I feel they are the point of discussion in this thread.

The number of people who think/claim they are better engineers than the others.... :meh::meh::meh::meh:. Good for you mates. But as said before, they have a place in the chain. Companies make money off them.

Point: The low value grunt work serves a purpose. No everyone needs to or expected to design or make ground breaking innovations. It great if you can.

People who claim that TCS , Infosys, Wipro does cheap work are clearly happy in their bubble. I personally know a team from Infosys that is developing a key sub system for Boeing Seattle. I mean, there are principals from both Infy and Boeing.
That principal who happens to be a brown curry smelling Indian on H1b in US, his words:rolleyes:, pulls 250k+ USD per year. 250K, Infosys, H1B. I connected with him through a reddit subgroup. Unrelated, He drives a sweet ass silver SLS AMG :cool::cool:.

I also know someone through my DH in TCS who worked for BOA. He designed their payment clearance module.

Point: There are Indians who are doing brilliant work from so called body shops and getting paid heftily as well.

Here is my take on this H1B debacle and the tonnes of articles suddenly coming up:

Blatant racism against the Indians. Indian companies is gaming the system they designed. Solution, change the system. Everyone is open for a H1B overhaul. Just make it happen already.

Question should be why ALL the Indian H1B Employees being shined a light on? Yes. I do understand Indian companies are the culprit. But they have clients who do business with them.
Yes I also understand some Indians make fake resumes. But why are they passing the lottery you set up?

Why are the Indians alone have such back log for GC? Why are you making Indians depend on H1B?
 
I said this many times and I will say it again. Languages and datastructures etc... are just tools. anyone can learn them if they have the right attitude and smart enough. That is what I look for in people. right attitude and problem solving skills. rest of it is all manageable. you can put blame on people or the institutes or culture.

On the argument of data structures, I always say that that is a job of mathematician, and there are already libraries which are in production and stable enough. why would I want someone to implement a list when there is already a std::list available. that would be a waste of time and resources.

Its mathematically impossible for every engineer from India to be a dummy.

We can get into specifics about programming and stuff to prove our point. but the thing is that good engineers are competitive and go for the highest paying company. rightly so. It was really difficult for out team to find engineers in the past few years but we were able to find couple of them which proves that not everyone is a dummy.

my 2 paisa.
 
There is no such thing as a low value job in a first-world nation. Undercutting creates illegal low value jobs



Dig your grave on your own time. Leave this chap out of the picture. You have no idea what will happen to this guy if they decide to test him on his resume.



It is not racist when you're caught breaking the law.



Americans complicit in H-1B fraud are feeling the heat right now. It's too early for them to get caught red-handed. Give the law some time to catch up with them.



Reverse arguments at best.

There are lots of low value jobs in US. I have posted this in thread or a previous thread an example. I can give you like 10 of them. :)

What resume? Are you that brilliant not to understand what I typed? He has over 15 years of experience. Starting from CDAC. CDAC does have some nice projects in their list if you dont mind.

Third, I agree.

Reverse arguments at the best? THAT WAS REVERSE ARGUMENT.
 
What you've mentioned varies from one resume to the next. But can you please list a few questions on caching fundamentals that you would normally ask during an interview?

I have already mentioned the areas around which I ask questions.

You've confused software development and the software. I've been talking about large-scale software development all along, not about the end product.

Data structures is the way you organize data, algorithm is a logical sequence of steps to do something. All (Large scale) software development boils down to designing and implementing data structures and algorithms. When you define a Customer class, you are defining the outline for a data structure. When you write a method you are implementing an algorithm. Every line of code you write boils down to either of these two.

DS + Algorithms does not equate to ADTs. However the principles you learn from them are often used as the building blocks for your own DS and Algo's. If you need to search in a collection, you try to prefer divide and conquer approach over a linear search.

Putting together a neat architecture on paper and the best project management process to follow is all pointless when you cannot convert that all into a good implementation.


On the argument of data structures, I always say that that is a job of mathematician, and there are already libraries which are in production and stable enough. why would I want someone to implement a list when there is already a std::list available. that would be a waste of time and resources.

The point is without the knowledge of how std::list, std::vector, std::set, std::multi_set work and the differences between them, how does a programmer know which one to use for a particular situation. We don't expect everybody to write these things from scratch. However, we do expect people to know how these work and when/how to use any of them.
 
Last edited:
Does engineering college tell students to what the requirements of companies are?
A lot of talk about software engineers. You can't produce a large percentage of good quality engineers.
Every student joining college should be counseled to show them the right direction. Everyone is not coming from a good knowledge background.
Encourage them to study masters degree which is job oriented.
In India, there are very less good companies who could inspire and train students.
China has good number of company establishment.
 
Last edited:
Can you elaborate a bit more on this please?



Procuring nice projects and experience are not indicative of skill. Try to understand that our idea of what's good is completely different from theirs. If they decide to investigate then they will bring in an independent commission. And these guys will be very thorough in the way they will re-assess H-1B employees; far worse than what they faced during an interview. Please keep quiet and lay low at least for your sake if not for other Indians on the H-1B.



I don't follow.



You've lost me. I did not reverse argue if that's what you're implying.

My good friend, I am working in the US with "them" for several years now. So please don't mind when I disregard your entire post.
 
Does engineering college tell students to what the requirements of companies are?
A lot of talk about software engineers. You can't produce a large percentage of good quality engineers.
Every student joining college should be counseled to show them the right direction. Everyone is not coming from a good knowledge background.
Encourage them to study masters degree which is job oriented.
In India, there are very less good companies who could inspire and train students.
China has good number of company establishment.

Actually you hit the point. Was waiting for someone to say this finally.

What is the need for all engineers to be software engineers? The days of easy jobs are done. Not everyone need to be software engineers.

I personally knew lots of my buddies in mech, who were genuinely smart and interested to know about their subject, being pigeon holed into software. Why? because they are the only companies willing to do campus placements. Sheesh.
 
Back
Top