News for hackers. Stuff that matters.
Re:The Utter Uselessness of Job Interviews by andrewmutz on Sunday April 09, 2017 @02:00PM (#14073500)
How does this work in practice?

If there are consistently used questions and specific criteria for assessing responses, can a candidate just learn the likely questions and what constitutes the "right" answer?

Re:The Utter Uselessness of Job Interviews by tptacek on Sunday April 09, 2017 @02:06PM (#14073527)
This is a good and important question. Also: while I have a lot of respect for people at Google trying to innovate on hiring, make no mistake: Google's heart is in the right place, but they aren't at the forefront of structured hiring, and their hiring processes are notoriously capricious.

The reality is that generating good questions for a structured interview is difficult. You can't just pose a programming problem. As you've noted, most programming problems have multiple good answers. Differentiating between multiple good answers from different candidates re-introduces subjectivity. Your brain would rather convince you that one valid answer is less good than another, even when it's not, that to admit to you that it can't differentiate or generate a narrative for you. The part of your brain that generates narratives is incredibly powerful and does not care about how accurate your hiring process ends up being.

What we tried to do was create questions that generated lists of facts. "Spot all the errors in this code" would be an example of this approach (but none of the three we used). We went into the process wanting to embrace epistemological uncertainty, generating a historical trail of data that we could retrofit to candidate performance.

In the end, work sample testing was so much more powerful a predictor for ourselves that we never fully got around to analyzing the data. Sometimes we'd get candidates that clearly generated inferior "lists of facts"; I think there may have been 1-2 instances where that outcome actually overruled work-sample testing delivered prior (out of a few tens of engineering hires and probably ~100 interviews).

Re:The Utter Uselessness of Job Interviews by peripitea on Sunday April 09, 2017 @04:32PM (#14074224)
Making sure I understand you: When you refer to work sample tests here, that refers to the crypto challenges and things like that that you published at Matasano? And you're saying that was much more predictive than the list of facts methods, right?
Re:The Utter Uselessness of Job Interviews by tptacek on Sunday April 09, 2017 @06:25PM (#14074663)
That's what people ordinarily assume I mean, but while our work sample challenges were similar to the cryptopals and Microcorruption stuff, they were not the same, or even derived from them. They were designed specifically to qualify candidates, and in fact predated our public challenges.
Re:The Utter Uselessness of Job Interviews by sgustard on Sunday April 09, 2017 @08:15PM (#14075065)
Just to further clarify, by work sample you do NOT mean an example of previously produced work? This still seems fickle: my dozen years of work output (for example, building and running a site with perfect uptime for millions of users) is not as valid an indicator of my future performance as how I happen to score on some arbitrary timed test?
Re:The Utter Uselessness of Job Interviews by tptacek on Sunday April 09, 2017 @11:45PM (#14075837)
Absolutely not. Samples of previous work are deceptive at the best of times.
Re:The Utter Uselessness of Job Interviews by peripitea on Sunday April 09, 2017 @08:01PM (#14075018)
Ahh, interesting. Would you mind sharing an example of how they were different, or how the fact that they were specifically for qualification changed the thought process? I'm working on making tech interviewing better and am fascinated by this stuff.
Re:The Utter Uselessness of Job Interviews by leksak on Sunday April 09, 2017 @08:45PM (#14075182)
NDAs? Everything I've done yet is proprietary and judiciously covered by various binding legal agreements.

I wouldn't breach such a contract nor should you hire someone that would be willing to do so. The sole exception being in the cases where it would be the best for the public interest, i.e. whistle-blowing.

Re:The Utter Uselessness of Job Interviews by mbesto on Sunday April 09, 2017 @03:37PM (#14073980)
> but they aren't at the forefront of structured hiring,

Is anyone though?

Re:The Utter Uselessness of Job Interviews by nostrademons on Sunday April 09, 2017 @02:16PM (#14073583)
Google tries to keep interview questions confidential - that's why candidates sign an NDA - and periodically rotates out questions that have appeared in public. Many engineers are also continually trying to think up new questions as well, usually based on their work.

For most questions, there's no "right" answer, but there are a set of points that the interviewer wants to see you touch on. For example, they might first want to see that you can code up a naive brute-force variant of the algorithm, checking whether you know the programming language claimed and can think through the problem, and ask you the algorithmic complexity. Then they'll want to see if you can get a divide-and-conquer or dynamic programming variant with lower time complexity. Then they might ask "What if it has to be an online algorithm, where new input arrives before the computation finishes?" Then they'll ask "How would you distribute this over 1000 machines, and what are the failure modes?"

At each stage, they're watching how you answer, and where you get stuck. If you ask clarifying questions or spend time to think before diving into coding, that's a plus. If you have never heard of the problem before (this is frequent - many questions are not in textbooks), they want to see how you would reason through it, and break it down into subproblems that are similar to textbook problems. If you miss language trivia, most people don't care; when I did interviews I'd usually volunteer the answer if they missed some API call, and when I interviewed my interviewers did the same. If you don't know how to solve the problem and can't make any effort to move forward through a solution, that's a big negative. Similarly if you don't know what the concept of big-O is or why it's important.

Re:The Utter Uselessness of Job Interviews by tutufan on Sunday April 09, 2017 @02:55PM (#14073754)
Maybe, but that doesn't sound like my interview at Google, which was interesting but really rather random. Perhaps most notably, one interviewer became irate that I didn't know the "ps -o" flags off of the top of my head. :-/
Re:The Utter Uselessness of Job Interviews by bshimmin on Sunday April 09, 2017 @04:04PM (#14074091)
According to `man ps` on my Mac, there are nearly seventy of them - how many did he want you to know?!
Re:The Utter Uselessness of Job Interviews by wpietri on Sunday April 09, 2017 @05:11PM (#14074389)
It's been a long time since I interviewed an ops person. But when I did something like this, I'd ask, "Name as many arguments to ps as you can." (Or ls, also good.) I didn't really care about which flags they knew. What I was looking for was a pattern. Anybody good knows some arguments cold. Often they know them so well as part of a phrase that they have to think about what the individual ones mean, which tells me that they've done something enough that it's become a habit. Then they'll know a few others that they use occasionally. And then they'll stretch to name a few more that are obscure for them.

But the real magic comes when they run out. What do they do then? Good people say that they don't know. Often, they will take guesses at a few more based on general principles. E.g., "I'm sure there are arguments for sorting, but I only use top for that." Or, "There must be more ways to filter, but I only do it by user or command." They'll usually look a bit uncomfortable, because they are the sort of person who likes knowing things. But what they won't do is bluff or make things up.

And honestly, that's my biggest tip for hiring: find people who like understanding things and know a good amount for their level, but are willing to say when they don't know. People who can't do that are dangerous.

Re:The Utter Uselessness of Job Interviews by tptacek on Sunday April 09, 2017 @06:27PM (#14074673)
I feel pretty comfortable with my Unix abilities, and have held ops roles in the past, and I would have bombed this question.
Re:The Utter Uselessness of Job Interviews by wpietri on Sunday April 09, 2017 @08:24PM (#14075094)
I doubt that. The only way to bomb it is to make shit up, and I don't think you're the sort to do that.

I don't score it by how many option-letters people know. I score it by how well they demonstrate familiarity with a basic ops activity, which is finding out what's running.

Even if somebody said they never used ps, or like below, only use one incantation, that isn't a problem, because my follow-up there would be to ask how you'd find out what's using all the RAM or what's using a lot of CPU.

Maybe they're just used to using different tools, in which case I can ask for details for those tools. (And then check manually later to make sure I'm not getting snowed.) But if they've done a bunch of ops stuff, they'll demonstrate the sort of know-from-doing level of familiarity with something.

In theory I could just ask the broader question to start. But some people are good talkers, and I'm looking for evidence that people are good doers. All that said, I've shifted mainly to more experiential interview processes, as actually doing is the best way to see if somebody's a doer.

Re:The Utter Uselessness of Job Interviews by kasey_junk on Sunday April 09, 2017 @09:14PM (#14075309)
I would almost assuredly stop the interview at this point and try to figure out what your malfunction is.

To me any question where the obvious answer is "I can trivially look all that up in the man pages" is a gigantic red flag that I don't want to work at that place.

If I'm feeling curious that day, I might begin a conversation about what you think you are testing for with that question, as I've spent a fair bit of my career studying hiring pipelines. But if I hadn't had my coffee yet or were irritated or something I'd probably just ask to talk to someone else.

Re:The Utter Uselessness of Job Interviews by wpietri on Monday April 10, 2017 @12:38AM (#14076063)
That's fine. If you go into something assuming that anything you don't understand is a malfunction, and you excuse your rude behavior with your mood and/or caffeine level, you're probably not the kind of person I'd want to spend a lot of time working with.

That said, as I've explained elsewhere in the thread, the point isn't to see how many they know. It's to see that a) they know some portion of it that people doing the work would know, and b) have reactions to the rest that indicate useful work habits and attitudes.

A perfectly find first answer to is "I only use ps -aux. I'd just look in the man page if I needed anything else." Because then we could have a good discussion of how they use that output to figure out things, what sort of things they'd expect to see in the man page, and what other tools they use to see what's going on.

Re:The Utter Uselessness of Job Interviews by tptacek on Monday April 10, 2017 @12:56AM (#14076145)
I'm pretty confident both of you are people I'd be happy to work with in the future and so I want to use this as an opportunity to point out that your reaction to what Kasey said his reaction would have been to your interview question practically guarantees that you would fail to acquire Kasey for your team. I know Kasey a little bit better than I know you (he's a Chicago person) so I'll just sum this up as "that's not a point in the win column for this interviewing strategy".

I know you're not asking people recite "ps" flags from memory. The problem is, you're looking for a subjective "X-factor" in how someone answers a trivia question.

I used to really like this approach too. I'd think of things that you'd only know if you'd actually done the kind of work I'd done. I had some favorite interview questions: "what are some of the functions you carry around with you from project to project in your 'libyou.a' library", and "where would you start looking if you had to debug a program that segfaulted in malloc"? I think the logic I was using is the same as the logic you're using here.

Ultimately, I think it's a bad approach. Equivalently strong candidates look at their work through different lenses, and find different things memorable. Far more important to me, though, is that some people really suck at interviewing --- and, what motivates me more, having succumbed to this repeatedly as a hiring manager and also being myself I think an example of the phenomenon --- some people just interview way better than they should.

Re:The Utter Uselessness of Job Interviews by kasey_junk on Monday April 10, 2017 @09:16AM (#14078208)
The issue with this question falls into 2 main categories. The first is that its a rude question. The basic premise seems to be, "if you are an experienced ops person you have to know something about ps". Which may be true, but by asking it of an experienced operator you are hinting that you don't believe their resume. There is a much more straight forward way to see if they are lying on their resume, call their references and prior employers. For really good operations folks, the answer to this question might be "I haven't needed ps in so long I've forgotten how it works. I've automated away the process running abstraction and have a library of python/bash/salt/chef/esoteric top commands/etc that I find more useful than remembering ps flags". This question implies their experience in that regard is also suspect.

The other problem with this question is that, by its phrasing, it implies that there is a right answer. If I can name more ps flags than an other person, I'm a better candidate. Which when put that way, I think points out its faults. Maybe you don't intend for that to be true, but you'd have to fight your own cognitive biases pretty hard to not at least bias towards the person that can name 17 flags off the top of their head, or the one that teaches you a new flag combo you didn't know. Even though those things are likely not that good of predictors of a good candidate.

You've said what you really want to get to, is can they admit when they don't know something. If that is important to your hiring process (and I'd encourage you to validate that with data), ask them a question no one could know the answer to. Ask the same question to every candidate, and grade it purely pass fail. Did they say "I don't know" or not.

Re:The Utter Uselessness of Job Interviews by blacksmythe on Monday April 10, 2017 @03:10PM (#14081601)

  >> admit when they don't know something... encourage you to validate that with data
Correlating this with employee performance data might not be the only metric.

My experience is that people that won't admit they don't know something are not necessarily bad employees. Often they are capable employees, although this is a trait I rarely see in the best employees. However, I find they are toxic to a good work environment, since they won't listen to people who do know something.

They do seem to get promoted to management had a much higher rate :)

Re:The Utter Uselessness of Job Interviews by kafkaesq on Sunday April 09, 2017 @06:36PM (#14074707)
They'll usually look a bit uncomfortable, because they are the sort of person who likes knowing things.

So the process is, in fact, designed to make people feel uncomfortable, for a little bit (or at least you're definitely aware that this is a frequently occurring side effect).

Does that not suggest to you that there may be a negative tradeoff at play here? (To wit: yes you do manage do efficiently extract a few bits of information from them... but at cost of having them feel like they're being, well... interrogated. And are already "losing points" by that point in the conversation with you).

Re:The Utter Uselessness of Job Interviews by nostrademons on Sunday April 09, 2017 @08:12PM (#14075057)
I think part of the point may be to select for people who don't consider "being interrogated" to be a contest. There are plenty of folks who are just like "Here's what I know, here's what I don't know, you decide whether you would want me on your team. If you don't, that's fine, I'll find another team to join." Then there are other folks who, when they're asked a question and don't know the answer, feel like their self-worth is under attack. The latter group can be really hard to work with, and can do a lot of damage to a team.

I had a PM friend who would try to push the bounds of a candidate's knowledge until they gave up and said "I don't know". The actual knowledge wasn't the point of the question: it was that they could say "I don't know", because PMs who can't tend to make life miserable for the engineers & other teammates who work with them.

Re:The Utter Uselessness of Job Interviews by wpietri on Monday April 10, 2017 @12:41AM (#14076087)
Yes, exactly. I think to be a good developer, you have to be willing to keep learning. And to be a good developer in a team context, you have to be willing to learn from your teammates, ask for help, and share knowledge in a way that's supportive, not prideful.

And I agree with your PM friend; I think willingness to admit ignorance is even more valuable there.

Re:The Utter Uselessness of Job Interviews by wpietri on Sunday April 09, 2017 @08:26PM (#14075104)
If somebody goes into an interview expecting never to be asked a question they might struggle with, I'm not sure they're somebody I want to hire.

But no, I don't think they walk away feeling interrogated. My style is pretty conversational, and when people don't have all the answers, I definitely work to make them feel comfortable with that. E.g., for this question I'd close with something like, "Of course nobody knows all the arguments to ls. I sure don't. So you did fine."

Re:The Utter Uselessness of Job Interviews by employee8000 on Sunday April 09, 2017 @06:04PM (#14074587)
This is a stupid trivia question. I use ps -ef and leave it at that. In my entire career I've rarely needed anything else and if I did I would look it up but never enough to remember. To base an interview question off of that speaks volumes about you.
Re:The Utter Uselessness of Job Interviews by wpietri on Monday April 10, 2017 @12:52AM (#14076127)
Well, yes and no. If somebody just scored it as written, giving points for each argument known, it would be a dumb trivia question. But as I said, that's not what I do.

Try it next time you're mingling with ops people. Say in a bar at a conference. Don't look at what they answer. Look at how they answer. Some people are comfortable not knowing. Some people are excited to discover the ones they forgot they knew. some people get curious and eager to fill the hole they've just noticed in their knowledge. And some people get defensive and peevish.

Re:The Utter Uselessness of Job Interviews by a-priori on Monday April 10, 2017 @11:54AM (#14079548)
Some people focus their curiosity on more important things than arguments for a command line utility.
Re:The Utter Uselessness of Job Interviews by mjevans on Sunday April 09, 2017 @07:31PM (#14074903)
I agree, and it's interesting that you know -e, while I've memorized -axuf ; I guess it's more portable?

Again, this is one of those, "Here's what I've got cached, and here's where I'd look up what I don't know offhand" questions.

Re:The Utter Uselessness of Job Interviews by jwilk on Sunday April 09, 2017 @08:04PM (#14075032)
No, "-axuf" is a weird mixture of BSD and POSIX syntax.

From the ps manpage:

Note that "ps -aux" is distinct from "ps aux". The POSIX and UNIX standards require that "ps -aux" print all processes owned by a user named "x", as well as printing all processes that would be selected by the -a option. If the user named "x" does not exist, this ps may interpret the command as "ps aux" instead and print a warning. This behavior is intended to aid in transitioning old scripts and habits. It is fragile, subject to change, and thus should not be relied upon.

Re:The Utter Uselessness of Job Interviews by cr0sh on Monday April 10, 2017 @10:13PM (#14084329)
I'd probably be snarky and say "I don't know - but I can google it!"

/actually I'd probably hit up the man page first...

Re:The Utter Uselessness of Job Interviews by sjg007 on Sunday April 09, 2017 @07:56PM (#14075004)
dangerous because they prefix things with sudo?
Re:The Utter Uselessness of Job Interviews by wpietri on Sunday April 09, 2017 @08:28PM (#14075113)
I imagine there's a correlation there. But for me it's the danger that instead of admitting when they don't know they'll just bluff, going off and building things that look good but aren't. If somebody knows their limits and can admit them, you have to supervise them much less closely than a bluffer.
Re:The Utter Uselessness of Job Interviews by tutufan on Monday April 10, 2017 @03:32PM (#14081803)
He probably had at least five or ten in mind. I prefer other methods of extracting this information. Usually 'ps -efly' piped into tools like awk/etc to gather what I want, or on occasion, extracting directly from the /proc filesystem. He did not consider these to be proper alternatives.

Since the 'ps -o' flags are only useful in that one command, I just look them up in the (rare) situation where they seem the best alternative. Having been at this for decades, I try to reserve my limited memory capacity for factoids that will pay off, and being able to process columnar data generically at an instant seems more useful than knowing a special way to do it with that one command.

Re:The Utter Uselessness of Job Interviews by rocket_woman on Sunday April 09, 2017 @04:11PM (#14074120)
If the stuff online on Quora etc. are to be believed, the hiring committee will disregard such trivia interviews (and possibly send a node to the interviewer asking him/her to correct their technique).

Not sure how well this works in practice though.

Re:The Utter Uselessness of Job Interviews by ubernostrum on Sunday April 09, 2017 @05:14PM (#14074404)
Last time I was job-hunting I experimented with Google to see if their interviews were as bad as everyone said.

They were. I was asked a ton of this kind of Linux/Unix trivia in one session. As well as just random stuff. For example:

https://twitter.com/ubernostrum/status/659182356171874304

https://twitter.com/ubernostrum/status/659182564309995520

https://twitter.com/ubernostrum/status/659182708996706308

Re:The Utter Uselessness of Job Interviews by gjm11 on Sunday April 09, 2017 @06:15PM (#14074632)
The question there was something like "roughly how big is 2^24?". I actually think that's a reasonable enough question, but anyway there's a nice story about this same question in another context. The mathematician Solomon Golomb was (as an undergraduate, I think) taking some sort of biology class, and the lecturer described some process to do with cell division and said "... so the number of ways to do that is 2^24, and we all know that that is, don't we?" (meaning, of course, "and no one knows what that is but it's OK because I'm about to tell you". But Golomb happened to have been memorizing numbers of the form n^n, and 2^24 = 8^8, so he immediately called out "Yes, it's 16777216".

As a result of having read this story, I can now always instantly remember what 2^24 is too :-).

Re:The Utter Uselessness of Job Interviews by jaredsohn on Sunday April 09, 2017 @05:45PM (#14074518)
Another way to answer this kind of question is to know 2^24 = 2^10 * 2^10 * 2^4 and that 2^10 is 1024 which is roughly 1000.

So 1000 * 1000 * 16 = 16 million would be an easy estimate to make.

If you are designing a system and want to have an idea of how much space or memory an approach will take, being good at this kind of math can be really helpful.

Re:The Utter Uselessness of Job Interviews by jameshart on Sunday April 09, 2017 @07:20PM (#14074859)
The problem is that there are some people who will need to go through that process in their head to produce an estimate of 16 million - and then there are people who have had cause at some point in their life to know of the existence of the concept of '24 bit color' and that the number of colors expressible in 24 bits (8 bits each of R, G and B) is exactly 16,777,216.
Re:The Utter Uselessness of Job Interviews by lomnakkus on Sunday April 09, 2017 @06:11PM (#14074612)
Then they should probably ask people to estimate a thing that's even remotely relevant to the job.

(I mean, I get it, this kind of general estimation and/or ball-parking can be incredibly valuable, but this doesn't sound relevant in any way.)

Re:The Utter Uselessness of Job Interviews by kafkaesq on Sunday April 09, 2017 @06:53PM (#14074763)
This kind of general estimation and/or ball-parking can be incredibly valuable, but this doesn't sound relevant in any way.

To be fair to Google (in regard to this one filter question only), they actually are up front about expecting a significantly higher baseline of general mathematical awareness (even for non-mathy roles) than most other shops. At any rate, this kind of estimation comes up in capacity planning (both in architecture planning, and for algorithms on a single box) all the time. Which after all is what Google does, at nearly every level of their stack, (nearly) all the time.

Re:The Utter Uselessness of Job Interviews by lomnakkus on Wednesday April 12, 2017 @09:29PM (#14103348)
It "comes up all the time"... and these ballpark guesses are probably(!) completely useless for anything remotely practical. At the scale Google's operating you want a Statistician, not a Guesstimator.

So, no, still not useful questions.

Re:The Utter Uselessness of Job Interviews by inetknght on Sunday April 09, 2017 @02:23PM (#14073611)
What about when you know what the concept of big O is, know why it's often touted as important, and disagree that it's as important as it's touted?

My opinion is that big-O often ends up being used as a premature optimization effort hindering "just get the right answer first". Maybe that brute force method will work in a reasonable clock-time cost, despite having egregious algorithmic cost. You won't know if you're busy overengineering and optimizing before you even have a working solution.

Re:The Utter Uselessness of Job Interviews by nostrademons on Sunday April 09, 2017 @02:30PM (#14073641)
That's a big red flag, at least in a Google setting.

The reason is because when your dataset is in the petabytes, any algorithm bigger than O(N log N) is not going to terminate. You're not going to get any answer at all; your MapReduce is going to sit there burning CPU time for a day, and then you'll kill it, and you won't have any idea what went wrong. (This is learned from experience, if you couldn't tell.)

In a startup context, I'd certainly agree with you - that's exactly the approach I'm taking with my startup, where I'm doing a lot of the debugging and code-wrangling on my local laptop after verifying that the data I want exists and calculating its size with a couple cloud-computing passes. It can sometimes be useful to prototype & iterate with a small subset of the data until you've got the algorithms down.

But many of the algorithms Google cares about don't give any useful results on small data sets. I remember running a few collaborative-filtering algorithms and finding that they gave zero answers because within my small sample of 0.01% of the total data, nobody liked anything else that anybody else did.

Re:The Utter Uselessness of Job Interviews by alexbecker on Sunday April 09, 2017 @02:46PM (#14073725)
In my experience as a Google engineer, this is mostly false. None of the work I or any of the people I know well at Google is on petabyte datasets; most people just aren't on the hot path of indexing/websearch/youtube. In fact almost none of the stuff I was asked about in my interview has been relevant to my work. I have thought about complex algorithms two or three times in the past year.
Re:The Utter Uselessness of Job Interviews by ljw1001 on Sunday April 09, 2017 @04:06PM (#14074101)
Not only that, but (in my experience as a Google engineer), factors relating to the location of data (distribution and disk vs ram, etc.) often greatly outway algorithmic performance. Constant factors often dominate variable factors.
Re:The Utter Uselessness of Job Interviews by lomnakkus on Sunday April 09, 2017 @06:15PM (#14074627)
Exactamundo! Cache/memory/disk locality dominates almost all other factors[1] unless you're doing something very special. (Speaking as a non-Google person who also likes to think that he knows what he's talking about.)

[1] Well, it's really the amazing amount of throughput that modern architectures can achieve. Latency hasn't improved quite as much given the inescapable limitation of the speed of light.

Re:The Utter Uselessness of Job Interviews by nostrademons on Sunday April 09, 2017 @08:02PM (#14075021)
What department? I was in Search and used that knowledge all the time, and also did rotations on GWS, Google+, and GFiber. Certainly I used less of that knowledge for GWS (where everything you need is in-process) and for GFiber (where I was working on marketing & customer signup - the job req for this was actually different, and both interviews & job duties were much more like a traditional SWE job in other companies). But even Google+ needed a lot of algorithmic complexity knowledge; G+'s scaling needs are similar to Twitter's, and we know how that went.

Perhaps it has changed as well; when I left (2014) they had just started encouraging engineers to focus on one particular task, with the architecture already defined, while when I started (2009) there were still a number of problems of the form "here's a feature we want to add; here's the data we have available; how can we build it?"

Re:The Utter Uselessness of Job Interviews by alexbecker on Sunday April 09, 2017 @09:59PM (#14075474)
I'm on Ads and Commerce front-end, and I also know a number of people on Android. These of course are mostly constrained by users' devices, so don't have the scale your talking about. But I also think the trend you're talking about of smaller roles has been continuing and has a lot to do with it as well.
Re:The Utter Uselessness of Job Interviews by vvanders on Sunday April 09, 2017 @04:55PM (#14074311)
Everyone loves to put Big-O up on a pedestal, however many times the constant costs can outweigh the rest of the algorithm. Cache access times in particular can be brutal for non-linear access patterns.
Re:The Utter Uselessness of Job Interviews by magicalist on Sunday April 09, 2017 @03:53PM (#14074048)
> What about when you know what the concept of big O is, know why it's often touted as important, and disagree that it's as important as it's touted?

What if you're ​having a conversation with someone about local politics and you're convinced the local zoning rules don't encourage growth in the way they think they do. Do you force the subject of conversation so you can make sure they know just how wrong they are? Not if you want them to walk away having a good impression of you.

Instead if the talk turns to zoning you put out feelers to see if they'll want to talk about the larger issue, and only engage in the conversation if it seems like the time for it.

The analogy isn't perfect, but if the interviewer wants to talk about the larger issue, you're probably well matched and will have a great interview. If not, and you know enough about runtime complexity to discuss the tradeoffs, then you know enough to just answer the textbook big-O question and move on.

Re:The Utter Uselessness of Job Interviews by obstacle1 on Sunday April 09, 2017 @09:53PM (#14075452)
There are situations in which you want to just get a right answer and ship, like at an early-stage startup.

Then there are situations where the code you write must play nicely within a massive, already-complex system, wherein it will work with potentially huge inputs. Like at Google.

So, saying in a Google interview that you don't think Big Oh is super important, and that you prefer shipping whatever correct solution you come up with first and then worrying about efficiency if it ends up being slow, would likely not get you very far.

Re:The Utter Uselessness of Job Interviews by hota_mazi on Sunday April 09, 2017 @10:12PM (#14075526)
> What about when you know what the concept of big O is, know why it's often touted as important, and disagree that it's as important as it's touted?

Let's say you created your own company and you're interviewing engineers.

Would you be comfortable hiring someone who doesn't know the difference between O(n^2) and O(2^n)?

Or someone who doesn't even know what these concepts represent?

Re:The Utter Uselessness of Job Interviews by cr0sh on Monday April 10, 2017 @10:23PM (#14084377)
I've always called this kind of thing "trying to get the sizzle before the steak". You gotta have a steak first; get that, then work on cooking it - then work on cooking it to perfection if that is what is needed or wanted.

There's also the thing I picked up from playing around with graphics demo coding; get the algorithm working first, even if it takes 10 seconds per frame. Then look for the slow parts, concentrating first on the inner loops. Whatever you do, don't try to prematurely optimize the code as you write it, as tempting as it may be. Because almost certainly you'll make things worse than if you waited until after you have a working first pass.

This applies to way more than just fast graphics code, of course.

Re:The Utter Uselessness of Job Interviews by jimmywanger on Sunday April 09, 2017 @07:17PM (#14074842)
The questions about BigO isn't about premature optimization or actual implementation. It's about understanding exactly what a particular program is doing and how it's doing it.

Any sort of technical solution given at a Google interview would generally have the following questions:

1) What big O time does this algorithm run in? Why? What big O space requirements does it take.

2) If space were more/less expensive, or time more/less important, how would you change the solution and why?

Understanding those tradeoffs and being able to analyze code at that level is a big part of most software engineering jobs.

Re:The Utter Uselessness of Job Interviews by jplasmeier on Sunday April 09, 2017 @02:08PM (#14073539)
Of course. For example, many of the questions for technical interviews involve knowing which data structure to use in a given setting, and applying it to find a solution.

The interviewee is more than welcome to study data structures and interview questions about data structures. A poor student will just memorize questions and answers by rote without really understanding the data structure in question. The good student will actually learn and understand data structures in the context of the solution.

One would hope that interviewers are able to ask follow-up questions about the solution which distinguish between the two.

EDIT: During the best tech interview I have done, I had no idea how to solve the question asked (that is, I had not studied its solution despite this being a relatively common question). I was able to ask articulate questions and invoked understanding of data structures as I went along. Memorizing solutions is a game of luck, and not recommendable.

Re:The Utter Uselessness of Job Interviews by nissimk on Sunday April 09, 2017 @05:21PM (#14074433)
Bullsh*t. Seriously, these questions are all tricks. If you memorize the tricks you can win the game. Even the "really easy" questions like reverse a string involve a trick -- swapping from the ends and stopping in the middle. The interview game involves memorizing tricks and identifying which memorized trick applies to the question.
Re:The Utter Uselessness of Job Interviews by sirbearington on Sunday April 09, 2017 @06:02PM (#14074578)
I feel like 90% of writing software is identifying which "trick" applies to the problem you're trying to solve and applying it correctly.
Re:The Utter Uselessness of Job Interviews by nissimk on Sunday April 09, 2017 @07:50PM (#14074986)
Yeah, but you can look them up.
Re:The Utter Uselessness of Job Interviews by xamuel on Sunday April 09, 2017 @09:03PM (#14075268)
The thing about looking up tricks is you can only look them up if you remember they even exist to look up.
Re:The Utter Uselessness of Job Interviews by glangdale on Sunday April 09, 2017 @10:07PM (#14075501)
This assumes the trick is easily-indexed-by-name and can be looked up - so you have to know it exists. A lot of the better tricks are more like 'frameworks' whether specific ("Four Russians", "prefix sum") or general ("dynamic programming", "branch-and-bound").

There's a limit to how far you can get just Googling stuff ("how do I reverse a string") for recipe-book solutions to things. I think practically everything in Computer Science could be Googled ("how does merge sort work", "what is an inclusive vs exclusive cache") at some level but this doesn't mean one shouldn't know a great deal of it. At least, if you want one of these jobs...

Re:The Utter Uselessness of Job Interviews by employee8000 on Sunday April 09, 2017 @06:09PM (#14074600)
And yet most people are memorizing solutions to hundreds of different questions and getting great jobs because of it. I know this because I have several friends who do this.
Re:The Utter Uselessness of Job Interviews by sjg007 on Sunday April 09, 2017 @08:02PM (#14075024)
Well, at least hope that some of that information sticks.
Re:The Utter Uselessness of Job Interviews by gatsby on Sunday April 09, 2017 @02:11PM (#14073550)
This is a great point. There are absolutely candidates who are "good interviewers."

I think one of the most helpful methods of determining a good interviewer vs. a good future employee is taking a structured, situational interview question, i.e. "How would you go about selling a new product to a customer?" and turning it into an actionable work sample that is tailored to your company. "We make this piece of software that does this. Spend the next 10 minutes writing a cold email to a prospect that outlines our offering." As the interviewer, grade the work sample on structured criteria that is important.

Re:The Utter Uselessness of Job Interviews by tptacek on Sunday April 09, 2017 @06:32PM (#14074694)
This is the "calibrated interviewer" system. It strikes me as funnily similar to machine learning models, in that it's a black box that somehow demonstrates statistically it's effectiveness at a business problem, and you just have to hope there isn't some glaring bias or fatal flaw in the model that only occurs sporadically.
Re:The Utter Uselessness of Job Interviews by wpietri on Sunday April 09, 2017 @04:57PM (#14074325)
Only if you use a small, static body of questions. But there's nothing wrong with, say, each interviewer coming up with a couple of questions and rotating it them in a while.

You do want to try out the question and criteria before depending on it too much, but it's easy enough to try it out on a colleague.

Re:The Utter Uselessness of Job Interviews by tptacek on Sunday April 09, 2017 @06:29PM (#14074680)
Among the many things wrong with this approach is the fact that you aren't generating a body of questions and responses that you can evaluate against your choices and the resulting performance of candidates you hire, making it impossible to effectively iterate.
Re:The Utter Uselessness of Job Interviews by wpietri on Sunday April 09, 2017 @08:39PM (#14075159)
Depends on how you think of the interview process. The theory at work here is that if you get a number of domain experts to give an independent evaluation of a candidate and then compare notes, you'll get a decent outcome. Requiring them to use a structured, repeated question with a formal scoring rubric is to subtract certain sorts of bias from each individual evaluation. When hiring somebody doesn't work out, you go back and work on the interviewers and their interviewing skills, not the questions themselves.

I take it you're working from a different theory, where you try to put the expertise in a machinery of questions and answers, relying less (or not at all) on the interviewers themselves. I think that's also a valid approach, one with different limitations.

Personally, as I mentioned elsewhere, I'm not a big fan of interview questions anymore period. If I want to know if somebody can do the work, now I try to create situations where they just do the work. But if one is trapped in the dominant tech interview paradigm, I personally favor investing in interviewers more than the questions themselves.

Re:The Utter Uselessness of Job Interviews by jotux on Sunday April 09, 2017 @02:09PM (#14073543)
The same way it works for teachers that give tests. Come up with a bunch of questions and only ask a random subset of those questions to each person. Occasionally evaluate the questions and add/remove some.
Re:The Utter Uselessness of Job Interviews by StreamBright on Sunday April 09, 2017 @02:12PM (#14073560)
There few questions that you can learn to answer but it is probably very hard to reach the 5 star answer if you do not understand what you learned in detail. An example question would be: what happens when you type www.domain.com into your browser and hit enter. You can answer this many different ways and levels.
Re:The Utter Uselessness of Job Interviews by autotune on Sunday April 09, 2017 @02:53PM (#14073748)
That question has also been asked so many times most candidates who have done a few minutes of googling can give you the "right" answer. See here: https://github.com/alex/what-happens-when/blob/master/README...

I'd probably start here to lighten up the mood due to how cliche the question has become:

https://github.com/alex/what-happens-when/issues/231

Re:The Utter Uselessness of Job Interviews by StreamBright on Sunday April 09, 2017 @03:59PM (#14074073)
Candidates doing a few minutes googling to find this, but will they put in the few months to get to the bottom of every aspects of it?
Re:The Utter Uselessness of Job Interviews by autotune on Sunday April 09, 2017 @04:48PM (#14074286)
Probably not if they have actual work to do rather than memorize easily google-able trivia questions.