The life of an Indian computer science graduate, or one going to be – Part I

May 13, 2009

Here, in India, parents have a very strong influence on their “children’s” life. To an Indian parent, at least till they have worked for a couple of years, their sons and daughters remain “children”. So it is no surprise that Indian parents have a very strong hand in the decision of what their child becomes. And normally, the Indian parent decides according to the current economic scenario. So, for the past decade or so, we’ve had a large number of computer science graduates or so, because they earn a lot of money.
The loss that is incurred through this scheme of things is very well known; a successful career cannot be made through what makes the most amount of money, but what you are interested in. If you were doing something that someone else said was good, then you may not be interested in it from the start, and the chances are that you would get out of it as soon as possible. That is a definite loss for everyone; education is not cheap, and time is priceless. As a student, you have lost time, time which you can never ever recover. And your parents have lost the money and time they have financed you with.

So what do we do now? If you are reading this while you are contemplating a career in IT (for yourself or for your wards), then it is a good time to think about your decision. Is this the right decision? Are my wards actually interested in this field? Ask the actual people the same question too. Try to sample a part of that by taking a small course of the subject. Remember, this is a decision for the future. If a wrong decision is made today, it cannot be reversed so easily.

So now we come to the next question.

If you have done a computer science degree, then why is it so difficult for you to get a job? You could blame it on the current recession, but I feel that there is something more deep in it.

One of my very big role models once told us while we were studying: the main problem with students today is that they don’t study their syllabus, they just study for their exams. What he was trying to say is that while you have textbooks, you just study from the exam perspective.
That problem is compounded today. Students look at a number of years past exam papers and study according to that. While that may give them excellent grades, it does not make them employable. They do not how to think of a problem in a different way and solve it, and that is what a software house needs.
Add to that problem of “what is in demand” today. And here, this is not only an Indian problem, but also a worldwide problem. The universities are putting in syllabus in consultation with the industry or what is “easy”. That leads to languages/platforms being specialized in exams as Java and .NET, etc. We can see this through the following post:
The perils of Java Schools


While I have no problem with Java being taught because it is in demand by the industry, my problem is that not enough importance is given to low-level stuff. And this problem foments itself when these fresh and green developers start using that lack of knowledge to solve real world problems.

Imagine you need to show a list of records in a typical web based application. Imagine that the interface to retrieve those records is XML-based. So the developer may just retrieve all records, show them, do some basic testing and claim his task is complete.
All you have to do here is break the problem with a real-world twist – too many records to show. If the list has a large number of records to display, and you show all of them together, you will take a large performance hit. Even if you don’t do any post-processing.

So, the point I’m trying to make here is that a large number of people are being thrown into the computer science job market pool. About 1-2% of them may be employable forever. Some of the rest may be employable because of their current strengths in the particular language of the season. But that is temporary unless they learn or are forced to adapt.

This long post may seem like a rant, and in some ways, it is. It is half the frustration I’ve faced over the past 2 years (the other half will come in part II soon!) while trying to hire people in various roles. We could hire about 1 person for every 30 interviewed. The 30 were also very carefully selected from about a 100 or more. And in each of these positions, we were willing to pay above market value.

Well, any way, I’m done for now. In part II, I would like to make some suggestions as to what a computer science graduate should do while preparing for a career in computer science.