7 ms·
If you hate the idea of coding questions as part of interviews, please consider the other side for a moment. There are people out there (not you, obviously) wh
by pklausler 10y ago
If you hate the idea of coding questions as part of interviews, please consider the other side for a moment.
There are people out there (not you, obviously) who can talk their way into an interview for programming jobs that they simply can't perform. We're talking about no skills whatsoever, apart from the ability to sling buzzwords around enough to impress a recruiter. God only knows how they get their degrees, but they have them.
Simple, straightforward programming questions that aren't already on the Web are like an immune system response to these non-programmers who interview for programming jobs. I'm truly sorry when a real programmer feels insulted when I ask them something like "given the starting and ending times of two calendar appointments, write an expression that's true if they conflict", because it's not their fault that there are people out there who will struggle for 20 minutes thinking about how to solve it before trying something like a doubly-nested loop over all the milliseconds in both intervals, testing for equality.
I am not making this up. It's a real problem. if you can program a digital computer, you have nothing to fear from a good coding interview. And if you have a better way to reliably identify the non-programmers, I'd love to hear it.
- framebit 10y agoYES. This is why interviewers ask experienced devs to do FizzBuzz. It's not an insult, it's a safeguard.
- watwut 10y agoI consider myself an experienced developer and have experienced collegues who likely could not do FizzBuzz or solve simple algorithms like finding duplicates. The worst was when they had high charisma and could talk well in generalites and bluff - took long for management to figure them out. Experience taught me not to be insulted about those questions. They guarantee all collegues will be able to pass them.
- mixmastamyk 10y agoFizzbuz is not what we're talking about here. It is "balance a tree" with me looking over your shoulder (and $100k in a suitcase) type of problems.
- usrusr 10y agoSo that if the candidate struggles at fizzbuzz (instead of showing off a well rehearsed set piece), they have an indication that what the candidate told before stems from actual ability and not from ruthless optimization for the local maximum of being good at interviews?
- tempw 10y agoI am not the author, just to clarify that. I think the point here is more about how experienced programmers track records are not enough to prove they can do the work sometimes. Using whiteboard questions to prove ones competency can backfire as well in cases candidates are not really prepared but learned to game the system.
- lj3 10y agoThe real problem with whiteboard tests (and it's close cousin, the live coding test) is there is no correlation between being able to pass that test and being able to do the job. Companies that rely on it to determine programming ability are like the drunk looking for his keys under the street lamp because that's where the light is.
- pklausler 10y ago"no correlation"? Nonsense. If you can't program a computer, I'll find that out. And if you can't program a computer, you wouldn't be able to do the job. The point of my coding interview isn't to give a positive result if the candidate can program a computer. It's a test that's looking for non-programmers. There might be "false positives", but if I avoid well-known memorizable questions, there won't be "false negatives".
- cema 10y agoThere will be false negatives too, but most likely not related to the skills but something else, like mental health or work ethic.
- jcadam 10y agoI myself have sat in an interview with my mouth agape as I watched a "senior" engineer try to figure out how to find the largest element in a one-dimensional array. So, anymore I don't have much of a problem with simple coding questions to filter out total non-programmers (fizzbuzz, your calendar problem, etc.). But the whole stand on one foot and implement a red-black tree in bash script on the whiteboard while I peck at my smartphone and sigh every time you pause to think has got to freaking stop.
- ep103 10y agoI had two people this week, 10+ years "experience", fail at writing a function removing duplicate values from an array.
- badthingfactory 10y agoI have interviewed two "senior web developers" with "10+ years" of experience that were unable to tell me the difference between a 404 and 500 http response code. Of course, they had perfectly memorized answers about JavaScript closures.
- nissimk 10y agoOK, but I got this question: http://www.geeksforgeeks.org/given-n-appointments-find-conflicting-appointments/ http://www.geeksforgeeks.org/given-n-appointments-find-confl... It requires the simple comparison you mentioned, but is far more complex to come up with an efficient algorithm. Needless to say, I totally failed that one. Never heard of an interval tree until I looked it up after the interview. It took me just a moment to look it up with my awesome google skills and if I had to actually use that, I could copy paste that code in an instant :-) Even better, I could find a library and not even have to copy paste. One time I was working on a language translator at my actual job. I was storing formulas for excel columns in a database and they had to be translated from their representation in the database to the excel formula language. It turns out that the columns had dependencies on one another and they had to be processed in dependency order. This required something called a topological sort. Again, something I had never heard of before I encountered this problem at work (I do have a CS degree). But I found the solution by a quick google search and employed a library that was already in use in my client's software that contained that algorithm. That's the actual skill that's valuable: translating your requirements into a bunch of search terms that will quickly give you the name of the algorithm you need. (and obviously building the inputs / working with the outputs of that algorithm). Yeah, I guess if you already have all of those in your in your brain already you might save some time, but what about when you encounter a problem you don't know how to solve?
- rnovak 10y agoWhat happens when you're asked to solve a problem that hasn't been solved before? By definition something you CANNOT google for That's what I was looking for as a hiring manager.
- meheleventyone 10y agoGenerally you end up doing a review of relevant literature and a few days/weeks/months of research and development. I'm not sure answering a question under pressure that has just been asked is that relevant to making ground in new areas of research.
- mixmastamyk 10y agoWork sample tests are better in several ways to white board/puzzle tests. The latter is what the original article is objecting to, not coding demonstrations in general.
- pklausler 10y agoNo. Non-programmers are great at getting other people to do their work for them. I think that's how they get their degrees. It's only when you force them to demonstrate a small bit of problem-solving and coding skill that you can expose them, and that has to be done in real time and off line.
- mixmastamyk 10y ago> to demonstrate a small bit of problem-solving That's what the work sample test does. It doesn't have to be given off site.
- xiphias 10y agoActually this isn't a totally trivial question. The time zones in calendar appointments can change, if there's a switch between standard time and summer time. You need to know when is the hour set back by 1 hour, and in that case sometimes the answer is ,,maybe''. I was working at a small phone company, and handling the switch between time zones were not just non-trivial, but they caused hard-to find bugs, as these things happen only twice a year.
- jamie_ca 10y agoWhich is great, because you can pivot and expand on the question. Once they've got the comparison out of the way, you can bring up those issues and see where they grow their implementation.
- zzzcpan 10y ago"There are people out there (not you, obviously) who can talk their way into an interview for programming jobs that they simply can't perform. We're talking about no skills whatsoever, apart from the ability to sling buzzwords around enough to impress a recruiter. God only knows how they get their degrees, but they have them." "I am not making this up. It's a real problem. " No, it's a survival bias. You have no way of knowing how they perform, unless you hire them, but you don't hire them, because they can't pass your interview process. There are many reason why someone capable and experienced would "fail" an interview like that. But ultimately it just doesn't test for skills related to software development.
- nissimk 10y agoIt's not just survivorship bias, it's also confirmation bias. These folks fail to acknowledge the adverse selections made by their process. What about the people on your team that didn't work out? What about the net-negative producers? I don't believe you that your whiteboard heavy process eliminates all of those people. I've seen the counter-examples.
- pklausler 10y agoIf a candidate can't construct a simple Boolean predicate to characterize a well-defined condition in an interview situation, do you really think that they're going to be able to do much more complicated work later if we hire them? Be serious.
- synicalx 10y agoThis is HN, we can't be serious unless everyone gets a medal
- pcglue 10y ago>struggle for 20 minutes thinking about how to solve it before trying something like a doubly-nested loop over all the milliseconds in both intervals, testing for equality. Tell me you're kidding... that this is just a contrived example. please.
- pklausler 10y agoNope, not kidding. A new grad with a masters in CS.