Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> I think there's a big, meaningful difference between "no amount of work prepares you for this" and "no amount of [anything] prepares you for this."

Something you spend time on to do better in interviews is work as far as I'm concerned. Brushing up on algorithms is work in this context. So is doing programming puzzles if you expect to see those.

> It's merely a way of trying to check "do they have a good enough memory and grasp of the basic concepts to work things out"

It's generally not about memory. That's a factor but not the intent. Programming puzzles are about finding out if the candidate has a sufficient grasp of technical basics (i.e. if you don't know what a hash table is, or if you don't know Big-O notation, that's a big concern), and yes, whether they can work through a problem. If you can't work through a problem, that's also a big concern. It could mean you just don't interview well, and that's a problem I don't know how to solve. It could also mean that you just aren't able to think through complex issues.

Toy problems are not completely representative of real work, but I find it odd when people claim they don't do anything like this in their work at all. I use Big-O to discuss work and give code reviews with some regularity. I work on problems that require juggling some moderately complex state to solve correctly, that require good choice of algorithm and data structure to solve efficiently. That's definitely not most of my work, but it's a part.

I try really hard to ask questions that someone with good grasp of fundamentals can solve, though. I stay away from questions that are dependent on a clever trick (find a loop in a linked list with two pointers) or esoteric/trendy knowledge (use circular hashing and a bloom filter!).

On the other hand, "brain teaser" puzzles seem mostly to be pointless, but I've not personally been asked one of those in a real interview and I don't know anyone who uses those.

> as a (lazy, IMO) substitute for trying to see if they have relevant, immediately-useful skills that will complement your team.

I don't generally care if people I'm hiring have immediately-useful skills beyond the fundamentals. I don't care if they're well-versed in our stack or languages or whatever. It's a bonus if they are, but I care far more that we hire smart people who can learn.



A lot of it is memory. If you have recent memory of writing, say, a bunch of tree traversal implementations, you're going to solve those problems a lot faster than someone without that recent practice. And if you're talking a 45-min or 1-hr one-or-two-question phone screen, companies are putting a lot of value on that quickness.

I haven't seen many interviewers (as candidate or as a fellow interviewer) who truly value "talking knowledgeably about Big O notation" or "knowing what a hash table is" anything near as much as "wrote a whiteboard implementation of topological sort quickly enough." It's the latter part that I object to.

The areas where I've found looking for immediately-useful skills helpful are (a) to ship specific projects in new areas where I'm not an expert fast and (b) to verify that someone has the patience/diligence to go deep in at least one area. Friend of mine is at a place that seems to need this desperately: about 15-25 "smart people who can learn" mostly straight out of school, but a culture that's mostly the-blind-leading-the-blind and rediscovering known solutions (or worse, rediscovering practices with known issues). He's currently trying to sell them on the value of having automated regression testing, but that's not the type of skill learning they were selected for.


> A lot of it is memory. If you have recent memory of writing, say, a bunch of tree traversal implementations, you're going to solve those problems a lot faster than someone without that recent practice.

It is a factor but not the purpose. Yes, if you don't remember how to do something, you'll have a hard time doing it unless you can derive it from first principles. There is literally nothing you could ask in an interview that would not involve memory, though. "How would you reverse a linked list in C"? Definitely some memory there. "How would you implement a hash table?" Also requires memory. "What did you work on at your old job?" Again, memory.

> And if you're talking a 45-min or 1-hr one-or-two-question phone screen, companies are putting a lot of value on that quickness.

Eh, maybe. I think studying up on interview problems is a good idea in general, because it gets you practice thinking through problems and recognizing similar situations. However, I don't consider it a positive to see someone burn through the "right" solution with no apparent thought. If you've seen the problem and don't say so, I have to lean toward no-hire, because pure rote memory is not interesting. If you have clearly done the problem recently but deny it when asked, I have to question your ethics, too. You might just be a genius, but them I expect you to seem like a genius when we discuss technical matters and not just when solving interview questions.

> I haven't seen many interviewers (as candidate or as a fellow interviewer) who truly value "talking knowledgeably about Big O notation" or "knowing what a hash table is" anything near as much as "wrote a whiteboard implementation of topological sort quickly enough." It's the latter part that I object to.

I don't ask questions like that and most of the my colleagues don't either. I do ask technically difficult questions and expect code, but I don't expect perfect code. I expect candidates to work through a reasonable solution out loud and write at least part of it in code that could work with a little polish. If you write terrible code and leave off-by-one errors everywhere and can't recognize them when prompted, it's probably a no hire.

> Friend of mine is at a place that seems to need this desperately: about 15-25 "smart people who can learn" mostly straight out of school, but a culture that's mostly the-blind-leading-the-blind and rediscovering known solutions

Your friend works somewhere with poor staffing practices, then. If you don't have some senior people promoting proper dev culture and practices, it's going to be a mess of poor engineering and reinventing the wheel.


It seems like we're mostly on the same page, just approaching it from different directions. Maybe I've just gotten unlucky in my interview experiences at startups/establish Bay Area "coding question"-focused shops. :\


Seems like we're not that far apart, at least.

I won't lie. Interviewing is tough. I've been involved with some bad interviews from both sides. I wish there was a better way, but I'm not convinced that any of the alternatives typically proposed are actually better.

I gave some interviews when I was at Yahoo that I recognize in retrospect were pretty terrible. Questions with clever/trick answers, trendy topics, etc. The only thing I never did was the pure brain teasers (a fox, chicken, and farmer need to cross a river...). I try to do better now. :\




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: