Live data from Hacker News

Algorithmic Interviewing – Optimizing to Hire the Wrong Developer

medium.com

51–60 of 69 posts

Re: Algorithmic Interviewing – Optimizing to Hire the Wrong Developer

#51
post #40
post #13

"Being a great business web developer and being a great algorithm developer are not mutually exclusive, but they are also not interdependent. The type of developer that would perform well at this kind of challenge is potentially a recent graduate, fresh from an algorithms class or one that is more focused on micro-optimizations than the big picture." Oh, good grief. Being able to answer basic algorithmic questions in…

I would argue that, say, a recent graduate who can absolutely nail algorithmic questions would be the most likely to screw up on the big ticket items that matter (infrastructure, taste, independent thought) precisely because they have zero real world experience.

"a recent graduate who can absolutely nail algorithmic questions would be the most likely to screw up on the big ticket items that matter"

Why do people keep implying that only new grads understand algorithms as if it's some kind of fact? In my experience, new grads don't tend to know algorithms any better than they know anything else.

Good engineers keep learning about algorithms because the knowledge is timeless.

Re: Algorithmic Interviewing – Optimizing to Hire the Wrong Developer

#52

I don't agree 100% with the author on not asking them algorithmic questions. Its a process on how they go about solving it rather than just the outcome. Maybe for the web developer position, you might not need such type of questions, but for a full stack developer the answer is unequivocally yes. I made a mistake by hiring someone who knew django [who originally wrote plugins in WP] and the coding was just plain horr…

Coding noob here. Can someone explain the problem with the

`for foo in queryset`

implementation? Is it that for loops are inherently inefficient? What would be a better alternative?

Re: Algorithmic Interviewing – Optimizing to Hire the Wrong Developer

#53

Earlier quoted context omitted.

(I upvoted you because you're pedantically correct, but being even more pedantic: if it's not a balanced binary search tree, is "lookup" even a valid operation on it?)

Well, lookup is a valid operation on any dataset.

Not really: "lookup" is not part of the API (as taught in a typical data-structures class) for stacks, queues, and priority queues, and technically arrays/vectors let you lookup by integer but the O(N) lookup by object is only an extension that most languages provide as a convenience.

If we really want to be pedantic, we'd have to define what the binary tree is used for, because there's no convention for what "lookup" means in this case. A heap, for example, can be implemented as a balanced binary tree, but the only methods it provides are push, pop, and top.

Re: Algorithmic Interviewing – Optimizing to Hire the Wrong Developer

#54
post #40

Earlier quoted context omitted.

I would argue that, say, a recent graduate who can absolutely nail algorithmic questions would be the most likely to screw up on the big ticket items that matter (infrastructure, taste, independent thought) precisely because they have zero real world experience.

And you don't immediately give a recent grad a large project with no oversight. You give them time to learn that stuff, and they'll pick it up with experience. But someone who demonstrably cant understand how computers work? That's who you need to avoid.

Exactly, there's a reason the title 'Junior Developer' exists

Re: Algorithmic Interviewing – Optimizing to Hire the Wrong Developer

#55
post #49
post #20

Earlier quoted context omitted.

I have been doing this a long time, and I have never met someone who knows computer science who has had any difficulty picking up a web development framework. This stuff isn't rocket science.

I once worked with an individual with a PhD in Mathematics who wrote some of the most god-awful code you could possibly imagine. In an algorithmic test, he would have bested anybody I can think of. Intelligence and usefulness at tasks are incredibly complex topics for discussion. If you think you can reliably go from A to B, you're dead wrong. The only reliable metric is, if you want skills A, test for A. If you want…

Indeed. You want people who can code, and who know algorithms. You must test for both.

Re: Algorithmic Interviewing – Optimizing to Hire the Wrong Developer

#56
post #51
post #40

Earlier quoted context omitted.

I would argue that, say, a recent graduate who can absolutely nail algorithmic questions would be the most likely to screw up on the big ticket items that matter (infrastructure, taste, independent thought) precisely because they have zero real world experience.

"a recent graduate who can absolutely nail algorithmic questions would be the most likely to screw up on the big ticket items that matter" Why do people keep implying that only new grads understand algorithms as if it's some kind of fact? In my experience, new grads don't tend to know algorithms any better than they know anything else. Good engineers keep learning about algorithms because the knowledge is timeless.

Ridiculous. Good engineers solve engineering problems. The huge number of successful engineers out there in the world solving problems without remembering their CS course notes tells you everything you need to know about how important much of the algorithmic subject matter is.

Re: Algorithmic Interviewing – Optimizing to Hire the Wrong Developer

#57
post #46

Earlier quoted context omitted.

FWIW, I was hired by Google in the depths of the 2009 recession because "You have both solid front-end skills and deep algorithmic knowledge, and that's not a combination we see very often." I work with a number of Ph.D's from top universities who are doing cutting-edge machine-learning and ranking algorithms. Many of them cannot code themselves a UI if their life depended upon it, let alone stay up-to-date with emer…

I believe the core of what you're saying: it's fairly rare to find someone who is algorithmically excellent, and who already knows all of the details of web dev. But I think that's largely a matter of interest and specialization , not capability. But I stand by my larger point: I wouldn't hire a web dev who wasn't fluent enough in basic CS that they couldn't pass an algorithm interview. They don't need to be able to…

I don't think we really disagree: I also wouldn't hire a web dev who wasn't fluent enough in basic CS that they couldn't pass an algorithm interview. Once you get past JQuery and need to do your own DOM manipulation, it becomes really important to have your tree traversals down. And webdevs who don't realize that NodeLists are actually lists (with O(N) .length calls) cause a world of pain with their for(var i = 0; i But I thought what started this thread was mamcx's thought question about why we don't apply this the other way around: when hiring data scientists, why do we not require that they have a basic fluency with web UIs, at least enough to throw a table and a few images up onto a web page and show/hide some details? In my experience, what separates the best data scientists from the worst - and there's an order of magnitude difference in productivity between them, at least, enough that a poor data-scientist will never come up with a useful result - is the ability to quickly visualize their data set and understand its "shape". They need to know the distribution, and be able to drill into a few examples of raw data, and come up with the top X or so results by whatever signal they're studying. And the easiest way to do this is by generating a web page with a few charts, a few examples, a sortable table, etc. Nothing terribly fancy, but having the chops to do this on your own makes you much more effective than someone who knows the theory but can get their hands dirty with actual data.

Re: Algorithmic Interviewing – Optimizing to Hire the Wrong Developer

#58
post #56
post #51

Earlier quoted context omitted.

"a recent graduate who can absolutely nail algorithmic questions would be the most likely to screw up on the big ticket items that matter" Why do people keep implying that only new grads understand algorithms as if it's some kind of fact? In my experience, new grads don't tend to know algorithms any better than they know anything else. Good engineers keep learning about algorithms because the knowledge is timeless.

Ridiculous. Good engineers solve engineering problems. The huge number of successful engineers out there in the world solving problems without remembering their CS course notes tells you everything you need to know about how important much of the algorithmic subject matter is.

Uh huh. I can fix my car without knowing metallurgy and fluid dynamics, but you wouldn't want me building you an engine.

Just because people are getting by doing the technical equivalent of changing sparkplugs doesn't mean that I want to hire them to do something more difficult.

Re: Algorithmic Interviewing – Optimizing to Hire the Wrong Developer

#59
I was recently interviewed by Google, didn't get the gig, didn't do very well If I'm honest, however even though I'm a bit bitter, I'll admit that knowing algorithms and data structures is important. I was rusty before the interview so I hit the books and I was amazed how many things I've forgotten and I do believe knowing those thing makes you a (much) better developer. Whoever says otherwise, do yourself a favor and learn at least the fundamentals.

Re: Algorithmic Interviewing – Optimizing to Hire the Wrong Developer

#60
post #46

Earlier quoted context omitted.

I believe the core of what you're saying: it's fairly rare to find someone who is algorithmically excellent, and who already knows all of the details of web dev. But I think that's largely a matter of interest and specialization , not capability. But I stand by my larger point: I wouldn't hire a web dev who wasn't fluent enough in basic CS that they couldn't pass an algorithm interview. They don't need to be able to…

I don't think we really disagree: I also wouldn't hire a web dev who wasn't fluent enough in basic CS that they couldn't pass an algorithm interview. Once you get past JQuery and need to do your own DOM manipulation, it becomes really important to have your tree traversals down. And webdevs who don't realize that NodeLists are actually lists (with O(N) .length calls) cause a world of pain with their for(var i = 0; i…

Yeah, I think we're on the same page. Your traversal example is a good one.

I also agree with you that web engineers should be at least functionally competent at UI development. But where I depart from mamcx is that I'd still choose the algorithmically talented candidate over the one with UI skill and no algorithmic knowledge. I think that learning web UI development is easier than learning the fundamentals of computer science. But maybe I'm just a snob. :-)

Post reply on HN