Follow Slashdot stories on Twitter


Forgot your password?
Businesses Programming

Ask Slashdot: Are Timed Coding Tests Valuable? 776

First time accepted submitter xkrebstarx writes "A buddy of mine recently applied to a large tech company. Before setting up a phone interview with him, the unnamed company issued a timed coding test to gauge his coding prowess. He was allotted 45 minutes to complete an undergraduate level coding assignment. I would like to ask the Slashdotters of the world if they find value in these speed-programming tests. Does coding quickly really indicate a better programmer? A better employee?"
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Are Timed Coding Tests Valuable?

Comments Filter:
  • by khakipuce ( 625944 ) on Thursday January 10, 2013 @09:13AM (#42544609) Homepage Journal

    A lot of companies use coding tests as part of the interview process and pretty much there will be some time limit, whether stated or not. They are not going to let you sit there for two days to answer 20 questions or complete a 10 line routine.

    As to the value of rigid timing, then that is a bit dubious.Do you want fast and sloppy or slow and accurate? Does this tell you something about the organisation and whether or not you want to work there? I feel it really depends on how they treat the results WRT the timing.

  • by mykepredko ( 40154 ) on Thursday January 10, 2013 @09:28AM (#42544715) Homepage

    When I was at RIM, we used a broken quick sort method that the candidate was asked to fix. We didn't time how long it took the candidate to implement the fix, but it generally required the candidate to do some research as to what was wrong. One of the team leads created a simple app that tested the performance (ie speed) of the fix.

    What was really interesting to me was the number of candidates who refused to do the test (50-60%) because they said it was "beneath them". The big problem was, RIM's HR (OD) that insisted we interview the candidatest that refused to do the test because we were losing potentially half the candidates that were responding to the job applications (this was when RIM was The Place To Be).

    The best candidates were the ones that did the test and asked if we had any more. These candidates also tended to produce code that ran sort the fastest.


  • Re:I dunno... (Score:4, Interesting)

    by SJHillman ( 1966756 ) on Thursday January 10, 2013 @09:36AM (#42544767)

    Mod parent up

    I took a couple of programming classes in college and we had some timed tests. However, failing to get the desired results within the allotted time was only enough to knock off a partial letter grade (IE: go from a B+ to a B). The professors mostly wanted to see how you approached a problem, whether you commented your code, if any horrible coding practices jumped out, etc. In the follow-up, they would also want to know how you would fix any issues you came across if given more time.

    How much you got done was still somewhat important - there was a basic expectation that you would have some functionality working and other pieces at least partially completed. After all, if you have to spend 45 minutes looking up how to do a basic loop, then you're probably not experienced enough for anything beyond entry level (if that), so it helps weed out the people who are outright lying about skills.

  • Re:I dunno... (Score:5, Interesting)

    by Cryacin ( 657549 ) on Thursday January 10, 2013 @09:37AM (#42544779)
    These tests are vital when interviewing. We recently put out an ad for a senior programmer, and got about 100 or so responses. After 25 responses hit the circular filing cabinet, as they were obvious resume spam with no cover letters, we declined around a further 50. Of the remainder, we asked a simple question. In JavaScript, without using the reverse() method, reverse an array of numbers containing 1,2,3,4,5 in the most efficient way possible.

    We got 5 responses back, which we interviewed. The other 20 were out. These tests are meant to weed out the crap that would waste our time, and honestly, the 5 guys that responded, responded in under 5 minutes.
  • Re:I dunno... (Score:5, Interesting)

    by funwithBSD ( 245349 ) on Thursday January 10, 2013 @11:24AM (#42546063)

    And I probably would hire him.

    IF he is good enough to take my stupid test and shove it up my ass for wasting his time but without refusing the request, he is the kinda of guy I want one or two of my team. Or more. My boss is this guy, I am this guy, half the rest of the team is like this guy.

    Those guys are the kind of guys you can give a "Letter to Garcia" to and know it is going to get there without much intervention on your part.

    And those are the sort of guys that make complex datacenter migrations/refits successful, even if you have to provide air cover because some PM tried the same stupid trick and he shoved the test up their ass and they did not like it.

  • Re:I dunno... (Score:5, Interesting)

    by FictionPimp ( 712802 ) on Thursday January 10, 2013 @11:32AM (#42546151) Homepage

    Yes and no.

    I have taken programming tests for jobs. I tend to do really well and have gotten quite a few jobs and job offers from my tests. I excel at tests that give me a few days to complete some minor 'real world' type project. These jobs typically had more knowledgable staff and they used my 'test answer' application as a launching point for a discussion on my ability. They did this by challenging my design decisions, asking questions about areas in the code to get my insight, and asking me how I would improve the program given more time, or improve the test.

    I have also bombed tests that were timed asking programming questions. Many of these tests asked for simple things (print out a multiplication table to look exactly like this example) and I simply brain farted because I don't typically write applications that need console formatted output. I end up looking like a idiot to the test givers. I found no value in these tests asking me to write a function that factors, or write a loop that prints out hello 10 times. Interviews after these tests tended (when they happened at all) to be lower quality and the employees seemed less knowledgable. There was much less meaningful discussion about my abilities, even when I 'aced' the test.

    When I do my job in real life, I have time to plan, research, and I can keep open documentation for reference. I don't need to memorize every obscure function in the language my job requires, instead I can pull up documentation on how to use that object, function, or method. Many tests I have taken do not allow for this and it has cost me a few job interviews. While you have stated you encourage googling, most tests I have taken have explicitly denied the ability to search. I'd much rather have a week to build a working application then 45 minutes to prove I know how to write boilerplate code and memorized a whole bunch of console formatting functions.

  • Re:I dunno... (Score:4, Interesting)

    by TheSpoom ( 715771 ) <> on Thursday January 10, 2013 @11:37AM (#42546237) Homepage Journal

    Lazy, in a programmer, is a virtue.

  • by TheGratefulNet ( 143330 ) on Thursday January 10, 2013 @12:16PM (#42546769)

    ob disc: I'm an older guy (50's) and have been writing C code for almost all my jobs in my life since my early 20's. I write code at home, I develop firmware (and hardware, also at home) and I'm extremely technical.

    but I fail a lot on 'programming timed tests' and I blame my older slower mind, mostly. the last time I HAD to get inside a tree data structure and totally rewrite it: never in my life. the last time I had to implement a sort routine from scratch: never in my life. its always been a matter of consulting the standard ref models, adapting them and using them. its simply not real-world to test memory recall.

    younger guys (I was one once, lol) have an advantage. its fresh in their minds, and they don't have 35+ years of 'noise' in their brains for those sort/search/traverse routines to compete with. I remember when it was trivially easy to derive those algs on the spot or recall them from memory. I passed almost every coding test back in the 80's, 90's and even 00's. but now, I'm finding I have to sit back, think, maybe search a bit and then I can get the answer.

    interviewers who are in their 20's and 30's have no patience for people like me. I bet they even laugh behind my back. and yes, speed DOES definitely change as you get older.

    but put me in a real life situation where I DO have net access, emacs, gcc and gdb and I'll get your answer pretty quickly and demo it to you, too, if you want.

    in summary, real life is an open-book work style. testing candidates closed-book style really reflects badly on YOU, the interviewer, for not getting this detail about how young vs experienced people think and solve problems. for the new guys, you can only ask them the datastruct101 level questions. but its wrong and even insulting to ask older guys the same questions and in the same way, expecting the same speed of reply.

    when I interview with older guys, they 'get it' and they aren't such hard-asses. they know what matters, there is respect and it shows. I like interviewing at places like that. they have human beings there.

    but 'compare dick sizes' interviews, where the company guys are there mostly to show off and try to knock you down (I'm looking at you, google...) are a waste of everyone's time and fairly insulting, at that.

    I would almost go so far as to say that its improper to have a 20something interview a 40 or 50something. they have no idea what to ask, how to gauge the reply or value it and it often comes off as a strange young/old challenge.

    anyway, I will not pass any coding speed tests. but I can always solve the problem, I can learn 'on the fly' as I research the problem and I know enough to avoid the bad algs and target the efficient ones. I just don't -care- about deriving the fundamental building blocks anymore. I USE the blocks, I'm kind of tired of looking inside them. (I build electronics quite a bit but I'd never be able to answer exactly how an NPN is built, nor do I need to care to be able to effectively use it).

    companies that apply speed tests have missed the point. it shows poorly on them, in fact, that they think this actually makes sense.

  • Re:I dunno... (Score:5, Interesting)

    by ShanghaiBill ( 739463 ) * on Thursday January 10, 2013 @12:40PM (#42547125)

    So how can one pass the HR screen and get an interview with "programming knowledge", and even a CompEng degree, but with otherwise no experience?

    Obvious answer: apply to companies that pre-screen with on-line tests. At my company, if you do well on the on-line test, you will get an interview. At the interview, you will spend about 30 minutes chatting, and about 2 hours writing code. Some of the coding will be on a white board in a conference room with your potential co-workers, and some of it will be alone in a quiet cubicle.

    We added the "cubicle coding" because some introverted people don't do well on the white board, but can shine when allowed to focus in a quiet cubicle. I learned this when I declined to hire an applicant because he tended to mumble and stare at his shoes. That evening he emailed me an extremely concise and well coded solution to the problem, way better than I would have done myself. I brought him back for a second interview, hired him, and he turned out to be one of the best programmers I have ever worked with. Eventually he became less introverted, and when he talked to me he would stare at my shoes instead of his own.

To be is to program.