News for hackers. Stuff that matters.
Re:The Lesson to Unlearn by kccqzy on Saturday December 07, 2019 @02:58PM (#21732230)
I think testing algorithmic questions is certainly evil, but it's a necessary evil because all other methods are either too time-consuming or unrealistic. You wouldn't believe in a big company how many clearly unqualified applicants there are, and there has to be some quick and dirty rule to run a filter through them. Perhaps it's the aura of FANG companies that make unqualified applicants try because they have nothing to lose. My experience is that just about 1% of interviewees can actually confidently write a depth first search and explain its time complexity. If they can't even do that (which is basically among the first things schools teach in a CS curriculum), how do you trust they that they have the skills to design and implement even more complicated systems?
Re:The Lesson to Unlearn by Izkata on Saturday December 07, 2019 @04:05PM (#21732552)
> I think testing algorithmic questions is certainly evil, but it's a necessary evil because all other methods are either too time-consuming or unrealistic.

> write a depth first search and explain its time complexity.

Part of our test goes "here's a function, in plain English what does it do?", and then "there's a few bugs in this implementation, what are they and how can they be fixed?"

I think there's a lot of alternatives to traditional algorithmic questions that just don't usually get considered. This one I liked because it involves things you'd actually do day-to-day: Reading other people's code, figuring out intent, and finding/fixing bugs.

Re:The Lesson to Unlearn by eggsmediumrare on Saturday December 07, 2019 @03:47PM (#21732455)
I've never done that (self-taught dev), but I've set up SSO, terraformed production systems, wrote ETLs for system critical data... I'm not an amazing developer, but I get things done. That test would filter me out simply because I've never tried it before.
Re:The Lesson to Unlearn by kccqzy on Saturday December 07, 2019 @05:59PM (#21733180)
I totally understand. Different job expectations. Whenever I tell people I actually need to write dynamic programming in my job people are always incredulous. To many, dynamic programming is a technique they learn only to pass interviews and not use in real life. It's really that if you don't know certain algorithmic stuff, you can't actually work on the lowest levels of the stack, but not all companies expect their developer to do that.
Re:The Lesson to Unlearn by yowlingcat on Sunday December 08, 2019 @01:34PM (#21737326)
> My experience is that just about 1% of interviewees can actually confidently write a depth first search and explain its time complexity. If they can't even do that (which is basically among the first things schools teach in a CS curriculum), how do you trust they that they have the skills to design and implement even more complicated systems?

My experience with former BigCo engineers I've had to work with is that 1% of interviewees can actually confidently design a relational data model from scratch for a weekend MVP of reasonably any major web service you could think of. If they can't even do that (which is basically among the first things you do as an engineer standing up a service from scratch), how do you trust that they have the skills to design and implement even more complicated systems?

See, I just took what you said and replaced it with a couple of key phrases. But the truth is, when it comes to designing and implementing even more complicated systems, my passage (while reductive and still arguably wrong) makes a lot more sense than yours. I'm not saying this to pick on you, just to say that you probably want to revise what you say at the very end. Instead of "how do you trust they that they have the skills to design and implement even more complicated systems?" you should really be phrasing what you're looking for as "How do you trust that they have the skills to maintain and build efficient modules at Google scale?" because there are plenty of "even more complicated systems" The truth is that the architectures that consist of the grunt work of what you do scaling a company from $0B to $100M or $100M to $1B or $1B to $10B that are by and far more important than a depth first search. The fact that you leapt to do that rather than something more widely applicable shows exactly what's wrong with this mentality. It's not that you're incorrect; you're not even wrong. You never got to the point of knowing what the right question is.

Re:The Lesson to Unlearn by zimpenfish on Sunday December 08, 2019 @01:49AM (#21734681)
> which is basically among the first things schools teach in a CS curriculum

I'm pretty sure that didn't come up until at least my 2nd or 3rd year - which was 25+ years ago (and I've never had to implement it by hand since.) You seem to be biasing your selection criteria towards "new/very recent graduates"?