Hacker News new | past | comments | ask | show | jobs | submit login

Obviously interviewing isn't 100% accurate. Almost nothing is. You definitely can't tell in 60 minutes whether someone will be a success at your company.

But you often can tell, with very very nearly 100% confidence if someone will not be a success. And that is the purpose of the interview. To filter out the "definitely not"s — the programmers who can't write fizzbuzz. And yes, I have seen plenty of these.

And interview is not the be-all and end-all of recruiting: of course it isn't. But I'm seeing a pendulum swinging a long way in the other direction now, and a lot of people talking as though interviews are worthless. They're really not.

And yet the discussions on the candidate post-hiring interviews mostly revolves around whether they confirm to the company/tech/what-have-you 'culture' which, imo, is simply a euphemism for ageism, in-group bias, prejudice, hubris, and one-upmanship more often than not. The world would be a better place if people started accepting the fact for what it is: There wouldn't be so much despair around the tech interview process if not everything was broken, surely?


https://news.ycombinator.com/item?id=9166501 (On Secretly Terrible Engineers).

https://news.ycombinator.com/item?id=19541617 (How Not to Hire a Software Engineer).

> company/tech/what-have-you 'culture' which, imo, is simply a euphemism for ageism, in-group bias, prejudice, hubris, and one-upmanship more often than not.

In my experience working with a couple of wildly different companies who prided themselves on "culture", it's largely just "don't be a dick".

It's still important though.

And yet when a company tries to reduce a candidate to a consistent set of objective criteria as best it can--meaning, the ability to understand programming problems and solve them in a structured interview--people get upset because it doesn't account for the "big picture" of the candidate and unfairly excludes people who'd otherwise be a great fit.

The reality is that any interview procedure is bound to have some false positives and some false negatives, and there will always be people who see themselves as false negatives (correctly and incorrectly) who'll complain loudly about any procedure.

If it were only true or false negatives complaining, that would be one thing. But lots of the complaining also comes from true positives. I've gotten every tech job I've interviewed for since college, and have usually been quite successful in the companies I've worked for. I think all of those interviews were evaluating me on the wrong metric. They evaluated something I also happen to be relatively good at - I have a CS background and I'm ok at contrived little programming problems - but I believe the companies just got lucky that I'm actually even better at the kinds of things that are important in my work - problem analysis, solution design, consensus seeking, teamwork, communication, writing, debugging, research, detail orientation, automation, process definition, etc. etc. etc. - none of which has any real overlap with writing little code snippets.

All of those things, though, are inherently hard to test in a way that's fair, representative, and not easily cheated. Anyone who had a reproducible, consistent way to evaluate which candidates are good at those things would be able to make a whole lot of money.

I don't disagree, but that also doesn't mean coding interviews like we do them now are the best alternative.

Heh. The last couple time I've seen a candidate rejected for "poor culture fit", it was because the candidate themselves demonstrated ageism or racism.

Racism as in speaking up against reverse racism?

Unfortunately, no. Explicit racism: making negative assertions about specific races. During the interview. :|

First I was going to express disbelief that any candidate would think that was OK to do. But somebody could be a racist trying to find a racist employer that accepts that kind of talk. Weird & wrong, but rational, and probably something they do all the time in other parts of their life.

Then I had the outlandish idea that the local employment opportunity office is getting especially gung-ho and sending decoys through the pipeline. That would be a fun job. Basically getting paid to be a shock comedian who bombs every time.

How would you know if you failed in identifying someone as not being able? You wouldn't hire them so you wouldn't know when you were wrong

Hiring a bad person is worse than passing on a good person. You have to optimize your interview process to account for this, and that means you will almost certainly pass on some good candidates.

Yes, to some extent you have to accept that you could end up passing on some candidates whom could have turned out to be good employees. Couple thoughts though: 1.) It's still only in hindsight that you could say something like that (ie. "wow that person really did turn out good") 2.) If you're still hiring good employees at a decent rate, does it matter? Short of being 100% efficient (which is an inappropriate goal anyways), you'd only need to address this if you were somehow not hiring anyone or hiring way below industry pace

> You definitely can't tell in 60 minutes whether someone will be a success at your company.

> But you often can tell, with very very nearly 100% confidence if someone will not be a success.

These two statements are at odds. If you can tell one you can tell the inverse.

The truth is you can't tell in either direction from a single 60 minute interview. Your "very very nearly 100% confidence" rate is outlandishly wrong.

> These two statements are at odds. If you can tell one you can tell the inverse.

Only if you treat candidate aptitude as binary. Really, aptitude is probably better thought of as a spectrum, and if that's the case then it is not a contradiction to say that you know that (1) someone wouldn't be an obviously bad employee and (2) that same candidate might only be a meh employee.

Exactly. You want to know, roughly, something like "is this candidate in the top 10%?". You might conclude "She seems to be at about the 85th percentile, give or take 10%", so she might be in the top 10% of might not. But you might conclude "He seems to be at about te 50th percentile, give or take 10%", in which case you're not interested. There is a fundamental asymmetry here.

It's hilarious to me that your name is BinaryIdiot and your post is a false dichotomy.

Except for extreme outliers it is not clear that it's possible to tell with much confidence in either case. Why do you think it's possible to have such high confidence in one case but not the other?

Because if you can't FizzBuzz, you definitely aren't going to be able to pick up the codebase in a satisfactorily short amount of time.

If you come in in gross clothes and swear, you're not going to fit the company culture.

If you're rude to your interviewer, you're not likely to be less rude to your other coworkers.


I cannot recall the last time I interviewed someone for a position other than intern who could not at least muddle through a FizzBuzz problem. I'm talking hundreds of candidates. The likelihood of a "lucky streak" as long as that if "can't FizzBuzz" is common (i.e. not an outlier) is small.

Usually when I dig into a person claiming "can't FizzBuzz is common" the result is I find what they're calling "FizzBuzz" is nothing of the sort, but is actually a more tricky data structures or algorithms problem.

I have to assume you are doing some kind of very strict resume screening or your application form is behind a puzzle or something - I 100% guarantee if you post your job broadly and interview everyone who applies you will have a very bad fizz buzz rate (and probably go insane), and I believe that if you do filter but try to keep an open mind to non-traditional backgrounds you will have a pretty significant fizz buzz fail rate. (I too oversee the screening of hundreds of candidates out of thousands of applicants.)

I've gotten enough candidates who can't FizzBuzz to say you can expect to get at least a couple in a group of 100 candidates. More or less depending on what screening you do before interviews.

There is definitely a second line above the simple FizzBuzz many more candidates would have a lot more trouble with two nested loops.

Several years ago I asked a potential programmer candidate what their favorite operating system was and they replied "MS Office". I couldn't end the interview quickly enough.

I agree about FizzBuzz.

But how often do interviewees showing up with gross clothes, swear, or be rude to interviewer?

I'd say almost 0?

Funny that this was brought up. I agree fully that it's rare. But...a friend of mine was "den mother" for graduate students in a top 20 comp sci program. The students were often doctoral candidates but could also be MS students doing a thesis. A large part of her job was prepping them for interviews with companies like Google, MS, Oracle, etc. Here are a few gems she had to remind/inform them of.

"Yes, you have to shower the day of an interview."

"It's never acceptable to pull out your lunch and eat in the middle of the interview, please don't do it again."

"Yes, you have to wear something other than the shirt you slept in."

If I was going to an interview with a company like that, I would want to know - will they reject me if I wear a suit? If so, what is safe to wear?

It depended on the company. MS interviewers came in khaki slacks and buttoned down shirts. Google came in jeans with lots of ink and piercings on display.

Part of my friend's responsibility was to give feedback to the interviewers. Her students were passing over MS to go to Google, despite MS offering significantly more for a salary. Their interviewers asked her for feedback to figure out why. She had to politely say that Google was seen as cooler. (The cooler impression wasn't just the image gained from the interviewers, it was the problems Google was trying to solve. But, the interviewers added to the company's image of "coolness".)

She held this position probably a decade ago and left after a few years. Things may be different now.

Will they reject you for that? Probably not. Would a lot of employees of tech companies (particularly west coast) interpret it as a lack of familiarity with the industry? Probably. Jeans and a button down or a button down and slacks seems pretty standard in my experience.

Not being rude to the interviewer is to social norms and personality as FizzBuzz is to programming skills.

It's so simple you wouldn't expect people interviewing to fail it, but it still happens.

"I'd say almost 0?"

It's definitely higher than that. It is a pretty easy thing to avoid, you'd think, but some people fail.

I went to an interview in the UK (fancy add/marketing agency) and they (the interviewer) had such a dirty messed up t shirt on, that I would not wear to dig the garden.

Interviewing goes both ways. The company is interviewing the candidate, and the candidate is interviewing the company.

There is an asymmetry in the reaction though - being turned down by a company is regarded as just something that happens, turning down a company once you've had an offer seems to cause genuine shock.

Wouldn't that be more because people would expect the rejection to happen pre-offer if it's about anything other than compensation(turning down for compensation is normal, e specially with multiple offers)?

Two of those things is not like the other.

They are all in the same category when you consider basic professionalism.

Working is getting along in a social environment, not just coding.

I've been programming for 35 years and I can't fizzbuzz cause I don't know what it is. Yes, I've heard about it before cause it's mentioned on forums, and I even looked it up once, but I always consider such things childish. (I honestly don't remember anything about it.) Ask me about an algorithm and I'm there but don't play games with me.

EDIT: Just looked it up. Yep. A game. Now compare that to my years of accomplishments and you'll say asking me to write fizzbuzz childish, too.

Fizzbuzz isn't a trick questions that you have to have heard of. It's designed to be an EXTREMELY easy question, answerable by anyone with even a basic knowledge of programming. It's not a game. It's a way to weed out people that don't know anything.

If you have been programming for 35 years, you'll probably be appalled by how easy it is. Look it up.

I never said it was a trick question. Where did you and the other guy come up with that?

It may be easy but you would have to explain it to me if you were interviewing me.

After looking up what it is, as I said I did, yes, I could do it easily but don't ask me to code your game "fizzbuzz" as if I would know what it was.

No-one remotely confident would ever fail a candidate for not knowing what "fizzbuzz" means. But any competent interviewer would fail a candidate who, having have "fizzbuzz" explained to them, could not implement it.

In internet discussions, people say "write fizzbuzz" because it's a well known trivial problem.

In an interview, they ask you to print the numbers 0..n to the screen, while replacing numbers divisible by 3 with the string literal fizz, and numbers divisible by 5 with the string literal buzz. The biggest trick or gotcha is that they will also specify that numbers divisible by 15 should be replaced with 'fizzbuzz', but they'll probably say 3 and 5 instead of 15.

If your list of accomplishments is really as impressive as you say, you can write a loop, a conditional, and use the modulus operator. And honestly if someone couldn't figure out modulus, they might still be able to pass. (But I'd be VERY curious about their background)

Fizzbuzz is not a trick question. It's not a difficult question. It's not meant to make you look stupid if you know how to program. It is only meant to check whether you understand conditional logic and looping. It's intentionally chosen to be the lowest of low bars, because there are so many people who literally can't program but apply anyway. All it's meant to do is weed out the people who have never programmed in their life.

I never said fizzbuzz was a trick question.

The OP said that one should know how to write a fizzbuzz. I said I couldn't cause I don't know what it is. That doesn't mean I couldn't once it was explained to me.

My point is that they clearly didn't mean you should be able to write one from hearing the word fizzbuzz. It's used by name online because it's fairly widely known around these parts. In an interview question it would be given to you as a set of requirements, not just the word fizzbuzz.

You wouldn't be asked to "fizzbuzz". You would be asked to write an extremely trivial program, which would take you about 3 minutes.

Also, if you have guaranteed years of experience, fizzbuzz isn't for you. However, a suprisingly large number of applicants who can write an impressive looking CV can't write it.

I've also "heard" that the ratio of people who fail at fizzbuzz is truly disturbing even if they have impressive CV's.

It makes me wonder, though. Has anyone ever just admitted they failed at fizzbuzz here on HN?

I can imagine someone bombing it if they're nervous or if they forgot the modulo operator in their language of choice and got lost doing it an "ugly" error-prone way because they were too embarrassed to change tack once started.

If someone reasonably competent were to spend years working with some limited api's, on a codebase that has hundreds of man-years on it, could they fail at fizzbuzz when asked out of the blue? I think so.

I've wondered before how many of the "OMG tons of candidates can't fizzbuzz" anecdotes come down to messing up syntax or forgetting the name of something in the language they're using and mixing in something from another language, or making a plausible but incorrect guess. I could definitely see doing those things in an interview, and I've usually been considered the "smart one" or one to come to with weird/low-level/architecty problems where I've worked. Hell I know for a fact I once used the wrong friggin' method invocation syntax in an interview. That stuff barely has any place in my long-term memory, I mostly rely on context to get it right when doing real work.

I can also see a lot of folks forgetting about the modulus operation and doing something uglier and smug interviewers deciding that means they're a fraud and/or an idiot. I've only used it a handful of times in real code, in... oh man, over 15 years. If it hadn't been (for some reason) among the first things I picked up when first learning to write code it might not be as relatively-well stuck in my head as it is.

It depends—when I was at one of the really visible companies, it wouldn’t have surprised me if as much as a third of the people I screened had lied on their resume. I’d ask folks to write functions to count the number of times the letter ‘a’ appears in a string, stuff like that. Did not need to compile or run.

I had a person break down and confess, and we spent the rest of the interview talking about how their codecademy lessons were going.

That turned out surprisingly wholesome.

I really don't think it is very many. There are clear patterns of failure for fizzbuzz - the biggest is the "copy-paste programmer" who sees a blank canvass and just has no idea where to start. Then you have your people who can write conditionals but can't reason about them - they will very often end up with a solution that compiles, but always prints the number no matter what, or never prints FizzBuzz, or some other obvious error that should be apparent on a quick review of ones code. Most of these people also take 10-15 minutes to write it out, where competent programmers consistently bang it out in five minutes or less. (And yeah, some of them probably know it by heart by now. Oh well.)

Screening someone who just absolutely can't program at all is, IMHO, by far the worst part of technical interviewing.

> a suprisingly large number of applicants who can write an impressive looking CV can't write it

There was another HN thread recently where posters were ardently justifying lying on their resumes.

Anyone who can claim to be able to code at least a bit should be able to implement FizzBuzz. As such, it's a childish joke for most programmers.

But the alarming thing is that I've read there are people coming to programming interviews who can't fizzbuzz despite the experience listed in their CV. While rather unbelievable, if it really is true then it only makes sense to ask candidates to write FizzBuzz in the first screen before they waste any more of the teams' time.

No sane interviewer says "write Fizzbuzz" as if you should already know what the name means. They give you the specification.

That's what I'm saying.

FizzBuzz is much less of a game and much simpler of an algorithm than e.g. looking up something in a sorted binary tree. Do you have a problem with the latter as an interview question?

No I don't and that's my point.

An awful lot of programmers have very high and entirely unjustified view of their programming abilities. I'm sure they find the hiring process weeding them out to be very frustrating.

This would be more applicable if the interviewing process had any correlation with on the job expectations. Working on a job also requires: 1. Communication about expectations with team lead, PM and other stakeholders, vetting requirements, and pushing back where necessary. 2. Writing tests that cover as many edge cases as possible (This actually takes just as long as coding a feature if done right) 3. Understanding the pipeline and release cycle, and being able to build new hooks 4. Look at stack traces to debug application crashes. This usually involves debugging code that other people have written. 5. Review other engineer's merge requests, and communicate in a emotionally aware manner.

A leetcode/hackerrank type interview does not test any of these skills. If I work on improving these skills that make me an amazing engineer, it does not get me far in a typical interview, hence my frustration with their "weeding".

And then there are those of us who, even with an overwhelming amount of evidence to the contrary, feel incompetent.

Yes, I know about impostor syndrome. I know a few who've confessed to me they suffer from it - and I sure prefer to work with them than the delusions of grandeur types who waste my time.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact