The CEO of Capgemini, Mr. Srinivas Kandula, has mentioned that 65% of IT employees are not trainable. We have all along been hearing that only 15-25% of the graduates were trainable and that the IT industry was only hiring from this group. Now, we are being told that even within this lot, 65% are really not trainable, and were presumably hired since there were really no option, and perhaps there was enough very low quality work to be done there. And now that the growth rate of the industry is coming down, and there is uncertainty in their largest market, it is perhaps better to recruit freshers for such low quality jobs than to pay for the experienced hands.
I do not know how much to believe Mr. Kandula. But I have always been amazed at the Indian software industry. That it can grow so fast and become so big despite the absolutely abysmal quality of education in our colleges. I have always believed that our engineering graduates have learnt nothing in most colleges, but in any large sample of population, there would be those who are naturally gifted, and who can be trained for anything, and my belief has been that IT industry is able to recruit people with minimal knowledge and train them for whatever they want them to do.
But apparently not. What Mr. Kandula appears to be saying is that a whole lot of people hired by IT industry have not picked up the right skills even after the training. Till now, when the going was good, both in terms of there being significant amount of low quality work, as well as in terms of good revenue that could be charged for that low quality work, it was ok to carry all those people on the roll. But increasingly, that is going to become a challenge.
Recently, I was on a selection committee of a government department to recruit programmers. The salary was very decent, and many people after several years of experience in industry had applied. What is the largest program in terms of lines of code that you have written in your entire career including college education. Typical answer: 100 lines. Can you write a program for binary search: NO. Can you write a program for just traversing a linear linked list (no trees): NO. Can you reverse an array without using another array: NO. Can you just exchange the values of two variables given a temporary variable: Mostly, NO. These are all the programs we ask our first semester students who have never programmed before. Have you ever been to sites like codechef: NO. Have you ever contributed to any open source project: NO.
I have the same experience when I sit in MTech interviews. And remember, we are only interviewing those who are among the top 1-2% in GATE.
Why is it that graduates of CS programs after 4 years know pretty much nothing. (Another data point: Once, GATE office shared with me detailed data about the previous years' paper. The shocking part was that the median GATE score was 0. This was more than 10 years ago, but I don't know if there has been any improvement in this period. More than 50% of the students who gave GATE had received 0 marks or less.)
A lot of people have talked about poor quality curriculum, poor quality faculty, poor infrastructure, poor school education, and so on. I disagree. All this can not lead to such abysmal quality of graduates. And all these explanations are only to take away the blame from students themselves. There is a much simpler explanation for this: Copying in our colleges, besides laziness.
How did a student pass the course on programming, if s/he never wrote programs. One can see that there are multiple courses in a typical CS curriculum that requires a whole lot of programming. Very simple answer is that only a few students write code, and everyone else copies. And everyone gets close to 100% internal marks.
Programming is the most basic skill for anyone working as a programmer/developer/software engineer, etc. If a graduate can write a 200-line Java program and a 20-line Python program, they can not only find a job, but also climb a few steps in industry. (Of course, if you want better jobs, and better careers, you will need to learn a lot more.)
Is faculty so poor that they can't even teach just 3-4 courses well (out of 40-50 that a student will do). Even if that were the case, there is enough online material to learn programming, data structures, algorithms, etc. Colleges that want their graduates to get jobs can do something very trivial. In just one course every semester, ensure that students do not copy. If they do not submit original programs, they fail. Checking copying is very simple these days.
Why don't colleges do such a simple thing. They can immediately improve the quality of graduates without any investment. But colleges should do it at their own risk. I know of one college which tried this. Every single glass in all buildings were broken by the angry students.