News for hackers. Stuff that matters.
Re:Harder programming questions do a worse job of predicting... by zinclozenge on Monday February 18, 2019 @01:30PM (#19192910)
The less talked about absurdity is that successfully passing programming interviews is a skill itself. It's especially absurd because the time I spend developing that skill is less time spent developing skills and knowledge more directly relevant to my job. Yet, programming interview skill is more relevant to progressing my career.

edit: now if you'll excuse me, I need to do some dynamic programming problems.

Re:Harder programming questions do a worse job of predicting... by griffinkelly on Monday February 18, 2019 @02:18PM (#19193398)
I've worked with some folks who were decent engineers who originally didn't get offers from FANG companies because they blew the interview; they later studied their ass off on leetcode and got offers. This did not make them better engineers at all.

Ultimately, its just studying for the test, very much like the ACT/SAT in high school. You can be great at taking tests but ultimately a terrible student or vice versa.

Re:Harder programming questions do a worse job of predicting... by tombert on Monday February 18, 2019 @02:43PM (#19193672)
I go back and forth about how I feel about doing heavy algorithm/data-structure stuff in interviews. On the one hand, I have never once written any kind of sort algorithm or LRU cache by hand for a production system, because why would I? Pretty much every language's standard library has a fairly-optimized sort and caching thing built in, and if they don't then there's still probably a million outside libraries to do it for me.

On the other hand, I genuinely do feel theory is really important. While not knowing the minutia of a tim-sort doesn't indicate that you'll be a bad engineer, not knowing the runtime efficiency of a sort can lead to some really awful code. Not knowing when to use a hash table instead of a nested-for loop can be a sign that you don't really know what you're doing, and not knowing some rough theory on concurrency indicates that I might be stuck debugging your race conditions or deadlock.

I try to not be a complete jerk and I won't do stuff like give out an NP-complete problem (which an interviewer gave me once), nor will I ask for intimate details of how one would implement CSP, but I do tend to focus on theory-heavy questions more than my peers, but I try to give a fairly-generous amount of hints so that people don't get too stuck.

Re:Harder programming questions do a worse job of predicting... by KallDrexx on Monday February 18, 2019 @03:51PM (#19194324)
> On the other hand, I genuinely do feel theory is really important. While not knowing the minutia of a tim-sort doesn't indicate that you'll be a bad engineer, not knowing the runtime efficiency of a sort can lead to some really awful code. Not knowing when to use a hash table instead of a nested-for loop can be a sign that you don't really know what you're doing, and not knowing some rough theory on concurrency indicates that I might be stuck debugging your race conditions or deadlock.

Theory is important but what's more important is how someone applies the theory to actual problem solving.

Reversing a binary tree isn't testing your knowledge of theory as much as it's really just testing memorization of a very very specific application. Knowing how to reverse a binary tree or how a hash map works is pointless if the person can't identify when to use them when solving an actual higher level problem. No one is ever given a binary tree and told to reverse it in the real world, they are given a business problem that you identify can be solved efficiently by modelling it as a binary tree and reversing it.

I'd bet most of the good people who fail the "reverse a binary tree" type of questions would succeed if you give them a realistic problem to solve without forcing a very specific solution onto them. Either they will come up to the realization that the solution is to think of the problem in terms of binary tree or they won't.

And neither is a terribly bad answer either. If they recognize you gave them a problem that can be represented as a binary tree and efficiently solved by reversing it then there you go, not only did you prove they knew the "theory" but they knew how to apply it as well. If they don't recognize it you gain valuable insight into their line of thinking and they might find novel ways to represent the problem and apply other theoretical concepts that solve it efficiently (maybe more maybe less).

Re:Harder programming questions do a worse job of predicting... by tombert on Monday February 18, 2019 @05:44PM (#19195174)
I don't think you're wrong in general, but in one specific case I actually can give an example where me not knowing how a hash-map worked was really bad. I was working on a very limited set of memory for a small embedded thing when I was an intern, and was using hashmaps all over the place because they're magic, and kept getting out of memory exceptions.

I learned later that hashmaps are inherently O(n) (or O(log n)), or they take a lot of memory; internal arrays can get super huge if you're not careful.

In this particular case, an ugly nested for-loop was the immediate solution, and eventually I was able to cheat a little and have hard-coded integer indexes and was able to use an array.

Anyway, your point is valid, I just figured I'd give an example where knowing the internals for a hash table would have saved me a lot of time.

Re:Harder programming questions do a worse job of predicting... by gejjaxxita on Wednesday February 20, 2019 @08:12PM (#19213665)
Hash maps are O(1)
Re:Harder programming questions do a worse job of predicting... by riskneutral on Monday February 18, 2019 @06:06PM (#19195302)
> On the other hand, I genuinely do feel theory is really important. While not knowing the minutia of a tim-sort doesn't indicate that you'll be a bad engineer, not knowing the runtime efficiency of a sort can lead to some really awful code.

OK but why don’t these interviewers ever ask “internals” questions? How does a CPU works, or what the different levels of memory hierarchy are, what an interrupt request is, what is pipelining, what is SIMD, what is a GPU, etc. Or how about compiler internals, what are the different stages in a compilers, what are the different grammars and parsers, what is an AST, what is interpretation, compilation, bytecode, JIT, and how does it work? How about database internals? How is a database implemented, what is relational algebra, what is normalization, what is a data model, how do indices work? Similar questions can be asked about operating system internals, networking, floating point arithmetic, etc. In my experience, no interviewer has ever asked me these questions. And as an interviewer, I have consistently been disappointed with candidates’ inability to answer basic and relevant “internals” questions. Ironically, the algorithms and data structures questions that are commonly asked in interviews are outdated ways of thinking which do not take the underlying hardware reality into account (memory hierarchy and parallelism). It could be because a lot of these FANG(-like) “engineers” are themselves not knowledgeable to ask such questions. Or they are aware that new comp sci graduates are unlikely to really understand anything at a deep level, but all comp sci students are drilled on algorithms and data structures. If you are targeting a very specific age group (0-5 years experience) and want a standardized test then I guess asking CS201 exam questions in a job interview make sense. Companies prefer the 0-5yrs experience segment because they’re cheap, don’t have children, are easy to exploit, and they are easier to “mold” into your corporate culture.

Re:Harder programming questions do a worse job of predicting... by vkou on Monday February 18, 2019 @08:40PM (#19196057)
> In my experience, no interviewer has ever asked me these questions

Because not everyone writing Java code has had a background that exposes them to compiler internals or grammars and parsers.

But everyone writing Java code should at least be a little bit arsed to figure out what common data structures do - or how to write two for loops that print out "1 2 fizz 4 buzz"...

Re:Harder programming questions do a worse job of predicting... by andmed3 on Tuesday February 19, 2019 @02:00AM (#19197180)
Where are those companies who ask such questions, and not for a embedded software engineer role but for someone higher up stack. I wish I knew
Re:Harder programming questions do a worse job of predicting... by Waterluvian on Monday February 18, 2019 @03:16PM (#19193986)
I think the important thing here is the difference between understanding complexity and implementing a sorting algorithm.

If I were hiring a carpenter I would want to know they understand their tools and when to use them. I don't care if they don't know how to make them. But of course knowing how to make them suggests an intimate appreciation for the craft (looking your way Matthias Wandel)

Re:Harder programming questions do a worse job of predicting... by sjg007 on Monday February 18, 2019 @03:34PM (#19194162)
The flip side would be asking a carpenter to do trigonometry problems or something... Anyway, what's most important is measure twice and cut once. That and following a blueprint and going the extra mile.
Re:Harder programming questions do a worse job of predicting... by gedy on Monday February 18, 2019 @03:37PM (#19194192)
> On the other hand, I genuinely do feel theory is really important.

My beef with this in interviewing is that a huge chunk of modern programming work is developing UIs - and user interface theory and skills are treated like some softball thing. You ask UI-related questions to interviewers and half the time you get some shrug "oh we use whatever", etc.

Re:Harder programming questions do a worse job of predicting... by joshuamorton on Monday February 18, 2019 @03:47PM (#19194287)
This depends highly on the domain. I'm the only person on my team with any level of frontend work in the past ~2 years. And when I did, I was able to consult with UX experts and designers.

I can't say that theory is more universal than frontend, though anecdotally, for me, it is. But ui isn't universal.

Re:Harder programming questions do a worse job of predicting... by Apocryphon on Monday February 18, 2019 @03:26PM (#19194084)
> Not knowing when to use a hash table instead of a nested-for loop

On the flip side, the O(1) look-up nature of hash tables make them the no-brainer data structure to use, at least for passing programming interviews. Perhaps more interesting test questions would be when not to use hash tables.

Re:Harder programming questions do a worse job of predicting... by entee on Monday February 18, 2019 @04:07PM (#19194468)
Fully agreed. Most questions I got when I started out as a data scientist interviewing for jobs were pretty simple: "use a hash table to count stuff, join stuff, lookup stuff". However not once did I get asked, "why do databases not exclusively use hash tables if they're so good?" That's a much more interesting question, though perhaps out of scope for a data scientist. I'd add that I've never heard that question being asked of engineers, I'd love to hear of people out there getting it though.
Re:Harder programming questions do a worse job of predicting... by tombert on Monday February 18, 2019 @04:10PM (#19194488)
I actually got that exact question once, or pretty close to it. I'm paraphrasing, but the question was "Hash tables are cool, but what's a data structure they might use in a DB besides that?". This was pretty early in my career, so it stumped me, and he pointed out that a binary tree is used semi-often because of ordering.
Re:Harder programming questions do a worse job of predicting... by pedrosorio on Tuesday February 19, 2019 @12:06AM (#19196743)
I am surprised B-trees were not the first data structure in that discussion, as they are "famous" for being used in DBs.

Although these days one should talk about "learned index structures" instead, I guess :)

Re:Harder programming questions do a worse job of predicting... by bunderbunder on Monday February 18, 2019 @02:57PM (#19193805)
I'd be curious to see if there is any value in questions that focus on understanding of the basic ideas behind algorithms and data structures as a subject. Time complexity, sure, but what I would really want to know is, given a description of a data structure and some algorithms for manipulating it, can you identify the invariants that should be true of these rules?

That sort of thing might give a better sense of if someone has an instinct for how to verify whether the code is working. And, by extension, if they have a grasp of some concepts that go a long way toward helping a person come up with more reliable and maintainable designs.

Re:Harder programming questions do a worse job of predicting... by FabHK on Monday February 18, 2019 @02:26PM (#19193493)
> This did not make them better engineers at all.

How do you know?

I understand that FANG have themselves come to the conclusion that brain teasers are not necessarily very predictive for engineering performance.

But CS/programming questions for CS/programming roles? That seems sensible.

You can study lots of vocabulary to achieve better results on the verbal section of the GRE or similar tests. But afterwards, you will, in fact, have better vocabulary, I submit.

I am surprised that you categorically deny that they were better engineers after studying CS/programming questions.

Re:Harder programming questions do a worse job of predicting... by Buldak on Monday February 18, 2019 @03:16PM (#19193993)
>You can study lots of vocabulary to achieve better results on the verbal section of the GRE or similar tests. But afterwards, you will, in fact, have better vocabulary, I submit.

Yeah, but tests like the GRE claim to predict academic performance, not vocabulary. So unless you think augmenting one's vocabulary alone will make one a substantially better student, there's still a gap there.

Re:Harder programming questions do a worse job of predicting... by ivanhoe on Monday February 18, 2019 @03:58PM (#19194375)
Oh, you'll certainly be better at solving programming puzzles type of problems, but the thing is that those questions usually don't translate well into real-life problems that you'll encounter at work later. You can't architect a good solution IRL by trying to figure our what the test author wanted you to do, like with programming puzzles. And for implementing some algorithm keeping every detail of it in head definitely helps, but it's not a significant advantage over someone who just googled all those details 10 minutes ago. So both types of tests are not testing the real dev capabilities, they test how much they prepared for the test. IMO only tasking the candidate to build some real piece of software or even better refactor some real code, with enough time and full access to google and stack overflow, and being fully able to ask other people for suggestions & help will show you the realistic picture of the candidate's future performance as a part of the dev team. Put them in a real situation and give them the real type of problems, and you'll get the real results. Everything else is like giving sudoku tests hoping to choose the best mathematician.
Re:Harder programming questions do a worse job of predicting... by meko on Monday February 18, 2019 @08:02PM (#19195897)
As someone trying to break into the field, I'm very intimidated by coding challenges. The ones on leetcode take me an afternoon and some change to get through the easy ones. Some people seem to take no issue with googling the result then moving forward but I thought that wasn't in the spirit of doing these challenges.
Re:Harder programming questions do a worse job of predicting... by seanmcdirmid on Monday February 18, 2019 @03:58PM (#19194381)
> You can study lots of vocabulary to achieve better results on the verbal section of the GRE or similar tests. But afterwards, you will, in fact, have better vocabulary, I submit.

Maybe for a few days after the test anyways. And then...you push out those words you never use or read to make room for actual useful stuff.

Re:Harder programming questions do a worse job of predicting... by fossuser on Monday February 18, 2019 @02:26PM (#19193490)
It feels very much like that to me which is why it’s strange there isn’t a Kaplan equivalent.

There’s interview cake and leetcode, but I think people would pay $2k for a class that focuses on the questions and in person whiteboard practice.

They could collect information about the interviews at the major companies and then use those to create the program. For payment could also help candidates negotiate and then take a cut of the signing bonus.

If this isn’t part of lambda school already I think it should be.

I already work at a competitive tech company, but I’d sign up for this in a second to help me stay competitive for interviews.

Re:Harder programming questions do a worse job of predicting... by acb1990 on Monday February 18, 2019 @03:06PM (#19193896)
App Academy was working on something like this, last time I checked. I believe it's more focused on people who've already been through their program working on getting the next-step-up job from their first so I don't know if it's generally advertised/ available
Re:Harder programming questions do a worse job of predicting... by chooseaname on Monday February 18, 2019 @03:19PM (#19194014)
The only way I would consider paying for a course like this is if, upon successfully completing it, I would not have to do the technical portion of the interview at companies I applied to. They would accept this cert and just do the soft skills interview.
Re:Harder programming questions do a worse job of predicting... by alboy on Monday February 18, 2019 @03:56PM (#19194362)
One could argue that CS undergraduate degrees are perfectly suited for this purpose. FAANG & Co don't seem to care for that. You've successfully passed a few dozen exams at MIT or Stanford? Well, let's make the reasonable assumption that you have no clue about algorithms and data structures and start with our third whiteboarding session, that should be a way better proxy for your knowledge.
Re:Harder programming questions do a worse job of predicting... by erik_seaberg on Monday February 18, 2019 @05:14PM (#19194976)
Those incentives are misaligned. Not every law school grad can pass the bar.
Re:Harder programming questions do a worse job of predicting... by alboy on Monday February 18, 2019 @06:06PM (#19195306)
They may very well be, but is the quality of signal truly worse than that which an interviewer can extract from a few hours of your writing code on the board?
Re:Harder programming questions do a worse job of predicting... by erik_seaberg on Wednesday February 20, 2019 @03:32PM (#19211682)
There are people with degrees who can't code. I'd prefer we don't hire them, so we ask for coding.
Re:Harder programming questions do a worse job of predicting... by reificator on Monday February 18, 2019 @03:59PM (#19194395)
That's called college, and experience has shown that the people who have the certificate aren't guaranteed to know how to write a fizzbuzz.
Re:Harder programming questions do a worse job of predicting... by fossuser on Monday February 18, 2019 @04:16PM (#19194527)
I think that’ll never happen because the incentives of the cert granting institution and the company hiring will never be aligned (or aligned enough to matter).
Re:Harder programming questions do a worse job of predicting... by Apocryphon on Monday February 18, 2019 @03:28PM (#19194103)
Sounds like a neat segment for Triplebyte to move to- or for a competitor to capitalize upon.
Re:Harder programming questions do a worse job of predicting... by Apocryphon on Monday February 18, 2019 @03:28PM (#19194094)
The major ones seem to be Outco and Interview Kickstart. But agreed, there's far fewer whiteboarding/interview process-specific bootcamps compared to web/mobile bootcamps.
Re:Harder programming questions do a worse job of predicting... by austenallred on Monday February 18, 2019 @03:03PM (#19193877)
> If this isn’t part of lambda school already I think it should be

It’s part of classes for our existing students, but it isn’t a single offering. One day.

Re:Harder programming questions do a worse job of predicting... by fossuser on Monday February 18, 2019 @03:41PM (#19194240)
Cool - if you need somebody to help I’d be interested.
Re:Harder programming questions do a worse job of predicting... by pmiller2 on Monday February 18, 2019 @03:10PM (#19193935)
Those courses are out there. I saw one for $5k and ran for, IIRC, 8 weeks, that covered the entire interview process.
Re:Harder programming questions do a worse job of predicting... by Frost1x on Monday February 18, 2019 @04:46PM (#19194772)
I've noticed several groups that offer SE interview specific training out there now that I'm stepping through this interview process after the landscape has changed since my last position.

It's funny that after doing some searching, many proponents of this widely adopted and poorly researched interviewing methodology appear to be running businesses selling training for these interview processes... surprise, surprise.

Re:Harder programming questions do a worse job of predicting... by TrinaryWorksToo on Monday February 18, 2019 @07:39PM (#19195797)
This is exactly what Outco.io does, and I highly recommend them for this purpose.
Re:Harder programming questions do a worse job of predicting... by fossuser on Monday February 18, 2019 @08:04PM (#19195905)
Looks interesting - have you used them?
Re:Harder programming questions do a worse job of predicting... by TrinaryWorksToo on Monday February 18, 2019 @09:17PM (#19196177)
Yes! I felt I was noticeably better at selling myself in interviews, which was my primary goal for going through them. I didn't feel I had enough of a support network to properly prepare otherwise. There's a lot of technical stuff, that goes by very quickly, and also equal amount of non-technical, this-is-how-recruiting-works content.
Re:Harder programming questions do a worse job of predicting... by ng12 on Monday February 18, 2019 @02:41PM (#19193643)
If you're FANG you kind of want to hire that guy though -- the one who sees there's a task and a set of things he can do to accomplish that task. Same thing with the ACT/SAT, colleges want good test-takers because they're going to be giving a lot of tests.
Re:Harder programming questions do a worse job of predicting... by fancyfish on Monday February 18, 2019 @08:55PM (#19196112)
What's more, it's funny reading that Google sends out prep packets saying to learn/relearn these algorithms. So they don't expect their recruits to know them, just be able to memorize them for the interview.
Re:Harder programming questions do a worse job of predicting... by alfalfasprout on Monday February 18, 2019 @02:39PM (#19193620)
I've interviewed tons of engineers that ace the interview and you have no choice but to pass but you see later on writing abysmal code. The problem is that design, quality, and maintainability are not valued. As a result, you end up with extremely mediocre "hacky" engineers at larger companies that can spit out tons of valid code but lead to a tangled mess shortly thereafter.

Worse, there's this huge emphasis on "big O" with zero focus on clearly egregious bad practices (tons of copies, outrageous memory usage, casting between strings and numbers all the time). I've rarely seen clearly bad algorithms be deployed but I have seen plenty of unperformant code go out.

Re:Harder programming questions do a worse job of predicting... by tekkk on Monday February 18, 2019 @07:05PM (#19195644)
I myself too have witnessed a similar thing but with not-so-algorithmic-people. I think it all comes down to the company culture and the person actually being able to let go of their ego and improve their programming skills. It is similar to a senior developer who never learned to properly program and because of hir position is incapable of seeing faults in their code. Once you've gotten too accustomed to shitty code, it's hard to change your style which is understandable.

Probably biggest influence on this I think is the culture, if nobody tells you that your code is shit (in a kind way) you'll never learn better. But then again, some people are so hard-headed and full of themselves that they get defensive and never actually admit their faults. Though giving and receiving feedback is not easy, can give you an identity crisis once you realize you've been doing something wrong for years.

And then you have a bunch of Ivy League graduates who have spent years learning algorithms and are burning to use them but there's no actual problems that really need them.

Re:Harder programming questions do a worse job of predicting... by brownbat on Monday February 18, 2019 @02:51PM (#19193745)
Does anyone just give you someone else's code and have you write tests and documentation for it?
Re:Harder programming questions do a worse job of predicting... by delphinius81 on Monday February 18, 2019 @03:10PM (#19193939)
I had a coding test once where I was given someone else's code with an introduced bug, and I had to fix the bug. To do so, you were basically documenting the code along the way as you traced your way through possible trouble spots. It felt far more meaningful than the typical "implement some list traversal algorithm that you won't actually ever use at this job."
Re:Harder programming questions do a worse job of predicting... by ball_of_lint on Monday February 18, 2019 @06:16PM (#19195370)
I've had a similar interview and although I did not solve the bug, I think the interview was much more effective than most algorithm based interviews. Not only did my interviewers get to see how I navigate a codebase and use my IDE/other tools, they also saw how I approached known unknowns and discovered information.
Re:Harder programming questions do a worse job of predicting... by crazygringo on Monday February 18, 2019 @03:13PM (#19193961)
Note that one often-cited counterargument to its seeming "absurdity" is that it evens the playing field in a fairer, more meritocratic way.

No matter your background, what school you went to, or what randomized experience you got in previous jobs, every person has equal opportunity to study and practice the same algorithms on their own (as opposed to being lucky enough to be able to afford a top-tier $$$ CS education, or to being lucky enough to have the connections or chance to get certain previous jobs).

And thus, when applying to jobs, it becomes something more akin to a raw-ability IQ test, which you can argue is "fairer", especially when management realistically knows developers might be shuffled around all the time, and that the extensive SQL experience they were hired for will mean nothing when project requirements switch to a basic key-value store.

On the other hand, if you are interviewing for a highly specialized position that is fairly certain not to undergo change, then it makes sense that specialized experience could rightly count for far more than any kind of generalized intelligence or ability.

Re:Harder programming questions do a worse job of predicting... by zimpenfish on Monday February 18, 2019 @03:40PM (#19194220)
> every person has equal opportunity to study and practice the same algorithms on their own

Well, that's just not the cause - there are many groups of people who lack the opportunity to study and practice. Couple of examples: people with kids, people working 12 hour shifts, people without access to teaching materials, people without a sufficiently advanced machine to run dev environments, etc.

Re:Harder programming questions do a worse job of predicting... by oarabbus_ on Wednesday February 20, 2019 @01:04AM (#19205940)
It's "fairer" if you're a recent college grad, probably single, definitely no kids or other family obligations, fresh out of school, and without much to lose if you spend all your free time studying for a "fair, meritocratic" test.
Re:Harder programming questions do a worse job of predicting... by warp_factor on Monday February 18, 2019 @01:44PM (#19193059)
This is why this whole interview thing is so absurd. The amount of days lost by engineers to relearn obscure algorithms and training on leetcode while we could be coding for things that are actually useful.
Re:Harder programming questions do a worse job of predicting... by gameswithgo on Monday February 18, 2019 @02:05PM (#19193269)
obscure algorithms are useful. it isn't a perfect system but its better than what most people propose as alternatives, which is to just have an ad hoc conversation.

testing whether someone is willing to prepare for a thing is a relevant work skill test too.

Re:Harder programming questions do a worse job of predicting... by SomeHacker44 on Monday February 18, 2019 @02:32PM (#19193550)
Knowing the existence of, and understanding the performance characteristics of a broad range of algorithms is, to my mind, a much more useful set of working knowledge than the details of any individual algorithm. The latter can always be looked up. It is harder to find out the former and much better to say “yes, there is an algorithm such-and-such that may be applicable here, let me spend 5 minutes checking that.” In my experience, anyway.
Re:Harder programming questions do a worse job of predicting... by hotcrossbunny on Monday February 18, 2019 @03:23PM (#19194049)
Broadly speaking, that used to be how design patterns were often treated in interviews. Could you recognise, describe, code, discuss pros, cons and applicability for pattern X in given circumstance. Pretty easy stuff to cram unfortunately, which may be why they may have fallen out of favour in recent times as proxy measure for brains, but depending on the role in question that sort of material was often more likely to be useful in the job than a similarly broad knowledge of algorithms
Re:Harder programming questions do a worse job of predicting... by stone-monkey on Monday February 18, 2019 @02:29PM (#19193523)
>testing whether someone is willing to prepare for a thing is a relevant work skill test too.

Is it, though? I could understand if algo questions had some relation to the work you're doing, but your comment on why they're good is independent of the actual material. If we replaced the algorithm question interview with an interview testing obscure presidential facts, would it really be a useful test to have devs take? I guess it is a relevant work skill test in that you get people willing to put the work in/game the system, but it doesn't seem to be much of (if at all) an improvement from ad hoc conversations.

Re:Harder programming questions do a worse job of predicting... by pmiller2 on Monday February 18, 2019 @02:17PM (#19193387)
There’s a vast difference between, say, preparing for a school exam and preparing for a job interview. In the former, you know in advance what material will be tested. Job interviews are more like PhD comprehensive exams, or professional licensing exams. I know a lot of working professionals who are good at their jobs, yet admit they wouldn’t be able to pass the license exam today.
Re:Harder programming questions do a worse job of predicting... by pcwalton on Monday February 18, 2019 @02:19PM (#19193405)
Go search for "Knights on a Keypad" (a formerly-common Google interview question). Trying to imagine any situation in which the solution would be useful is harder than the problem itself.
Re:Harder programming questions do a worse job of predicting... by kyralis on Monday February 18, 2019 @04:03PM (#19194423)
If you're trying to find a situation where that exact solution is going to be useful, you're not thinking about the problem from the right perspective.

Handled correctly, a problem like this answers several questions:

1) Can you correctly break down a problem like this into its components parts? 2) Can you recognize the overall class of problems that this falls into? 3) Can you transform this specific problem into the more general class so that you can solve it in a known fashion? 4) Can you think about and implement the movement? 5) Can you communicate while you're doing the above?

No one cares about solving that particular problem. But the answers to the above really are relevant. Being able to map novel problems onto known solutions is absolutely a skill that any competent software engineer needs to have. "Oh, you want me to do X? That looks a lot like Y, this thing we've already solved; maybe I can just implement it in the same fashion (or re-use our existing system!)"

I'm not saying that this particular problem is a wonderful example, or that I'd use it in my own interviews. But this overall class of problems really does have a place in interviewing when it's handled well by the interviewers, and arguments against it on the basis of the specific problem being irrelevant are really rather missing the point.

Re:Harder programming questions do a worse job of predicting... by pcwalton on Monday February 18, 2019 @07:19PM (#19195712)
If it's true that this type of problem is relevant (I doubt it), then why not ask about a specific problem you've actually had to solve?

I don't do many interviews anymore, but I used to, and I had no short supply of problems that I actually had to solve in the course of my work that I could ask about. I don't think whiteboard interviewing is great in general, but if you're going to do it you can at least try to keep it relevant.

As a matter of fact, I did have to do memoization of graph traversals at least once for work (most programmers never have to do this), and I find that problem a lot more interesting (trait matching for Rust). I could easily give a talk about that problem. As for that interview question, though? I don't always do well with time pressure, and so I can't guarantee I'd be able to answer it to your satisfaction.

Re:Harder programming questions do a worse job of predicting... by kyralis on Monday February 18, 2019 @08:38PM (#19196051)
Setting up the same problem in terms of trait matching for Rust is quite a bit more difficult than this toy problem when you're in a limited-duration interview setting. All of the time that you spend laying out the problem is time the candidate doesn't spend solving it, and time you spend not getting a signal. The simpler the problem setup the better, in my experience.

I've done the "ask a real problem that I've solved before" thing, and I find that it usually gets hung up on details and context around the problem to the detriment of actually solving the problem at hand. That's not to say that such a conversation isn't itself very valuable, but that's a different interview conversation, at least on my team. We find it important to maintain some level of focus just to ensure that we're covering the various signals that we'd like to get from the candidate.

Re:Harder programming questions do a worse job of predicting... by pcwalton on Monday February 18, 2019 @08:57PM (#19196125)
I am not at all confident that I would be able to answer Knights on a Keypad to your satisfaction, due to some combination of nervousness and time pressure. I probably could if I did many hours of interviewing practice, though. Absent that, I think there would be a good chance you would reject me on the grounds that I don't know how to do memoized graph traversals, despite the fact that I'm in a small minority of programmers that have shipped memoized graph traversals to production (and in fact a few teams at Google rely on my implementation of memoized graph traversals, ironically enough).

My view is that Google's interview process seems to work because Google gets so many applicants that they can afford to randomly reject most of them. It's not because it's a good process.

Re:Harder programming questions do a worse job of predicting... by blaze_run on Monday February 18, 2019 @09:01PM (#19196136)
Using an actual problem you solved can also work against the candidate because most problems we encounter in our daily jobs require a lot more time than the standard 45 minutes reserved for an interview (actually only 35 minutes out of 45 because there's 5 minutes of intro/icebreaker and 5 minutes reserved at the end to answer any of the candidate's questions).

So it isn't fair to ask the candidate to solve a real bug or implement a real feature in only 35 minutes unless they've seen something similar before.

This is why big companies like Google are limited to whiteboarding interviews because they need to have an interview process efficient enough to properly vet and filter >1 million applicants Google receives each year.

Personally, I think a better interview process is a pair-programming or work audition for a day. But that is not even close to matching the scale of Google.

Let's say out of a million applications, maybe only 25% are qualified. That is still almost 1000 candidates to interview per day (number of U.S. business days in 2019 is 261; 250,000 candidates / 261 business days = ~957 candidates per business day). Pair-programming or full day work audition will not be able to accommodate 957 candidates every day.

Re:Harder programming questions do a worse job of predicting... by abhishekjha on Monday February 18, 2019 @05:57PM (#19195249)
Why can't it be done using Permutation and Combination formula? I am bad at dynamic programming so can't really get into the solution right now?
Re:Harder programming questions do a worse job of predicting... by joshuamorton on Monday February 18, 2019 @03:53PM (#19194341)
You mean that you can't imagine when a memorized graph traversal would be useful?

I find that hard to believe.

Re:Harder programming questions do a worse job of predicting... by pcwalton on Monday February 18, 2019 @07:29PM (#19195755)
I have actually implemented memoized graph traversals for work (unlike most programmers). To begin with, I see no point in asking this when I could ask how to implement trait checking in Rust (what I had to use memoized graph traversals for), which a practitioner will find much more intuitive.

Moreover, memoized graph traversals don't get you full credit on this question. There's a dynamic programming solution, and in fact the ideal solution is one using matrix math, which is ludicrously divorced from anything most programmers would ever see.

Re:Harder programming questions do a worse job of predicting... by warp_factor on Monday February 18, 2019 @04:39PM (#19194712)
So you are saying that companies are hiring people that are willing to prove that they can put "a lot of work" into preparing for interviews that have no relevance to the actual work? I can see that as a valid point, as a way to filter lazy individuals. (In the same way that a college degree is more a way to prove that you can sustain X years of learning things without dropping out).

But it will also filter out everyone that is opinionated enough to not do that stupid preparation work, and you will end up with sheep coders that will always follow the rules. Looking at Google, Facebook etc, this might already be the case. I will even go so far to say that they prefer those type of obedient coders than the ones that ask too many questions and get too creative.

Re:Harder programming questions do a worse job of predicting... by matwood on Monday February 18, 2019 @04:56PM (#19194847)
No relevance would be like when I took the GRE for grad school. I studied things that had zero relevance to the CS program I ended up attending.

Reviewing algorithms for interview prep at least has some relevance to programming. While a candidate may not use that exact algorithm in their day to day job, they are creating ad hoc algorithms all day long. With that said, I don't think time pressure, white boarding algorithms is a very good job performance predictor.

Re:Harder programming questions do a worse job of predicting... by majormajor on Monday February 18, 2019 @02:10PM (#19193323)
There seems to be an assumption in these discussions that everyone has to prepare for these things in equal amount. But that's not the case.

(The counter to that is that if people can relatively-easily (single-digit days) cram for your interview, you're still not going to be effectively screening for at-hand pre-existing familiarity/knowledge.)

Re:Harder programming questions do a worse job of predicting... by wolco on Monday February 18, 2019 @03:39PM (#19194216)
What about using a real job related task. If they can do that they probably can do the job.
Re:Harder programming questions do a worse job of predicting... by 1000units on Monday February 18, 2019 @02:18PM (#19193393)
The elephant in the room is that it's a surrogate for an IQ test, since those are illegal.
Re:Harder programming questions do a worse job of predicting... by thedufer on Monday February 18, 2019 @08:53PM (#19196105)
It is not illegal to use IQ tests as part of a job screening (in the US). It is illegal to screen in a way that is both discriminatory and not proven to correlate with job performance, but that applies equally to both IQ tests and algorithms questions.
Re:Harder programming questions do a worse job of predicting... by 1000units on Monday February 18, 2019 @09:06PM (#19196150)
IQ is proven to correlate with performance in virtually everything, so I'm not sure where you're going with that.

If I require all prospective engineering hires to prove explicitly that they have an IQ of at least 135, I will get sued. Do you think this is false?

Re:Harder programming questions do a worse job of predicting... by thedufer on Wednesday February 20, 2019 @08:10AM (#19207514)
Obviously I do not think that is false; you can get sued for literally anything. Do I think you would lose? Depends on whether you've done the research showing that 135 is an important cut-off.

To turn this around, can you point at the law that makes IQ a protected class or whatever you're claiming it is? I'm not going to have much luck proving a negative - Russell's teapot and all that.

Re:Harder programming questions do a worse job of predicting... by AnimalMuppet on Monday February 18, 2019 @03:25PM (#19194065)
Exactly. As I said before, in a world where both Google and Knuth exist, they aren't hiring me to be a algorithm reference book.
Re:Harder programming questions do a worse job of predicting... by daenz on Monday February 18, 2019 @02:30PM (#19193526)
This resonates strongly with me. I know a few engineers who are bad to mediocre software developers, but excellent interviewees. That skill alone lands them offers at any place they want to work. They can whiteboard algorithms like there is no tomorrow, but they can't manage software complexity.
Re:Harder programming questions do a worse job of predicting... by vp8989 on Monday February 18, 2019 @03:17PM (#19194006)
A false dichotomy.

Managing complexity is a valuable skill that should also be screened for at interview. At most top companies you are there for at least 4-5 hours so there should be plenty of time to evaluate that skill.

I think whiteboard questions are good, I want to know that this person is capable of writing difficult code if we need them to.

I also think we probably ask too many of them.

I have been on the hiring side and my experience so far has been that almost always the feedback is close to identical across multiple whiteboard questions. The questions are also so abstract that asking multiple to "prevent bias" seems ineffectual. What bias could there be, you either solve the problem or you don't. Bias is more likely to come in on the behavioral interviews. There should be multiple of those for sure.

Generally someone is either a good enough coder or not and they will display that consistently across all the interviews. You will see the same stuff throughout (good or bad variable naming, good or bad communication etc) thus asking > 1 coding question by default is a waste of everyone's time.

Re:Harder programming questions do a worse job of predicting... by daenz on Monday February 18, 2019 @03:56PM (#19194363)
>A false dichotomy

It's not a false dichotomy because I am not suggesting that both skills are mutually exclusive. I'm highlighting some personal experiences where I've seen one skill is vastly overvalued compared to another.

>Managing complexity is a valuable skill that should also be screened for at interview

I've never been part of an interview, on either side, where I've seen testing for managing software complexity. Good interfaces, function design, side effects, state management, etc, are all second class citizens to finding the appropriate algorithm to solve the interview question. I've seen it over and over. The only time I've been close to a complexity management question was on a systems design question, but even then, it was only a very high-level systems discussion. I don't think most places know how to screen for it.

Re:Harder programming questions do a worse job of predicting... by rightbyte on Monday February 18, 2019 @01:40PM (#19193009)
This is kind off strange for a non US resident to grasp. I've been employed as a programmer three times and noone tested my coding abilites what so ever on the interviews. No samples, nothing. Never heard of any collegue doing that either.
Re:Harder programming questions do a worse job of predicting... by castlecrasher2 on Monday February 18, 2019 @01:55PM (#19193183)
>This is kind off strange for a non US resident to grasp.

I've worked for two non-technical companies as a software developer and one highly technical company, and interviewed at a few Silicon Valley companies.

The difference between the interview processes is staggering; my current job's interview was two hours of conversation, no code tests, just a general assessment of "do you know what you're doing" by the hiring manager and a couple other members of the team. The highly technical company had a code assessment then the in-person interviews had zero coding.

The SV companies must have a good reason for this, but golly the amount of coding in those interviews is nuts. I'm a process over code speed kind of coder, and I've failed every SV-level test because of it; my code comes from talking to non-technical users like medical researchers and study operations managers and tossing something together in Python or a cloud service that makes their lives easier. Needless to say, I don't go over algorithm fundamentals on a regular basis, and I generally fall out after the first or second interview.

It's especially odd that interviews are so intensely focused on those couple hours since I personally don't see any dev or any resource for that matter contributing in any meaningful way in so fast a time, or even within 90 days. I'm not sure how this problem could be solved with the limited time companies can dedicate to interviews, though; maybe rely more on portfolios?

Re:Harder programming questions do a worse job of predicting... by ninja10 on Monday February 18, 2019 @04:23PM (#19194584)
It's quite frustrating, I've submitted my portfolio of open source projects on GitHub for interviews. I specifically told the recruiters, HR personnel, hiring managers and some of the developers that the projects contain a large enough body of work to see examples of my code. These projects are quite comprehensive and not one person looked at them or mentioned them during the interviews.

Unfortunately, people in general rarely try to first understand what the candidate offers. It's more often ONLY about whether candidates uunderstand the exact way the company uses certain technology.

Re:Harder programming questions do a worse job of predicting... by erik_seaberg on Monday February 18, 2019 @05:26PM (#19195064)
Knowing what good work looks like is a plus, but I wouldn't be convinced by cherry-picked successes. That doesn't tell me how much you struggled with them, how many others you failed, or how much of the work was actually yours.
Re:Harder programming questions do a worse job of predicting... by castlecrasher2 on Monday February 18, 2019 @05:54PM (#19195231)
I think most of your concerns could be answered fairly quickly in a conversation, though. I can look over a Github repo and check out its history and ask specific questions about changes and why they were made or why design decisions were made.

The cherry-picked successes thing is certainly a problem, though, and not just for coding. Maybe it's the candidates I've asked it but when asked "tell me about when you made a mistake in a project" they tend to answer with a strength and try to re-frame it as a weakness. "Oh, I worked too hard on this project and it made me tired" isn't a weakness. "I worked too hard on this project and that made me neglect business requirements since I was too myopic to notice" is a weakness.

Sorry if that's a tangent, it's been a pet peeve of mine since I started interviewing that not many people are humble enough or have thought enough about what their weaknesses actually are, and how that affects the success of their work.

Re:Harder programming questions do a worse job of predicting... by driverdan on Monday February 18, 2019 @06:31PM (#19195462)
Requiring irrelevant coding tests isn't going to give you those answers either.
Re:Harder programming questions do a worse job of predicting... by jpindar on Monday February 18, 2019 @05:36PM (#19195128)
This is also my experience interviewing for embedded systems and (hardware) test automation work at electronics manufacturers. I've never been asked to code anything. (Nor have I been asked to draw any schematics.) Just conversation.
Re:Harder programming questions do a worse job of predicting... by mlthoughts2018 on Monday February 18, 2019 @02:27PM (#19193497)
> “The SV companies must have a good reason for this”

In fact, no, nobody has a good reason for it.

Re:Harder programming questions do a worse job of predicting... by lovecg on Monday February 18, 2019 @04:39PM (#19194709)
Go start a company. Hire people without doing any sort of coding interviews. Report back in a year.

The reality is that these are extremely desirable positions with a staggering number of applicants who _do not know how to code_. Not as in “I can’t solve a dynamic programming problem without studying up on it”, but as in literally don’t know what a for loop is.

The process is far from perfect and the frustration is understandable, but it works well enough as a filter from these companies’ point of view.

Re:Harder programming questions do a worse job of predicting... by castlecrasher2 on Monday February 18, 2019 @06:04PM (#19195288)
I imagine technical screening is necessary, but in-person coding assessments are nonsensical. It's not like programming is a spectator sport, so why are we tested on it live? I suppose the process is self-selecting, because I personally have given up responding to SV recruiters or interviewing with those companies.
Re:Harder programming questions do a worse job of predicting... by rpm33 on Monday February 18, 2019 @02:56PM (#19193800)
Well it started off with Microsoft in the 90's, then Google in 2000's and then it just became common for every company in SV to conduct these programming interviews.
Re:Harder programming questions do a worse job of predicting... by chooseaname on Monday February 18, 2019 @03:24PM (#19194056)
I don't see a "good reason" in your comment.
Re:Harder programming questions do a worse job of predicting... by kokokokoko on Monday February 18, 2019 @01:53PM (#19193160)
It's actually not as common as it sounds from reading HN. There is definitely a bias based on the fact that the big tech companies do it and startups tend to do it. Which many commenters here have experience with.

A lot of more traditional software development roles do not have much testing. Sometimes they will have a quick online timed test or a simple question on an intitial phone screen. That isn't to say that all companies do not have testing. But it's definitely the startup and big tech worlds that have the majority of it.

Re:Harder programming questions do a worse job of predicting... by FabHK on Monday February 18, 2019 @02:28PM (#19193509)
I've been in technical positions in the UK and Hong Kong, and in both cases the interviews were very technical. Hours and hours of technical assessment and questions.
Re:Harder programming questions do a worse job of predicting... by smt88 on Monday February 18, 2019 @01:49PM (#19193117)
The massive FAANG-types of companies receive so many millions of job applications, they championed these types of interviews to have a more objective way to filter through all the applicants. That practice has waned somewhat at the larger companies (not totally, but it's changing), but has trickled down to smaller companies.
Re:Harder programming questions do a worse job of predicting... by mlthoughts2018 on Monday February 18, 2019 @02:36PM (#19193593)
I received a cold call from a Lyft recruiter recently for a senior machine learning position. I asked why they were reaching out to me and the recruiter mentioned that it’s an especially hard time to locate experienced machine learning candidates, they don’t have enough applicants.

I said I was interested in interviewing but that I would only agree to a process that evaluates me based on my previous work history, and not any onsite or takehome coding projects, system design questions or whiteboard coding questions.

The recruiter said she would run it by the manager, but thought it would not be possible, and a few days later I got a rejection email.

Re:Harder programming questions do a worse job of predicting... by juniper411 on Monday February 18, 2019 @03:36PM (#19194188)
I understand takehome and whiteboard coding of course, but why not system design questions?
Re:Harder programming questions do a worse job of predicting... by sjg007 on Monday February 18, 2019 @03:37PM (#19194200)
I dunno.. flip side to this is that you could name your own price basically.
Re:Harder programming questions do a worse job of predicting... by mlthoughts2018 on Monday February 18, 2019 @05:00PM (#19194876)
Not really though. If your price is working in a quiet, private office with a door that shuts, or having humane treatment when you’re being interviewed, then it seems nobody would pay it.

Let’s take their word for it that they are desperate for a machine learning engineer. Then it suggests they care more about mandating workspace conditions (since financial cost even to provide thousands of workers with private offices in dense urban areas is not a realistic excuse not to do it) or trivia during interviews than about business needs.

Re:Harder programming questions do a worse job of predicting... by nybblesio on Monday February 18, 2019 @05:26PM (#19195068)
This is such an important observation. Claims of limited talent pool don't align with reality. If demand were truly inelastic, companies would negotiate.
Re:Harder programming questions do a worse job of predicting... by mlthoughts2018 on Monday February 18, 2019 @06:25PM (#19195425)
In some cases I do think there is a limited talent pool. Unwillingness to negotiate in those cases usually means the company would rather simply suffer along with worse business outcomes, or try to invest in a totally different area of work, than to accept they are at a negotiating disadvantage and that it may be the case that painful company culture changes have to be made (like giving some people private offices and not others).

“The market can stay irrational longer than you can stay solvent,” seems apt for this.

Re:Harder programming questions do a worse job of predicting... by misiogames on Monday February 18, 2019 @03:01PM (#19193856)
true that, and I wonder, based on the little info I've about employment in the US, it's so expensive to fire someone once you realize they are not a good fit? Even in my country (Arg), that has huge amounts of protections to workers, the first 3 months are consider trial, so you can fire someone without additional cost of the payed salaries.
Re:Harder programming questions do a worse job of predicting... by dudul on Monday February 18, 2019 @03:26PM (#19194075)
Most workers in the US are under the "at will" regime: they can be let go at any time in theory. In practice, companies (especially big ones) usually try to "build a case" to justify the move.
Re:Harder programming questions do a worse job of predicting... by SilasX on Monday February 18, 2019 @02:19PM (#19193399)
What stops someone unqualified from getting through? What other filters do you apply?
Re:Harder programming questions do a worse job of predicting... by mlthoughts2018 on Monday February 18, 2019 @02:31PM (#19193536)
Probing someone with very technical conversation about past technical projects is a much stronger filter to prevent unqualified candidates than passing CoderPad tests, whiteboard algorithms, etc.

The conditional probability you are hopelessly lacking software skills to do a job given that you nonetheless passed a TripleByte exam or something is quite high. Overfitting & memorization for the sake of the test is extremely common.

But it’s much, much harder to fake competence when needing to dynamically and verbally explain technical details in a conversational interview about past work experience.

Re:Harder programming questions do a worse job of predicting... by joshuamorton on Monday February 18, 2019 @04:09PM (#19194480)
I can, with quite a high level of competence, speak about projects I had no part in implementing or that don't yet exist.

It's far, far easier to fake expertise when you have more context than the person asking questions. Technical interview questions make sure that the question giver has more context than the recipient, ignoring pathological cases.

Re:Harder programming questions do a worse job of predicting... by mlthoughts2018 on Monday February 18, 2019 @04:14PM (#19194523)
I’m sorry but you cannot do what you are claiming. It has nothing to do with whether the candidate has more context or not.

In fact, conversational interviewing like this has very little to do with any of the domain specifics of the project. The point is to recursively keep probing for deeper technical specifics, so they have to explain at finer and finer technical levels what were the tradeoffs, why exactly were certain decisions made or how were certain problems overcome.

It is precisely the situation when someone did not have to dig into the technical weeds of a project for themselves that they will not be able to fake or fast talk their way through this type of interview.

That is the number one, defining characteristic of this way of interviewing.

Re:Harder programming questions do a worse job of predicting... by joshuamorton on Monday February 18, 2019 @04:34PM (#19194674)
>I’m sorry but you cannot do what you are claiming.

But I have. Not in the specific context of a job interview, but I have absolutely convinced technical experts that my level of expertise in a field is above my actual level of expertise. Ironically, if this were a technical interview, I'd fail it, not because I lack the skills to convince technical experts of my non-existent abilities, but because you don't find me trustworthy.

>The point is to recursively keep probing for deeper technical specifics, so they have to explain at finer and finer technical levels what were the tradeoffs, why exactly were certain decisions made or how were certain problems overcome.

But without context, you can't effectively do that. I, the candidate, am in control. I can steer the conversation to avoid areas where I don't have expertise by answering all kinds of things: "investigating that was someone else's responsibility", "well we never tried anything else and our current implementation works well enough that we never needed to", etc. You can't know if those are lies or not. There are all kinds of completely valid non-technical reasons for decisions that may be completely outside of a candidate's control.

You're either forced to completely trust the candidate, or attempt to verify their authenticity during the interview, at which point you quickly venture into the land of bias and subjectivity.

Re:Harder programming questions do a worse job of predicting... by mlthoughts2018 on Monday February 18, 2019 @06:20PM (#19195396)
> “But without context, you can't effectively do that.”

This is simply false. You don’t need context to understand if the breakdown of a technical problem into constituent trade-offs was appropriate or not — by definition that very breakdown into constituent technical details is the context.

> “investigating that was someone else's responsibility"

This just confirms to me that you are not correct in asserting people can just skate by these discussions. If someone tells me something like that, I’ll ask them what did that other person find when they investigated? If you say anything like, “I don’t know; that was their job not mine,” then you’ve lost credibility because you didn’t put that other person’s conclusions through strong skepticism until you were satisfied you knew the details well enough that you could own or support them if you had to. That is exactly the sort of thing that indicates bullshitting.

> “attempt to verify their authenticity during the interview, at which point you quickly venture into the land of bias and subjectivity.”

This is just wrong. You don’t ever “just trust” the candidate, that’s the opposite of this interview style. Further, you never “attempt” to verify authenticity.. you just do verify it, since it does not require context or domain specialty to analyze reductionist decomposition of any engineering work down into primitive constituent tasks or decisions that are universal.

This approach is far less biased or subjective than appraising “how a candidate thinks” while they solve tricky puzzles in a foreign environment with unrealistic time pressure.

Re:Harder programming questions do a worse job of predicting... by joshuamorton on Monday February 18, 2019 @06:45PM (#19195548)
>This is simply false. You don’t need context to understand if the breakdown of a technical problem into constituent trade-offs was appropriate or not — by definition that very breakdown into constituent technical details is the context.

I mean, yes you do. Context tells you which decisions are important. You're asking for the context you need to assess someone's technical competency from the person whose technical competency you're attempting to assess. They have every incentive to lie, mislead, or stretch the truth to make the context they give you highlight their skills more than the real context did. And no, you can't verify that.

>If someone tells me something like that, I’ll ask them what did that other person find when they investigated? If you say anything like, “I don’t know; that was their job not mine,” then you’ve lost credibility because you didn’t put that other person’s conclusions through strong skepticism until you were satisfied you knew the details well enough that you could own or support them if you had to. That is exactly the sort of thing that indicates bullshitting.

But now you're punishing someone for organizational things possibly beyond their control. If my job was to build a thing that made use of some blackbox algorithm, and John developed the algorithm, why should I put the algorithm under strong skepticism, perhaps that's how things work in your workplace, but there's no clear reason that mine work the same way. This is just a bias against people whose development practices aren't the same as yours.

>This approach is far less biased or subjective than appraising “how a candidate thinks” while they solve tricky puzzles in a foreign environment with unrealistic time pressure.

Except that, as I've literally just proven, you've failed to verify the authenticity of me because you've wrongly concluded that I'm not authentic. This comment thread exactly demonstrates just how you can fail to identify a good candidate with this method because if you dislike what they're saying, you'll unconsciously convert that to them being less authentic.

So again, either you take the candidate at face value in a situation where they have every incentive to lie to you, or you attempt to verify their authenticity, at which point that analysis is subject to a multitude of biases that have nothing to do with the candidates skill level.

You've just demonstrated this perfectly.

Re:Harder programming questions do a worse job of predicting... by mlthoughts2018 on Monday February 18, 2019 @07:42PM (#19195806)
> “I mean, yes you do. Context tells you which decisions are important.”

No, you definitely don’t need to come into it knowing about this, and even if you don’t know about this ahead of time, it won’t imply “just trusting” the candidate or being overly subjective. You will ask the candidate to explain why various decisions were important, and not stop at the top line answer but recursively probe into it, breaking it down into concepts and trade-offs that are universal in any kind of applied problem solving.

> “But now you're punishing someone for organizational things possibly beyond their control. If my job was to build a thing that made use of some blackbox algorithm, and John developed the algorithm, why should I put the algorithm under strong skepticism, perhaps that's how things work in your workplace, but there's no clear reason that mine work the same way.”

I’m sorry but this also just isn’t true. If you are describing your contributions to projects and all that keeps happening is you hit walls in your explanation where someome else did the work and you did not review that work at a high level of depth, then you’re just being misleading about your contributions at work.

Your job as an engineer in a company is to solve problems for your stakeholders, whether that means building tooling for other engineers, assisting designers with prototypes, designing algorithms for core product functionality, sales engineering for client stakeholders, etc.

It doesn’t matter how your company is structured, it doesn’t matter how the work was divided up. Your job is to know about the stakeholder problem you are solving, at a deep level, and when you represent your work to other people and you fail to offer technical depth about the trade-offs needed to solve stakeholder problems, that’s a clear mark against you as a candidate.

It’s bewildering to me that anyone would think that the way their current employer organizes assignments should reduce their burden of knowing how to represent their projects in significant technical depth. That is an always-on, never mitigated, constant responsibility for all employees anywhere. You’re not holding anything against someone if they can’t provide that in an interview... no, you’re just uncovering what they’ve lied about or embellished on a resume.

> “Except that, as I've literally just proven, you've failed to verify the authenticity of me because you've wrongly concluded that I'm not authentic.”

I see no such proof at all, and the cheeky rhetoric just makes me feel more entrenched that you are bullshitting hugely in this thread.

> “So again, either you take the candidate at face value in a situation where they have every incentive to lie to you, or you attempt to verify their authenticity, at which point that analysis is subject to a multitude of biases that have nothing to do with the candidates skill level.”

You are doing nothing but gainsaying here. You’ve made no argument that would support any of these strong conclusions, especially not any reason why this interview method faces the false dilemma between either just trusting the candidate or else succumbing to biases.

You are just asserting things, but they do not seem to be connected to or bolstered by any of the other things you’ve written.

Re:Harder programming questions do a worse job of predicting... by joshuamorton on Monday February 18, 2019 @08:12PM (#19195939)
> You are just asserting things, but they do not seem to be connected to or bolstered by any of the other things you’ve written.

Let me lay it out clearly: I asserted that I can, and have, inflated my abilities to people who have technical know how. This was in response to you stating that "I’m sorry but you cannot do what you are claiming."

So to be clear, at this point, one of two things is true:

1. You are wrong

2. I am a liar

To you, it is clear that point 2 is the true one. To most readers, this is not as obvious. Once you have decided that (2) is true and I am a liar, nothing I say can or will convince you otherwise. But you haven't decided that based on anything factual. In fact, (1) is true here. I am not lying. I can, and have, done the things I claim to have done in this case.

I'm using this to demonstrate that your ideas about such a conversational interview don't work, by pointing out that in the conversational interview that we are having right now, you've decided, based on a preconception, that what I say cannot be true! I could be the world's most successful conman, but because you're preconceptions lead you to believe that your preferred interview process is effective and is less biased than your non-preferred one, you won't accept evidence to the contrary.

>I see no such proof at all, and the cheeky rhetoric just makes me feel more entrenched that you are bullshitting hugely in this thread.

Right, and my point is you're wrong and unwilling to accept that. And that is a demonstration of you not being able to effectively figure out whether or not someone is bullshitting from a conversation with them. You've decided that I'm bullshitting because the alternative would require you to do a lot of introspection about how and why you analyze candidates the way you do. So it's easier to just say "you're bullshitting" and then not put in the effort. And that's certainly your prerogative, but its not at all a good look for your interviewing capabilities.

That you're so prone to cognitive biases that you're willing to completely write off someone's experience because it forces you to rethink something you hold dear is not a selling point of the process you espouse. It demonstrates, like I've said, that the process is prone to cognitive bias and is therefore decidedly not objective.

That is, there are two possibilities:

1. You are wrong, and you're refusal to accept that is coloring your perceptions of our interactions in such a way that you are not able to be objective about my experiences and abilities, as I claim.

2. I'm completely making everything I've said up and haven't ever been able to inflate my abilities to anyone. Your person-analytical skills are infallible and you've caught me.

I subscribe to (1), you continue to wrongly believe (2). This is expected, its why your process isn't as objective as you claim.

>It doesn’t matter how your company is structured, it doesn’t matter how the work was divided up. Your job is to know about the stakeholder problem you are solving, at a deep level, and when you represent your work to other people and you fail to offer technical depth about the trade-offs needed to solve stakeholder problems, that’s a clear mark against you as a candidate.

This is, again, your opinion of how engineering should be done. Not every engineer has the opportunity to work in a workplace where that's how things work. Are you going to write off everyone whose experience has been in a PM led environment because they haven't had the opportunity to develop using the process you prefer? If so that's again your prerogative, but you're probably filtering out a bunch of good engineers.

Re:Harder programming questions do a worse job of predicting... by kragen on Monday February 18, 2019 @06:14PM (#19195360)
Are you talking about TripleByte exams from experience, or are you speculating that they are similar to other software interviewing processes? The questions they asked me covered what I think of as a staggeringly wide range of knowledge, including sysadmin stuff, detailed knowledge of four or five programming languages, POSIX semantics, high-level scalable systems architecture, and so on. It seemed to me that it would be very difficult to "memorize for the sake of the test".
Re:Harder programming questions do a worse job of predicting... by mlthoughts2018 on Monday February 18, 2019 @06:32PM (#19195468)
Maybe we just see it differently, but I’d consider everything you’ve listed as exactly the sort of stuff that just gets memorized. I don’t even think the breadth of what you listed is that bad actually. Especially for recent grad brogrammer types with no serious life obligation time commitments, memorizing an entire program of study like that is probably only an investment of ~1 month of time, and has practically no correlation to on the job effectiveness once hired.

I’m speaking from ~10 years of experience running my team’s recruiting in a quant finance firm, where many interview requirements / tests / etc., came down from executive managers, so I got to see a wide range of performance on tests of all sorts, riddles, hardcore algo trivia, etc.

The sum total of all that leads me to believe quite strongly that the best signal to noise comes from super careful and tedious resume selection followed by conversational and behavioral interviews that recursively probe into more specific technical details.

Re:Harder programming questions do a worse job of predicting... by kragen on Monday February 18, 2019 @08:51PM (#19196102)
I agree that any one of the questions could have been memorized, but it seems to me like it would take a year or two of constant memorization, like more than 8 hours a day, to get all of it, even assuming there was a place that had the relevant information conveniently formatted for memorization — which, as far as I know, there isn't. But maybe I'm just bad at memorizing things?

I note that you didn't answer my question. Have you taken the TripleByte exam or not?

Re:Harder programming questions do a worse job of predicting... by freewilly1040 on Monday February 18, 2019 @03:39PM (#19194214)
Interviewing is a skill regardless of what field you are in. I agree that algorithm are not optimal for testing engineering skills, but there's a whiff of entitlement when engineers get indignant about having to spend time preparing for an interview. Objective evaluation methods for evaluating candidates are hard to come by, and I don't see obviously better alternatives.
Re:Harder programming questions do a worse job of predicting... by abhishekjha on Monday February 18, 2019 @05:40PM (#19195150)
Hi.

Where are you learning DP problems from? I am very bad at those and need a few good references so that it sticks in my memory.

Re:Harder programming questions do a worse job of predicting... by ball_of_lint on Monday February 18, 2019 @06:01PM (#19195267)
I'd suggest kattis and CodeForces. I use kattis mostly, but know a number of people who like codeforces better.

Here's a few for you to try. Some of these are pretty hard, but you should be able to find solution sketches online if you google the contests they are from.

https://open.kattis.com/problems/increasingsubsequence

https://open.kattis.com/problems/maximumsubarrays

https://open.kattis.com/problems/tray

https://open.kattis.com/problems/dinnerbet

https://open.kattis.com/problems/hyperpyramids

I've solved all of these as well, so if you get really stuck feel free to reply here and I'll try to guide you through them.

Re:Harder programming questions do a worse job of predicting... by abhishekjha on Monday February 18, 2019 @08:58PM (#19196126)
Thank you. I will definitely be coming back. I guess I have difficulty formulating a DP problem properly.
Re:Harder programming questions do a worse job of predicting... by ball_of_lint on Wednesday February 20, 2019 @03:18PM (#19211568)
I found another recently that has DP on a tree:

https://open.kattis.com/problems/theescape