Slashdot Mirror


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.

26 of 210 comments (clear)

  1. What percent of slashdot editors by Anonymous Coward · · Score: 5, Funny

    What percent of Slashdot Editors can spot a dupe?

    1. Re:What percent of slashdot editors by Verdatum · · Score: 3, Informative

      Not just a dupe, but a dupe of a HELUVA shady report. 1: it tests ALL engineering students, including Mech-E and EE, not just software-engineers. As far as I can tell the test doesn't include Computer-Science students. 2: it's not peer reviewed or published in a 3rd party publication of any sort, 3: the information is released by a company that sells the test both to engineering schools and to perspective employers, and sells training material to teach their tests to aspiring employees and to schools to pass on to students. As a result, it is in their best interest to scare the entire industry with low scores like this, and everything I can find indicates no effort was made to circumvent this bias.

  2. On the first pass? by davidwr · · Score: 5, Insightful

    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.
    1. Re:On the first pass? by Dutch+Gun · · Score: 4, Informative

      This is a problem I typically have with programming tests. To be perfectly honest, I test horribly. The problem for me is that the way one takes programming tests is always vastly different than the environment in which one normally codes. For me, the worst are whiteboard-type tests. I can't remember when I've ever written actual code on a whiteboard at work (diagrams plenty, code no). The point is, unless you're working in an environment you're accustomed to, the difficulty of the problem is artificially magnified.

      More to the point, I don't recall being in many "high stress" programming situations at work, perhaps aside from tracking down some maddening bugs, which requires more patience and doggedness than anything else. No one is going to die if some feature doesn't ship in the next 60 minutes. I do my best coding when I can take my time and calmly think about the problem, rather than giving snap answers. In the working world, if I don't know something technical, I just look it up and do my own research, or ask a colleague if that leads nowhere. And I'm terrible at coming up with the "clever programming tricks" that people seem to love to put on programming tests, but which typically have little value in actual production.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    2. Re:On the first pass? by goose-incarnated · · Score: 4, Funny

      My code rately compiles correctly on the first attempt.

      I believe you :-)

      (FWIW, neither does mine)

      --
      I'm a minority race. Save your vitriol for white people.
  3. Re: Sounds about right by Anonymous Coward · · Score: 5, Insightful

    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?

  4. A little unclear by mhkohne · · Score: 5, Insightful

    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.
  5. It's a timed test by CanadianMacFan · · Score: 4, Insightful

    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.

    1. Re:It's a timed test by PatientZero · · Score: 2

      The question isn't whether they passed the test or not. The problem is that they are grading the total number of people who can do X by looking at how many can tackle one specific problem in the space of X in an hour. It's equivalent to declaring that only 10% of people can run because only 10% were able to run a 6-minute mile.

      --
      Freedom to fear. Freedom from thought. Freedom to kill.
      I guess the War on Terror really is about freedom!
  6. Re: instant feedback by Anonymous Coward · · Score: 2, Informative

    That's complete bullshit. Screenwriters don't need to be able to act. Actors don't need to be able to write. Beethoven was deaf. Einstein couldn't do simple arithmetic. RFC authors who design protocols don't need to be able to implement them. Coders who implement algorithms don't need to able to invent them.

  7. Re:Dang... by __aaclcg7560 · · Score: 4, Funny

    Type a code sample with your big fat dick.

    You want that in big endian?

  8. Re:And the rest write PHP and JavaScript by darkain · · Score: 3, Insightful

    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!

  9. Very Logical by PatientZero · · Score: 5, Funny

    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!

    That makes perfect sense, fits with how a programmer would think, and I've never heard any competing theories. Thus, it's most likely totally wrong.

    ;)

    --
    Freedom to fear. Freedom from thought. Freedom to kill.
    I guess the War on Terror really is about freedom!
    1. Re:Very Logical by vtcodger · · Score: 2

      Seven level teletype tape, not punched cards. For typos on cards, we just replaced the faulty card with a corrected card. (And, BTW, most everyone used a sequence number in cols 72-80 initially all ending in 00 so we could insert cards when we'd left a few lines of code out).

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
  10. Re: Sounds about right by Anonymous Coward · · Score: 5, Insightful

    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.

  11. Students != Engineers by speedplane · · Score: 2

    The report says that it "is based on a sample of more than 36,800 students from 500+ colleges across India". It doesn't say what degree they're in, how much experience they have, or a variety of other factors to conclude the 36% of Indian engineers can't code. This is just a racist hit job piece.

    --
    Fast Federal Court and I.T.C. updates
    1. Re:Students != Engineers by ilsaloving · · Score: 2

      No it isn't a "racist hit piece". If you've ever had to work with these kinds of people, you would realize that reality backs up this study depressingly well.

      I have been involved in several projects that involved outsourced labour. Every single one was a nightmare. EVERY. SINGLE. ONE. I wouldn't trust these people to flip a hamburger correctly. The code they write is breathtakingly bad. Yes, there are some good developers. But the overwhelming majority of them are shockingly incompetent.

      The problems range the whole gamut from iterating through a hashmap to find a value, to inserting user data into a database unmodified and unchecked, to using doubles for currency. And these are only relatively innocuous examples I can think of off the top of my head. I've seen so many problems, both with the code these offshore people write, and their arrogant pass-the-blame attitude, that I could probably spend the next week writing multiple essays on the topic.

  12. Morons come in all nationalities by mandolin · · Score: 2

    I've worked (and work) with talented Indian developers, and ones who are frigging hackmasters, not in the good sense.

    When you hire a team of developers into a position where you treat, pay, and support them (in terms of infrastructure, equipment, etc.) like cheap drones, the devs you attract (or at least the ones who stick around) will tend to be ... the drones.

  13. 2.21% x 1million.. by slew · · Score: 2

    Food for thought.

    Even if only 2.21% of Indian new college graduates made the highest grade, Indian universities graduate about 1 Million engineers every year. In contrast, in the USA, we get about 100k engineering graduates every year and 100% of them don't make the highest grade.

    On the other hand, this company Aspiring Minds has a specific agenda...

    However, the need of the hour is to find these pockets and scale them up to make an exponential impact on employability. This is crucial for India to continue its growth story and achieve the vision of India becoming the human resource provider for the whole world.

    Interesting to note that one of the sales pitches they use to sell this testing product seems to be bringing up the spectre of a shortage of Indian talent causing salaries for talent growing out of control decreasing the advantage India might have in this area.

    Although I understand the Indian culture seems to worshiping testing, but if I were and engineer asked to sit for this, I think I would simply just be offended by such a company. Not just because of the fact that they are trying to create a test whose end goal is to keep salaries down, but also by the audacity of a company to think that a computerized test could substitute for employment screening and job aptitude.

    Then again maybe I have options. If I didn't I might just suck it in and take the test. After all, Einstein when his back was against the wall and no professorship was forthcoming, signed up to be a Patent clerk. Compared to him, in a pinch I probably should be happy with a job as a Walmart greeter, so taking this godforsaken test wouldn't be the worst thing in the world.

    1. Re:2.21% x 1million.. by Hognoxious · · Score: 2

      On the other hand, this company Aspiring Minds has a specific agenda...

      However, the need of the hour is to find these pockets and scale them up to make an exponential impact on employability.

      Anyone who uses exponential without a differential equation backing it up can totally fuck off.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  14. Out of context by jandersen · · Score: 5, Insightful

    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.

  15. Re: instant feedback by Chatterton · · Score: 5, Interesting

    I write code in C, PHP, Python, Pascal, VBA, Common Lisp, Prolog, Assembler (z80, 6502, x86). I can help people with their code in C#, C++, Java, Smalltalk. From a language user point of view I am a Jack of all trades, master of none. I am very reliant on the compiler/interpreter to highlight me where I made syntactic errors or passed the wrong parameters to a function or API because in that language, the order of the parameter is different than all the other languages.

    But you will not get me on the evaluation of the complexity of an algorithm. I have written programs/libraries from a wide range of domains (robotics, biology equipment, domain specific compilers, pay, stock management and ordering, automatic packing of orders, display of industrial process parameters, expert system, machine learning). You can really thrust me in software design and algorithmic, but I am still very reliant on my IDE and the compiler/interpreter to help me about typos and showing me that the construct I use is not the correct one for the language I am currently using (my black sheep is the switch/case/select construct).

    Some composer were bad at playing instruments like Mahler, Berlioz, Schoenberg, Ravel. Mahler and Berlioz were just good enough to play their own composition to help them in their creative process but not in public. Schoenberg and Ravel used the help of assistants to play them what they have composed.

  16. Re: Sounds about right by Anonymous Coward · · Score: 3, Insightful

    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.

  17. Re: Sounds about right by Anonymous Coward · · Score: 5, Interesting

    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.

    Best example I've come across personally:

    Their proof-of-concept JSON used floating point numbers for dollar amounts. Floating point numbers for currency is a beginner mistake. I flagged it as an issue straight away and asked them to use cents in integers (which would be appropriate in our use-case). They agreed. Sure enough, the final product used floating point numbers for dollar amounts and started charging people incorrect amounts.

    As it turns out, they had a data store that was actually using decimals behind the scenes, so it was just a conversion issue. Dollars to cents - simple calculation, right? Just multiply by 100, right? Nope. They converted to a string, replaced the period with the empty string, then parsed the string as an integer. So the specific price in question went from $4.95 to "4.95" to "495" to 495. Which worked right up until the client reduced their price by five cents. Now it went from $4.90 to "4.9" to "49" to 49. They were now charging 49 cents for a product that was supposed to be almost five dollars.

    They literally couldn't understand multiplying by 100 to go from dollars to cents, but every step of the way agreed to do it and either didn't bother or completely fucked it up.

  18. Re:You have got to be joking by Chelloveck · · Score: 2

    Take it from someone who regularly interviews on campus -- a lot of seniors in CS (and related fields) can't code their way out of a wet paper bag. I actually had one kid tell me, "Well, nobody codes without Google these days!" That may be true, but I do expect you to be able to write a basic 'for' loop in your preferred language without having to look it up. It's not a trick question or obscure trivia.

    A lot of students are very good. They're the reason we keep recruiting on campus. But the others... Hoo boy. What the hell have they been doing the past four years?

    --
    Chelloveck
    I give up on debugging. From now on, SIGSEGV is a feature.
  19. Re:You have got to be joking by david_thornley · · Score: 2

    Computer science is about computers in the same way that astronomy is about telescopes. You don't have to be a decent programmer to be a good computer scientist. It does help, though.

    --
    "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes