Learn Algorithms for Interviews, Forget Them for Work
Posted by fagnerbrack@reddit | programming | View on Reddit | 16 comments
Posted by fagnerbrack@reddit | programming | View on Reddit | 16 comments
stayoungodancing@reddit
I’ve seen a chain of problems appear in these leetcode style interviews.
The first is incorrect deductive reasoning that assumes a candidate knows a paradigm just because they solved a question that implicitly involves it. ”Since this question required a sliding window, then they must know what that data structure is!” This is not immediately true.
The second, is that based on that deductive reasoning, that a candidate will know how to apply that paradigm to a real-world application. Again, it falters if the first assumption is false.
Third, is not applying the questions to real-world problems. Algorithms and data structured have been solved 100 times over at this point. A candidate should have an idea of them, or be willing to gain that knowledge, but knowing an algorithm does not equate to an understanding of which one solves a problem. That’s not the fault of the candidate, but that of the interviewer to determine how to measure that.
I’ve been in the gauntlet where a lot of these questions have absolutely nothing to do with the business domain. Ok, I couldn’t determine a valid sudoku algorithm in 20 minutes, so therefore I can’t fix your web portal that deals with personal insurance???
***
On another note, there is an explicit assumption that since X minutes are allotted for an interview, then that candidate is evenly getting every minute to complete a multistep problem. This has never been the case, as pleasantries, IDE setup, and other formalities eat into that time slot often. It is never a fair trial for any one candidate when you can’t guarantee a common baseline.
fagnerbrack@reddit (OP)
Also, how many years did people take to find the solution to those algorithms? If you haven't seen that specific solution before then you will have no idea. It becomes a memorisation contest instead of a real life work assessment
stayoungodancing@reddit
Yes, I agree. Many of them are mathematical proofs which required whole lengths of careers to develop. Getting an hour to solve them without help means there is an expectation of perfection that just is impossible to exist. Unfortunately, rote memorization is the simplest counter in the context of these styles of interviews, until it’s finally shown that they’re not correlating with the requirements of most software jobs today. I’d rather learn these algorithms to have new ways of approaching problem solving, but not as a bag of tricks required to get through a screening process.
With that being said, real-work style questions have felt much more approachable, and open a two-way conversation rather than being a one-sided inquisition.
steveparker88@reddit
OH GOOD A GIGANTIC POP SCREEN WITHIN MICROSECONDSOF VISITING THAT SITE
fagnerbrack@reddit (OP)
I hate that too, I spoke to the CEO of medium and he said to "fuck off" in a politically correct form. The only reason I didn't change CMS is due to the chance I'll change and they'll put a popup again after a while.
Hosting my own is just not feasible due to the time it takes to setup, maintain and the hosting costs
greenergarlic@reddit
Algos are just a useful tool to see if candidates can reason about a complex problem. They aren’t perfect, but no question in a 45 minute interview is.
Personally, I’m interested in candidates’ ability to write complex loops, which is 50% of the job IME. There are plenty of toy algo problems that require that, even if looks nothing like production code.
TrespassersWilliam@reddit
I'd say a better approach is to compile a list of complex problems that your team has actually faced and solved, maybe even one they are currently facing. My perception is that candidates just memorize the solutions to commonly used interview questions which tells you very little about their ability to reason.
Full-Spectral@reddit
That's exactly the problem with the leetcode approach to interviews. They tell you nothing about the person's ability to deliver quality code. I imagine that a lot of people like me, who have been writing serious code for 30+ years, have learned and forgotten most that stuff and just got tired of wasting time on it since it doesn't come up in day to day work. And, when it does, one of the skills of a good developer is knowing when you need something better and how to go find it. My brain is already stuffed to overflowing with the details of the complex systems I'm working on.
Fenix42@reddit
It can be on the same site. My first startup was a web cam software company in 2000. We had lots of technical stuff for people to build their own sites.
lelanthran@reddit
The value of learning algorithms is not "you will use this", it's "you will understand this".
The deliverable from "learn these algorithms" is not a bunch of useful algorithms, it's more a person with understanding
IOW, the output is not the algorithm, it's the person.
TownMaximum9414@reddit
Until a bunch of algorithms becomes a target in the early stages of an interviews. They you start actually do filter out the people with understating that happen to forget the algorithms.
Any metric that becomes a target becomes a useless metric yadda yadda.
lelanthran@reddit
The output of practicing algorithms is a person who understands algorithms at a very deep level. It is unlikely that that person will be filtered out if they have mastered various algorithms, even if they cannot code it bug-free on the first go in the boiler room of an interview.
TownMaximum9414@reddit
¯\_(ツ)_/¯ look in principle I agree with you. Moreover this provides a half decent way to look for people that are able to honestly communicate what they do and don't know when doing the implementation.
But all of this is assuming the steel man case that the interviewee is being evaluated holistically through out this whole process.
Rather than whats been my experience. Where these things are used a lazy filter in the early interview stages. Where you don't have the luxury of someone going "Yeaaaa so you're solution isn't perfect but you pass the overall vibe check".
EntroperZero@reddit
Just like there is no development methodology that can fix bad management, there is no interview process that can fix bad judgement.
Paddy3118@reddit
But others think that although particular algorithms that you have learned may not come up, it is the ability to learn them that they want; as well as giving them a shared vocabulary used in explaining problems in general.
But then again, employers should interview for journeymen if that is the job, pay and future. If you need a craftsman...
percuciente_@reddit
Which basically means: be intentional on your studies.