Indian College Students Face Bleak Prospects
The New York Times has a piece on the lackluster prospects facing the great majority of Indian college graduates. Most of the 11 million students in India's 18,000 colleges and universities receive starkly inferior training, according to the article, heavy on obedience and rote memorization and light on useful job skills. From the article: "In the 2001 census, [Indian] college graduates had higher unemployment — 17 percent — than middle or high school graduates... [At a middle-tier college] dozens of students swarmed around a reporter to complain about their education. 'What the market wants and what the school provides are totally different,' a commerce student said.... [A] final-year student who expects next year to make $2 to $4 a day hawking credit cards, was dejected. 'The opportunities we get at this stage are sad,' she said. 'We might as well not have studied.'"
In the US and India. College isn't training you for a job, it is learning a field of study. Perhaps this is the issue, jobs require these "degrees" and now that is what colleges teach to, not the theory behind the area of study. My college was guilty of this, sadly.
Shock horror, Universities aren't job training centers. Who would have thought, places of higher learning actually caring about theories and learning and not about job skills.
Spoken plainly as one who doesn't use any advanced algorithms in their coding. Lemme guess, you paint forms and play with DB rows?
Let me enlighten you: The heart of Computer Science is ALL "math crap".
I think it's a bit too harsh to say that all of that stuff is useless, but it is true that few students will get much use out of it until much later in their careers.
My complaint is that most schools don't teach good large project management skills. Everybody works on toy programs by themselves or in small groups and on short deadlines. That is highly unrealistic in the real world and teaches the kids a lot of bad habits IMHO. I think it would be better if the schools put more emphasis on project management (both from a manager and coder perspective), including version control, planning, testing, debugging, and so forth. Grading would be a bit more difficult, but the ability to compare students based on their amount and general quality (how many fixes did it require afterward?) of checkins would be a good place to start.
The class could even mix it up a bit between writing their own project and maintain last year's project, especially if they build stuff that is actually useful and post it online. Granted, this is an ambitious project for a classroom, but I think it's the only way to properly prepare students for the real world.
I read the internet for the articles.
HOLY CRAP! this is my daily experience at work!
/. account, but this is what I see everyday...
I can't for the life of me remember my
IT people that can't fix their own MS word problems...
give them instructions on step by step how to do something, no problem. Give them an exe and tell them to install a program, it'll never happen.
Everyone I've talked to says the same thing. give them a structured problem and they knock it outa the park. give them an open ended real world problem without structure given to them, and they are lost.
It makes me feel good about myself and the ability to think, and figure out what concept to apply and how to apply it...
Well, I don't think it is a big of a problem as it is made out to be, I know people who have lost their jobs to outsourcing. However, I think the underlying hate comes from the people who have to call tech support at a placed based in India, and then can't understand or communicate with the person on the other end of the line. All things considered as well, if your calling support, you are probably already frustrated enough, and now you can't understand what the other person is saying? I can see that being pretty aggravating. Worthy of hating an entire nation? Probably not.
Second this.
There's way too much emphasis on starting your own projects from a clean slate, which is very rare in the 'real world.' More often you get handed the spaghetti-code mess of the "last guy," to puzzle over and figure out how to document and maintain.
Too much CS education is focused on the very beginning of the software lifecycle. That's like churning out doctors that can only deliver babies, when what the market needs are GPs and geriatric specialists. Grads need to know not only how to start a new project themselves, but how to pick up one that's in the middle of development, or that's well into its maintenance phase.
"Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
I don't hate India. I hate the companies that route my calls there.
What's annoying about the Indians taking the calls is that they pretend to understand when you use words or phrases they don't get, and it quickly becomes apparent as they struggle to troubleshoot a problem they never comprehended in the first place. But they're taught to do this, just like they're taught to tell me their name is Steve or John or Bob. Again, it's really the fault of the company putting the almighty dollar ahead of customer satisfaction.
120 characters for a sig? That's bloody useless.
I agree, however: "learning a field of study," is not what most people in college want, nor what most employers are looking for.
What most students want is job skills. Few students have the inclination (or spare funds) to learn for the sake of learning for four years, and then spend another two or three at a trade/professional school, before they can get a real position.
Students go to various schools in great part because of the job prospects they think they'll have on completion. Only the rich can afford to simply go because it will be intellectually stimulating. Plus, mixing together people who just want job training with people who are fundamentally interested in learning is a mistake; neither are going to be satisfied with the results.
To be honest, I think we need to remove some of the social stigma surrounding trade schools in the U.S., and we should have a clear path for students that just want to get job skills. Maybe the companies themselves could even help fund them, and in return get to dictate parts of the curriculum (via directed tax contributions, if not voluntarily). That would remove the education/industry disconnect. Students who wanted an 'education' would be able to go to college, and students who want 'job training' and a near-guaranteed job in a relatively short amount of time could go to the trade schools.
I think in the U.S. we have dragged 'childhood' further and further out; there is no reason why a person should have to go through nineteen or twenty years of schooling before they can survive on their own in the economy. Education needs to be made more relevant to what students want to learn, and more rigorous earlier in the curriculum. Huge swaths of my own education were nothing but wasted time because of the way the system is currently set up; there is no reason why a motivated 15 or 16-year-old shouldn't be able to be out learning a skill, if that's what they want to do. Making them acquire thousands of dollars in debt and years of wasted 'education' that they won't use first, helps no one.
"Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
I disagree. Tools are transient, and the features of each become more commoditized each year. The american programmer chases "learning new tools" with each programming "generation." This in itself isn't bad, but more often than not, rolling your own for a specialized situation is a skill that needs to be present at all times.
It's been said before in the perspective of not knowing how things work on the inside (especially in language wars) but I've run into more junior programmers that don't understand how to analyze and debug systems because of a simple ignorance of the "magic" of , be it networking, compilers, operating systems, sparse and/or associative arrays, code optimization in large scalable systems, the network stack, internal type representation, threading, memory usage, security...
In each of these topics, I've been on a team of programmers that simply wrote VB-style windows apps for so long they couldn't tackle a bug in one of these more difficult issues. I don't advocate that every programmer needs to learn all these topics before starting, but they have to know that there are layers beneath the tool, and that such layers are subject to examination.
Even now, I'm reengineering a large-scale system that made some horrible scalability decisions. They had a simple point-click, drag-drop style of application construction, and couldn't understand how to optimize for the real-world data throughput the end product needed to satisfy. So here I am, the "math guy", ripping out chunks of tool-generated sequential searches, file caches, and other endless layers, to streamline.
SO I argue that the *jobs* will always have a mix of programmer types, but if you hire only mousemonkeys, you're risk not having a skillset ready to tackle the "difficult" things.
Umm...The Americans can draw from context better? I don't know. I can tell you I've never had a basic communication problem with American tech support, even those who aren't native English speakers. When I'm trying to convey a lot of information in a hurry, I tend to use big words and complex grammar; this can completely shut down a conversation with a foreign call center, but the American (and Canadian, to be fair) support manages to get the job done.
I'll just put it this way: I've never had to explain the same situation three times to the same person or had a tech doggedly stick to the script regardless of what I told them when talking to an American. I've worked in tech support before and have *seen* some American script monkeys at work, but it's almost a policy for the Indian (and other) call centers to rely entirely on scripts.
Example: if I tell "Joe" that I've got a problem with my new wireless NIC and I need to know where I can enter the SSID in the software, it should be clear to him that I know what the problem is and what I need to do to fix it. What does he do? Force me to go through twenty minutes of uninstalling, reinstalling, PULLING THE CARD TO GET THE MODEL NUMBER, before finally putting me on hold for ten minutes to get someone else on the phone who knows the answer to my question.
Maybe the problem is what is talked about in the article: they're trained on rote memorization, not troubleshooting. They don't know how to deviate from the norm and jump straight to a solution.
120 characters for a sig? That's bloody useless.
I think it's time you try to take a more objective look at yourself. If your resume is good enough, perhaps you are coming across poorly in interviews. Physical appearance, manners, diction, etc... all matter. It's all about attention to detail. Most important though, is projecting the right balance of confidence / humility. These are people skills anybody can nail.
Most employers do not see degrees as quaint. Experience rules for senior positions, but entry level positions are made for recent grads. A problem you are going to face is that you're graduation is becoming less recent all the time. I hope you are keeping up on your skills and continuing your education. Do some volunteer IT or try to make yourself visible on some open source projects.
Where I work, we turn away people with very good resumes all the time if we don't think the person would fit in. I'm not going to hire somebody unless I think I'm going to enjoy working with them. Think about it- you probably spend more time with people in your office than with your significant other.
We've also hired some people with unrelated degrees to do some of the most demanding work here (our network admin has a degree in german language).
Lastly, what are you doing to expand your people network? Often who you know is more important that what you know. I used to think this was awful, but now I think it's because people are very afraid of risk and the unknown. Find other nerds and find out what they are doing. Interview at their company after you have thoroughly researched whatever it is they do.
-ec
Farming out the easy stuff frees me up to pursue the more lucrative stuff, like working more with customers or developing partnerships.
The problem with farming out the "easy stuff" is that is what most entry level people cut their teeth on out in the business world. If you take away the things that the entry level people are qualified to do, they never get the chance to become senior level.
With that simple move, you've cut the legs out from under your technical competence as a society and are now at the mercy of others. This, by the way, is a great way to cause an economic collapse and possibly another depression.
Everything I need to know I learned by killing smart people and eating their brains.