You never know when you need a sacrificial lamb, eh.
Yep. Before the IPO the task came up to increase our development team size to 200 people, cause “people would rather invest money in 200 developers than in 30”. We would hire anybody who was able to say anything sapient about the task “insert an element into a double-linked list” (and were amazed when 80% of applicants were unable to pass this simple barrier).
On the other hand - when layoffs came they were rather reasonable and the worst people were let go. (None of them were among the people who passed the above-mentioned barrier though).
I’ve been programming professionally for 20+ years and I had to look this data structure up. Granted, once I reviewed it, node insertion is trivial, but I hope you gave applicants that opportunity. Or perhaps your line of work commonly deals with stuff like this.
I’ve spent my career in web and mobile product development, usually with a business focus of some kind, and it still surprises me sometimes how little I’ve used certain topics from college, like mathematics. I think most of the math I’ve used I likely learned by grade 6.
More importantly, having the general problem solving skillset to reason through this problem in 20-30 minutes seems super important to many aspects of front-end development...
At most places I've interviewed, each interview question is a 25 minute - 30 minute session. Since white-boarding the solution takes perhaps 5-10 minutes max, in this case, there's plenty of budget to refresh definitions and provide a clean interface from which the actual task begins.
Critiquing "insert into DLL" as an unreasonable question does a disservice to the "less leetcode" position :(
Exactly! We were not looking for A+ CS students, we were looking for people we can work with.
My high school did not offer CS except as an independent study (you could technically do anything as an independent study, so "offer" is shorthand for "convince a teacher to let you sit in their classroom during planning period and find a way to sit for the AP CS exam").
There have existed high school CS courses since the 80s. (The AP CS exam was introduced in 1984.)
I took AP Computer Science in High School in 2012. The whole curriculum was based on this “Grid World” Java program where a Grasshopper extends JumpingBug extends Bug or something like that, no not as an analogy for OO, the classes were literally named like this. And, the AP test asked specific questions about Grid World's implementation, so you had to learn about it even if you understood the underlying computer science concepts.
I wish we learned about linked lists. I didn’t get that until college.
Linked lists were much more fundamental (and covered much earlier) when they were using C++.
Wasn’t too much learning about double linked lists going on in that class.
We couldn’t - there was no Google at the time of our IPO. (More importantly there was no mobile Internet). But the reaction “please clarify what are you talking about” is absolutely sapient, so you would have passed. But note that this:
> node insertion is trivial
- is much less sapient. In my alma mater “trivial” meant that you are able without a pause to write down a proof - without a single error. And this particular task is not designed to be rushed through, there are a couple of potholes. Anyway, hire / no hire was not based upon the absolute correctness of the code. It was mainly based upon the applicant’s reaction to me pointing some “obvious” error in their code. We were not looking for A+ students, we were looking for the people we can work with.
Layoffs are financial and political decisions. Sometimes people layoff idiots when given the chance, other times they layoff the smartest people to protect their friends. I consulted at a bank where a SVP would reorganize non-core business units into his org specifically to meet his reduction target while minimizing business impact. Those people were cannon fodder from day 1.
Hiring is the same way. If you only hire pristine resumes without gaps, you’re selecting for survivors - not the same as performers. It’s more of a statement about the hirer-er than hire-ee.