Live data from Hacker News

Brute-forcing my algorithmic ignorance

blog.dominikrudnik.pl

51–59 of 59 posts

Re: Brute-forcing my algorithmic ignorance

#51

Note: I haven't done any tech interview in 6 years. I'm kind of surprised they still do leetcode-style questions on remote interviews these days. I thought those types of interviews would be 100% gamed by now.

They don't, at least in the SRE space. I have been interviewing for 6 months without a single coding challenge or LeetCode-type challenge. Though I would passively avoid companies that offer them, as in I would avoid them if offered, I have yet to be offered the chance to avoid it in an interview.

What have you encountered instead?

Re: Brute-forcing my algorithmic ignorance

#52

Earlier quoted context omitted.

Still plenty of signal. You'd be surprised at how badly most people do at very simple questions.

I am quite passionate about algos, do lots of katas on codewars for fun, and done plenty of leetcodes. Then I had a technical interview when I was asked to implement a simple algo for the tris game (aka tic tac toe) and my mind was completely blurry. I was tired, i'm in eu and this was for a San Francisco startup interviewing me at their lunch time, very late in Italy. And generally don't like to be interviewed/taske…

> I forget how to type braces or back ticks.

US layout and compose key on AltGr. You'll never look back.

Re: Brute-forcing my algorithmic ignorance

#53

Your "no compiler" rule on day 3 taught you more than the LLM did. The LLM made concepts click. But the binary search vanishing under interview stress proves that understanding something and being able to produce it under pressure are totally different skills. Nobody talks about this enough in the "just use ChatGPT to learn" discourse.

There is this famous quote from Bentley on asking programmers to write binary search

>I’ve assigned this problem [binary search] in courses at Bell Labs and IBM. Professional programmers had a couple of hours to convert the above description into a program in the language of their choice; a high-level pseudocode was fine. At the end of the specified time, almost all the programmers reported that they had correct code for the task. We would then take thirty minutes to examine their code, which the programmers did with test cases. In several classes and with over a hundred programmers, the results varied little: ninety percent of the programmers found bugs in their programs (and I wasn’t always convinced of the correctness of the code in which no bugs were found).

>I was amazed: given ample time, only about ten percent of professional programmers were able to get this small program right. But they aren’t the only ones to find this task difficult: in the history in Section 6.2.1 of his Sorting and Searching, Knuth points out that while the first binary search was published in 1946, the first published binary search without bugs did not appear until 1962.

The invariants are "tricky", not necessarily hard but also not trivial to where you can convert your intuitive understanding back into code "with your eyes closed". Especially since most implementations you write will only be "subtly flawed" rather than outright broken. Randomizing an array is also one of the algorithms in this class, conceptually easy but most implementations will be "almost right", not actually generating all permutations.

Re: Brute-forcing my algorithmic ignorance

#54

Note: I haven't done any tech interview in 6 years. I'm kind of surprised they still do leetcode-style questions on remote interviews these days. I thought those types of interviews would be 100% gamed by now.

They've been gamed in the "study for the test" sense for years—a sort of human over-fitting—but managers did not mind. I've heard some insist that this is a feature, not a bug. (Depending on levels of cynicism, it's either testing for diligent workers who put effort into preparation, or selecting out non-conformists who aren't willing to put up with management bullshit.)

LLMs make it easier to cheat and give managers a push to develop new, AI-aware, assessment methods, but don't really change the underlying organizational dynamics that led to these tests in the first place.

Re: Brute-forcing my algorithmic ignorance

#56

Earlier quoted context omitted.

Still plenty of signal. You'd be surprised at how badly most people do at very simple questions.

I am quite passionate about algos, do lots of katas on codewars for fun, and done plenty of leetcodes. Then I had a technical interview when I was asked to implement a simple algo for the tris game (aka tic tac toe) and my mind was completely blurry. I was tired, i'm in eu and this was for a San Francisco startup interviewing me at their lunch time, very late in Italy. And generally don't like to be interviewed/taske…

>Once I asked a professor why did he grade me 27/30 even though I spent one hour answering with details on everything, including the hardest questions.

>"Because you never appear convinced when you answer".

Sounds like pure anti-INTP discrimination ;)

Re: Brute-forcing my algorithmic ignorance

#57

Earlier quoted context omitted.

They don't, at least in the SRE space. I have been interviewing for 6 months without a single coding challenge or LeetCode-type challenge. Though I would passively avoid companies that offer them, as in I would avoid them if offered, I have yet to be offered the chance to avoid it in an interview.

What have you encountered instead?

Q+a interview talking about past experience on the resume and quiz format of various technologies. The quiz format gets on my nerves, but not as much as leetcode and live coding rounds.

Re: Brute-forcing my algorithmic ignorance

#58

> Find Minimum in Rotated Sorted Array I've seen that problem in an interview before, and I thought the solution I hit upon was pretty fun (if dumb). class Solution: def findMin(self, nums: List[int]) -> int: class RotatedList(): def __init__(self, rotation): self.rotation = rotation def __getitem__(self, index): return nums[(index + self.rotation) % len(nums)] class RotatedListIsSorted(): def __getitem__(self, index…

I only did these types of interviews when applying for internships in uni, but I really don't think you would get away with using an inbuilt binary search (via bisect left) in a question that is basically "binary search with a quirk".

Re: Brute-forcing my algorithmic ignorance

#59

> Find Minimum in Rotated Sorted Array I've seen that problem in an interview before, and I thought the solution I hit upon was pretty fun (if dumb). class Solution: def findMin(self, nums: List[int]) -> int: class RotatedList(): def __init__(self, rotation): self.rotation = rotation def __getitem__(self, index): return nums[(index + self.rotation) % len(nums)] class RotatedListIsSorted(): def __getitem__(self, index…

I only did these types of interviews when applying for internships in uni, but I really don't think you would get away with using an inbuilt binary search (via bisect left) in a question that is basically "binary search with a quirk".

It's certainly not an "elitist initiation ordeal" to ask a potential crewmate to sketch a library function they've selected, what abstraction or ideas it implicitly contains, and what bearing those have on their overall approach. GP's use of `bisect_left` is instructive here:

  In [2]: Solution().findMin([1, 0, 1, 1])
  Out[2]: 4
However, requesting a bug-free implementation of `bsearch()` (to say nothing of the actual problem being solved) during a timed, in-person interview is less a structured rehearsal of an individual's unique capacities, and more of a jumping-in ritual proving only a willingness to die for their cybergang.
Post reply on HN