Fundamentally Lacking

7 04 2007

Sad to say but the title says it all. Thats my verdict on the state of graduates that are being produced on average by universities in India today. This is a follow-up to my previous post “Fittest of the Survival“. [Those of you who don’t know the article in question, shame on you for not being avid readers and not giving me feedback.] This is a record of my experience after hiring a fresher who did really well on my evaluation exam, better than most of the people who claim to have experience.

So the kid joins me 10 days back, and being a fresher I decided to make it easy for him and not throw him straight into productive work. I talked one of our project managers into assigning him a task that was non-critical, yet at the same time one that ensured that he used the fundamental knowledge that he was supposed to have learned in the 4 years he was in college. A few days later, the project manager comes up to me and says, “Boss! This guys hopeless. He doesn’t know even the basics.” I retorted saying, “How can you say that? This kid passed the test.” I even showed him the test. But this guy was adamant, “This kid doesn’t know his basics.” To find out the truth, and with the ulterior motive of proving the project manager wrong, I called the kid into my office and asked him, “Whats the matter? Why’s this chap saying that you don’t know even your basics.” I really wasn’t prepared for his answer, “Sorry sir! But I’ve never come across this kind of problem using…” At this point he drops some big programming words like polymorphism, inheritance, operator overloading, method overloading.

My jaw drops. I can’t believe it. Why the heck is this kid talking about this junk? I know the complexity of the task at hand, and I, for one, can tell you that its not even close to garbage science [fyi, the opposite of rocket science]. So I ask him, “Do you understand how to solve the problem that you have been assigned?” The answer is, “Yes Sir, but I’m not sure how to implement this using… [big words again]. ” So, I ask him again, “Do you understand how to solve the the problem/task you have been given?” I get the same answer peppered with big words and theoretical concepts. I repeat this question a few times to make sure the kid understands that I’m asking him if he has a grasp of what exactly he has to achieve. I even ask the question in Tamil [my questionable version i.e.] to ensure my point is being made. I finally get the answer, “No Sir! I don’t know what this means.”

I finally ask him to explain the problem that was given to him [if you think I’m being repetitive, until now I was only asking him about the solution. Now I wanted to know if he understood the problem in the first place.] His explanation was somewhat convoluted but having been briefed by the project manager earlier one, I understood what he was trying to say. But, that wasn’t satisfactory. This kid was unable to breakdown the task in to steps that he could implement using basic code. To test him further I gave him an even simpler task. I asked him to explain to me how he would implement the following problem. Mind you, I specified I’m not interested in the coding, but was more interested in the approach he will take. The problem was, “You have a file with 4 lines of data. I want you to interchange the 3rd and 4th lines, and to rearrange the new 3rd line so that the text that was in the 2nd half of the line, was displayed in the first half of the line, save the new output to the same file.”

In practically every programming language developed and used since 1971 when they invented C [the language], the approach is the same. You open a filestream, load each line into an array [for you non-IT types, an array is a type of data storage used in programming], then swap the 3rd and 4th lines, and transpose the new 3rd line by getting the length of the new 3rd line and constructing a new line with the order reversed.Then you write out the new data to the file. Programatically, its a straightforward task that draws upon all the basics you’re supposed to have learnt in college.

Our hero gets to the open a filestream part and stalls. He starts again using big words such as polymorphism, object oriented coding, inheritance, etc. as ways to implement it, but he’s not able to address the basic task at hand. At this point, I’m really ticked off. I start questioning this kid as to what exactly he’s learnt in his 4 years in college. He uses even more big words, and I grill him some more on what exactly he means by those big words. He finally gives me the story that he’s memorized most of the stuff from a book, and has a total experience of 2 months of actual coding. I asked him why that was. He said, “This what I was taught by my prof. I had 3 profs in my final year, and they only taught us by the book.”

Sadly, the trend is that people who are unable to get jobs with IT majors become lecturers in CS and IT at universities to hold some gainful employment until they can be absorbed by an IT company. These guys don’t even have experience but they’re being tasked with teaching young kids on programming. What are they going to teach? Obviously, whats in the book ’cause they don’t know anything else. Net result, they student’s have got their heads full with all sorts of theoretical and abstract concepts swimming around, but with no practical foundation of what exactly you do in programming. Where does that leave the students?

Nowhere is the answer. The students are left high and dry, and it is up to the companies to take the responsibility to actually, and practically [as in imparting practical training], train these freshers. Going back to the point I made in my other article, Fittest of the Survival, its all very good for big companies but where do the small companies stand? They can’t ordinarily afford to train freshers. At the same time, they cant afford people who’ve been trained by the IT majors.

It’s a very sad state of affairs that exists, and it is leading to a major crisis point where there is no value in a 4 year CS or IT degree cause you’re gonna be retrained anyway. Whats the point in having universities then? Why should students waste 4 years of their lives, when it serves no real purpose? My suggestion to most people entering college is get a degree in something other than CS or IT, and if you want to get into IT at that point, attend some professional course for 6 months or just join an IT major as a fresher. Atleast then you have a fallback option of another degree. I, for one, am extremely skeptical of the quality of candidates who are available in the industry today.

Getting back to my problem, how do I address my staffing need? Forget recruiting from the IT majors, I don’t think I can afford them. But, what am I left to work with? Universities and colleges have to look into overhauling their policies so that they do prepare their graduates for the real world. Otherwise, they’re only diminishing their own value by undermining the caliber and reputation of the students they produce. And at the end of the day, what other benchmark do they have to justify their importance?




Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: