Only 36 Percent of Indian Engineers Can Write Compilable Code, Says Study (itwire.com)
New submitter troublemaker_23 quotes a report from ITWire: Only 36% of software engineers in India can write compilable code based on measurements by an automated tool that is used across the world, the Indian skills assessment company Aspiring Minds says in a report. The report is based on a sample of 36,800 from more than 500 colleges across India. Aspiring Minds said it used the automated tool Automata which is a 60-minute test taken in a compiler integrated environment and rates candidates on programming ability, programming practices, run-time complexity and test case coverage. It uses advanced artificial intelligence technology to automatically grade programming skills. "We find that out of the two problems given per candidate, only 14% engineers are able to write compilable codes for both and only 22% write compilable code for exactly one problem," the study said. It further found that of the test subjects only 14.67% were employable by an IT services company. When it came to writing fully functional code using the best practices for efficiency and writing, only 2.21% of the engineers studied made the grade.
My code rately compiles correctly on the first attempt.
Sure, I could carefully inspect it before clicking "build," but it's faster to go through the build-fix-build cycle a few times than to scrutinize it for compile-time errors beforehand.
As for the rest of the test, I would fail too, especially since it is a one-hour timed test.
Now, show me a problem where the obvious/naive solution is something any decent programmer can get right in half a day but finding an ideal- or nearly-ideal solution will take a great programmer a few hours to find, a very good programmer a day to find, a mediocre one 2 days to find, and a lousy one a week to find if he could find it at all, and I will show you a problem that *might* be worth considering if you are trying to "rate" programmers on coding skill.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
It would be extremely useful to know how this compares to college students around the world. Without that but of information, this article is nothing but anti-Indian-IT propaganda.
By the way, I did read the article but couldn't find this information. It's it available somewhere else on the interwebs?
Am I to infer that these are newly minted software people fresh out of college?
What's the comparison - how would a set of grads from US universities, or British, or Ukranian fare? Frankly, lots of people make it through educational systems without being able to do whatever their degree says - I'm not clear that the percentages here are any different than anywhere else in the world.
I'm pretty clear that without more context this is useless. And there's no mention of the report containing that context.
A thousand pounds of wood moving at 300 feet per minute. Don't get in the way.
Posting anonymously for obvious reasons.
Indian software engineers and their "executives" are all terrible. Anytime you have an Indian who finds himself in some sort of executive role, you will have a front row seat to watching half or more of your native country men become unemployed and the amount of "needfulls" working on your project grow exponentially.
You can then look forward to sloppy, poorly written code coupled with craptastic documentation and more newly appointed Indian managers that think their shit doesn't stink because they can know squat somewhere in America and poo unlike their native countrymen back home.
Anytime you outsource to the 3rd world and import the best of the worst to run your organisations, don't be surprised when those products and services start smelling like a street in the middle of July in Calcutta.
At the end of the 60 minutes if your program doesn't compile then you aren't part of the 36%. You could be finishing a statement or part way through a function or have just forgotten a semi-colon and you are part of the 64%.
The title is very misleading by saying such a low number can write compilable code. Through any other group of students at it and I'm sure that you would get similar results.
Exactly this! I think I've yet to go a single day where I have not missed something as simple as a semicolon or I used an arrow instead of 4-dots syntax, or brackets instead of curly braces for different array syntaxes while jumping between languages. The intended meaning was very blatantly there in the code, and a simple "F5" to compile+run (or refresh browser in case of web apps) would have caught the simple mistakes. If this were not an issue, keyboards would never have a backspace key. This is one of the oldest aspects of computers, period. There is a reason why 0x7F is "DELETE" in the ASCII table, because in the days of 7-bit punch cards, if a "typo" was made, punching down all 7 bits was the way to clear it!
they just do what they're told without argument
Not exactly. They tell you they understand even if they don't. They tell you they'll do something even if they have no idea how. They'll agree to any schedule without any clue how to meet it. Then they deliver code that's been written to look like it actually does something close to what was asked for.
Some argue quite a lot actually. I've been on the other side of some forcefully defended wrongness.
One gets the impression that the managers of these outsourcing companies get them to believe their own lies--that nobody in the US, the home of modern computing and inventor of (but not mass producer of, thanks free trade) just about everything useful involving it, understands anything about computing.
Know what? They're kind of right. The IT industry, the whole of it everywhere, is absolutely full of people who have no idea what they're doing being managed by people who are even more clueless. This is human nature--most of us are idiots and a small number are more productive than 10 others and understand more than 20. Subjects of expertise vary of course. Computing is pretty rigid--do something stupid and bad things will happen. The feedback you get from technology is pretty immediate and on occasion devastating because despite attempts to dress it up, this isn't a soft skill field. The tech does not care what you feel or who likes you or anything like that. It'll react the same way to a pretty, very social female as it does to the nerdiest nerd dude. It only cares what they know and what they do. It's what so many of us find attractive and why we resent too much interference from people who don't understand this. Stupid people can cause a lot more trouble a lot faster in IT than they can in a lot of other industries.
Indians, being people too, also have this situation. A small number are brilliant, most are absolutely useless with technology and, like Americans, it doesn't stop them from charging headlong into crap they know nothing about.
The difference is that in America we have a huge industry devoted to pushing the myth that Indians are somehow better than they are for the express purpose of using them to lower wages and nothing else.
I want to stop H1-Bs. I want to send most of the ones here home even as I feel bad for the abuses they have to put up with here. That said, the sooner we all figure out who the real enemies are and do something about them--American and Indian tech companies who perpetuate this bullshit, the better off we'll all be.
how would a set of grads from US universities...fare
Well considering I could do this BEFORE my CS degree, and all of the people I know majoring in CS are the same way - I'd say pretty damn well???
You have got to be joking that you seriously doubt someone can get any kind of CS degree or the like without knowing how to compile code! My program was extremely theoretical and I still was compiling real executables in many, many classes...
"There is more worth loving than we have strength to love." - Brian Jay Stanley
This summary does not mention how people from other nations fare in the same test, so it is impossible to tell whether the results are particularly bad - they could even be better than average, for all we know. Of course, the reason for bringing it up here is not to present a real, scientific result, but only to confirm people in their already well-established prejudices.
So think about the scenario - you have 60 minutes to produce a program that compiles and runs, and the test tries to evaluate "programming ability, programming practices, run-time complexity and test case coverage" - that certainly sets a minimum level for the complexity of the problem; this is well beyond the "hello world" type of programs. How long would it take a person to first understand a moderately complex problem, then decide how to design the code? This depends heavily on whether you have done something very similar before, but I know that I don't in general understand the complexities of any given problem straight away and then rattle off a good design - I prefer to think out the concepts, try to put it into a context and build a design that is open ended enough to be easy to extend etc. I would have spent 60 minutes before I even got ready to write a bit of code.
Then there is the writing of code - which language are we talking about? Most compiled languages that I have worked with - and I have worked with a lot - require more than just the code; to take C as an example, there's all the includes, for one thing. How many people remember off the top of their head exactly which header file to include for every function they use? I certainly don't, and I don't need to - I look it up in the man pages. I have been presented with some of these automated tests from time to time, and I have walked out of the interview every time, because I simply don't work like that, and I refuse to work for a company where the level of understanding of what code development is as crude as that.
So, all in all, is it right to judge the skills of any engineer based on this sort of test? I have lived on my skills for several decades, and I have proven over and over that I can produce compilable code - and very good code too - but I would certainly not do well in a test like that, and I doubt many American or European programmers would fare much better than the Indian ones in this sort of test. All it can test is whether you happen to have a ready cooked solution to the problem they present you with; if you don't, you fail. It is about as reliable as using a horoscope.
Here in big international corporation's subsidiary in a huge EU country I am not allowed to comment on this subject by corporate ethics rules. It is in fact impossible to mention problems with our subsidiaries in foreign domains because racism. I therefore conclude that these problems actually do not exist.