Hacker News new | ask | show | jobs
by tourist_on_road 2140 days ago
But it might come handy when implementing - route optimization problems - Building database query optimization engine

You can argue that not everyone is implementing these from scratch every day. But it could be argued that given an opportunity, an engineer should have the skills and ability to build these systems.

2 comments

> But it could be argued that given an opportunity, an engineer should have the skills and ability to build these systems.

Having the skills and ability to build these systems doesn't mean you can regurgitate all the algorithms required to build them on a whiteboard in 30-60 minutes. It means you have to ability to search for algorithms and apply them to your problem at hand over the course of several days, weeks, or even months.

Do you really think anyone building these systems spent only 60 minutes both deciding upon, and coding ANY of their algorithms and called it a day because they obviously chose the best one?

Isn't it what computer science is all about. You won't necessarily see the exact problem. But having the ability to reduce the problem at hand to an efficient algorithm that you might have "regurgitated".
Bullshit.

It has been my personal experience, and the experience of many people I’ve spoken with, that this kind of trivia is learned in order to get a job and then forgotten immediately afterwards because it’s useless.

Anecdotal example: a former colleague is an incredibly talented systems programmer and has had to study leetcode garbage for the last few months in order to feel qualified to interview for a position with a team that he had previously been on at an older employer.

As another commenter said elsewhere, these types of questions are used because they’re legal proxies for “IQ tests”, and because they filter for people who are willing to sacrifice much of their personal time for the sake of the company.

I don't think the knowledge is useless as much as it's properly abstracted away into core libraries for 99.999% of the real-world use-cases.

Maybe the questions started as "IQ tests" (or a proxy for "fresh out of a Stanford-like CS Program?") but my impression is that now it's a mild (or not) proxy for hazing.

"I suffered through this crap and by God you are going to suffer through it to, or you can't join my little club, and by the way I just make a hundred dollars telling you that."

Edit: clarity & speling

I think knowledge of the concepts is very useful, but precise recall of the algorithmic implementations is absolutely useless.

It’s very different for someone to have a solid grasp of, say, cache-aware programming techniques, algorithms and data structures that are necessary for low-latency architectural work, etc.

...but I’m aware of very few positions (if any???) that require the ability to arbitrarily synthesize that information on the spot.

EDIT: Originally meant to lead with the fact that I broadly agree with what you’re saying, I just wanted to clarify my original objection.

In this regard. I like the google approach for not asking questions that are publicly available on internet.

These are basic computer science fundamentals and critical thinking capabilities that essential for performing the job atleast for software development roles.