Live data from Hacker News

People suck at technical interviews (2014)

seldo.com

241–250 of 315 posts

Re: People suck at technical interviews (2014)

#241

Earlier quoted context omitted.

I disagree. You need to be able to find existing working solutions and use them, sure. But you also need to be able to do this kind of thing yourself if you can't find an existing solution, because that also happens all the time. It's that ability that they were testing. That's perfectly valid. They should however have told you that before the test.

Yes, they should have been more specific. Problem solving skills go a long way especially in programming. But then the question is how far should you go down the rabbit-hole. For example, how many variables can someone use? How optimized should the code be, regarding memory and speed? Are you looking at the code to be understandable? Should I use comments? Should I use for or while?

fwiw, I think there are reasonable ways to approach these kinds of issues that will work with any interviewer you'd actually want to work with:

> For example, how many variables can someone use?

I've never heard of an interviewer explicitly limiting this, but if you have enough variables that you're asking, it might be a sign you've missed a more elegant solution to the problem...

> How optimized should the code be, regarding memory and speed?

Don't spend a lot of time on something before you know if it's what they want. You shouldn't go all the way through debugging the naive solution before you know if they're looking for something optimal; you shouldn't look for a very complex but theoretically optimal solution if they looking for fizz/buzz level of complexity.

To make it more concrete, many of my candidates just say something like "I could put everything into an array, sort it, and print it", maybe even adding "in O(n) memory and O(n log n) time". When that happens, I write down "quickly got naive solution", ask "what if we don't have O(n) memory?", and wait for them to (or help them) come up with something else. That's great from my perspective, as is asking me explicitly how much RAM is available / how large the input may be / if I want an optimal solution or an easy-to-understand one.

> Are you looking at the code to be understandable? Should I use comments?

In general, they're probably looking for it to be understandable, but they should know if you're coding under time constraints on a whiteboard that it's hard to revise quickly, that you can't fit a lot of stuff there, and that it's a lot faster to say aloud what you might otherwise put in a comment. If they don't make allowances for that, you'd probably hate working with them anyway...

Consequently, understandability might be more be about picking a meaningful variable name or thinking for a moment if you actually need to special-case some path before adding that extra if statement. Maybe drawing a quick diagram of your data structure.

And if you have extra time (a judgement call: maybe if you have a working solution, they aren't trying to move you on to another problem, you have don't have anything more to ask them), you could refine a bit.

> Should I use for or while?

They should know you haven't had the chance to read their internal style guide. They shouldn't care about this.

I also think they should give you significant leeway for minor syntax errors (saying, missing a ";"). There's a line somewhere between that kind of nitpicking and needing to see that you actually understand the language's syntax. It differs a little by interviewer. If you're anywhere close to the line, they should point out what's bothering them (perhaps saying "the compiler says ...") and give you an opportunity to correct it. If they don't, again they're probably kind of a jerk.

Re: People suck at technical interviews (2014)

#242
post #167

Earlier quoted context omitted.

At a previous startup, we gave potential developers a very simple test: we had a file with a comma separated list of movie titles, release dates, etc. The candidate was expected to: - read that file in - store it in some sort of data structure - allow users to run commands to retrieve movie titles based on name, release year, etc. Command-line was totally fine, you had access to the Internet, and as much time as you…

How would you do this without basically writing your own database from scratch?

Well - I'd probably write my own database from scratch. If the list was short enough and time tight enough, I might just let it be an array stored in memory, but I guess that would cause performance problems after more than a couple hundred lines.

Re: People suck at technical interviews (2014)

#243
post #182

Earlier quoted context omitted.

5 years of SQL experience and no idea of what a join is? Isn't that like saying 5 years of C/Java/C#/... experience and not knowing what assignment is?

After interviewing thousands of candidates over the years, I say anything is possible. One candidate I recall was 24+ years of development experience mostly consulting in firmware. He graduated from a top school and was referred by our VP of ASIC engineering. Yet he struggled at the most basic C pointer question. He tried everything in the interview to prevent us from asking any coding questions.

Oh my! How can you work in firmware and not know the basics of C pointers? Firmware is mostly C!

Re: People suck at technical interviews (2014)

#244

Earlier quoted context omitted.

Store it in memory? I doubt the amount of data they provided for a test problem was so tremendous that it required a database. In itself this is a good (dis)qualifier; if I give someone a problem and tell them the data will never exceed 10k rows, I expect them to be practical and not waste time setting up a database.

The flat line in the bathtub curve is where given "data will never exceed 10k rows" implies no database. On the inexperienced end, people don't understand that 10k rows doesn't require a database. On the experienced end, candidates probably oughtn't to believe it.

Absent an instruction to specifically "do not use a database", I feel like even 10K rows suggests the use a database as the data structure and then the DB query interfaces as the interface.

I don't see why you wouldn't use a database for a problem that it's particularly good at addressing.

Re: People suck at technical interviews (2014)

#245

Earlier quoted context omitted.

At a previous startup, we gave potential developers a very simple test: we had a file with a comma separated list of movie titles, release dates, etc. The candidate was expected to: - read that file in - store it in some sort of data structure - allow users to run commands to retrieve movie titles based on name, release year, etc. Command-line was totally fine, you had access to the Internet, and as much time as you…

Brilliant! I may wind up stealing this as an alternative test for more advanced programmers; everything here can be done using the Python Standard library. And kudos to those of you who suggested in-memory storage vs. writing it out to a table.

Weird thing is I was writing the code in my head a I read the instructions. Hard to believe people would fail that but years of hiring have shown its true.

Re: People suck at technical interviews (2014)

#246
I think the problem is not whether you can design a 100% awesome tech interview process that will have high precision and recall. That is known. Spend enough time with the person basically to judge him rather than asking few questions to taking him to whiteboard.

But then most companies wont be able to show profits if the start spending that much resources on each candidate. Hence they optimize their processes only for precision and not for recall. That explains why a lot of people fail first few times.

Re: People suck at technical interviews (2014)

#247
post #92

Earlier quoted context omitted.

That was a very fascinating read, and completely illusion-shattering regarding the skill tech companies have in giving offers to good candidates. Social proof provided 90% of his increase in market value. I am not doubting that he is a very skilled developer, but this was certainly not the key reason why he got such a good offer :)

It's ALWAYS about who you know. Always.

That's not what I got from the story -- he mentions how he got warm referrals (the "who you know") to employers that went tepid quickly after the interview ... but then the same ones suddenly wanted him once he claimed (truthfully, though without proof) that he had standing, big offers from other employers.

Re: People suck at technical interviews (2014)

#248
post #139

Earlier quoted context omitted.

What if that shop builds race cars and trophy trucks? Are you okay with the part being replaced being of higher quality and finish than the original? What about some advanced alloy that would not have been financially do-able for a manufacturer to use? When hiring someone with "fabrication skills" into a machine shop, you certainly don't expect them to order a part during the interview when you just asked them to mak…

I'm going to hazard a guess that you don't have any manufacturing experience due to shibboleths: you said "fabrication" but you meant turning, not sheet-metal bending. Did I guess right? This is a common interview tactic: trying to figure out if someone belongs to a group known to have particular skills by their choice of words or similar.

Turning parts on a lathe (and machining/milling) fit in my definition of "fabrication skills". (Mechanical engineer and a few hundred hours in the machine shop, but not a full-time machinist by any means.)

Re: People suck at technical interviews (2014)

#249

Hiring Manager Perspective: Everyone lies, sorry. As a candidate, I hate technical interviews. For the reasons above. As the poor schmuck asked to make the hiring decision, however, I've learned that I can't live without them. My technical isn't complicated. A very basic SQL assignment (delivered to an audience which claims to know SQL) that is followed by a few broader database design / data process QA questions. En…

> Hiring Manager Perspective: Everyone lies, sorry. Yeah, and honestly, that includes hiring managers. I've rejected offers because the hiring managers level of deception exceeded my tolerance for bullshit. > About candidates who claim to know a skill but literally cannot write even basic syntax on the whiteboard. Yes, I don't remember the syntax from 5+ languages well enough to write it in on a whiteboard. Yet someh…

>Yeah, and honestly, that includes hiring managers.

Not just the example you gave -- they also lie whenever they list something as "required" and then hire the go-getter who's missing some of the skills.

Re: People suck at technical interviews (2014)

#250

Earlier quoted context omitted.

I've recently got into the interviewing for devs game. Now we're a perl fairly specialised shop, and we only hire experienced people so that makes things relatively easy (candidates need to demonstrate a depth of knowledge, and . The pool of people around is relatively shallow too. We don't actually need to ask people technically detailed questions about specific algorithms. We have a conversation. From that conversa…

One of my favorite questions is asking people their least favorite and favorite languages then asking people to give one of their favorite features in the least favorite language, and least favorite features in their favorite language. Shows that they've actually spent time thinking about their tools. You get a surprising amount of insight from it, depending on the answer.

I hate the question -- I do think about my tools, constantly, but whenever I've been faced with that question, I don't have a "best" and "worst" lined up, and have to think about the question for a few minutes to recall all the moments of frustration, and so anything I give on-the-spot will sound stupid.
Post reply on HN