Algorithms In Interviews SUCK | Prime Reacts

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
so before we start this article I do have one question I want to see everybody vote yes or no on this I'll go interview questions yes or no I'll give somebody a maybe so in general it looks like most people don't think we should be doing algorithms in interviews now I probably have a slightly different take on this one than y'all so let's let's see what they have to say okay let's let Mike cook modern software development is a spectrum ranging from Deep algorithmic work to system design the majority of software development happens between that range most developers work on application development which is closer to system design than its low level algorithm okay fair most software development interviews are for jobs somewhere between application development and system design yet many interviewers do technical interview rounds for algorithmic challenges and system design nothing in between the Assumption here is that if you can solve algorithms and do system design you have the skills to develop applications that assumption is flawed a broad range of skills is needed to develop applications you will not get them by just practicing a hundred hours to recognize specific algorithm problem patterns you won't get you won't get them by staring at overly simplified systems design of Netflix Uber or Twitter who takes the time to say threads who even wants to be on threads ew threads is just a bunch of pictures of dudes and boats that's pretty much that's like my experience on threads I don't think I want to be on threads I really don't need that Netflix mentioned let's go by the way I work at Netflix by the way if you're wondering uh your application development skills by well developing applications but many technical interviewers do not assess those skills I don't know something about system design really kind of helps you know how much experience a person has like if I ask you to build like out in boxes and arrows and describe how you'd build a good CLI application I think that you can really tell how much CLI application development experience somebody has by how much they know about how you put together those pieces I don't know to me that seems like a pretty pretty obvious signal um you really gonna hit me with that paywall right now you're gonna hit me with the paywall in front of everybody oh but it's one of those scrolling paywalls classic scrolling paywalls okay a typical set of interview includes two algorithmic algorithm rounds a system Design Round 66 of technical interview is dedicated to something you will likely code less than one percent during your entire career I know defeated that blocker I've been doing software development for more than two decades the only time I studied algorithms is uh for fun difficult challenges can be fun in your free time with no pressure when no pressure exists for for an interview oh my goodness okay can I just continue reading oh there was a button there the whole time there was a button the whole time didn't even see it they appear in the corner of my actual work I use libraries that is Battle tested without specializing in that kind of work there is no way I could improve upon them uh very few people learn algorithmic development on the job it requires hours of personal time to practice enough of them to be useful in an interview they are not relevant for most developers okay so I agree with this take right now I agree with his take I too use libraries that are battle tested such as left pad ah you're a connoisseur of fine libraries I see do you use is even or is odd this is a real question this is a friendship test question if I don't see the right one you're out say it say it if they appear in the course of my let's say actual work I use oh yeah blah blah blah blah blah algorithm interviews get false signals okay so I I do want to let this guy cook we're going to let him cook before I give my opinion on these things at least that's what I said so I'm gonna give my opinion on things right now so absolutely I do agree with this sort of I think it completely depends on what you're building I think if you build more CI CI stuff you really just deal with zero algorithms I think if you build uh like if you're just making react you're not building anything if you're building just like crud endpoints you're probably not doing any algorithms at that point but if you're building say CLI tools if you're building any anything in the tools World which is a lot of stuff you're dealing with that a significantly higher amount of time and it is completely like it is a good signal to know people know some of the requirements because there is a lot of useful stuff in there and so just something to think about that you know when when people make these really broad Strokes what I see is that they they don't necessarily know like they haven't done all the things and so they don't know algorithm interviews that get false signals algorithmic challenges and interviews signal only one thing you practice algorithmic challenges enough to recognize the pattern and solve them it says actually one more thing than this so This Guy's already incorrect right here which is it says one more thing you are wise enough and capable enough of learning things that are difficult such that you can pass some arbitrary bar that has been set in our industry I think that that is a very important signal to understand because if you don't if you can't do those things it means you are just intentionally saying no to the system you're either too dumb or you are uh you skill issue right you either have skill issue or you are just completely lacking in wisdom and think that it won't happen to you right like I don't want to be on that side of the fence when somebody when somebody gives me one of these problems I want to show that I've put in the time I've learned the secret handshake I've high-fived it right that I I've just done the right thing either you don't know that it exists which one interview will teach you very quickly that they ask you hard questions or B you're intentionally saying you don't need to do them okay if you don't need to do them why would I want to hire someone that wants to kick against the system real talk why would I want to hire someone like that you say hey I'm not gonna I refuse to do it and I think that if you ask me those questions I won't hire you okay so you you know we're going to ask you something I've given you the literal key to the door and you don't want to open the door okay that's fine find somewhere else that has a different door go for it it's I'm not upset about it just go somewhere else uh but they do uh but they do not signal General development skills Fair very fair they say well sort of there I also have a hard time believing this as well I think that in the rare case of someone being Ultra amazing that means they've spent only their time doing that but in the general case if people can do this I think that they have enough programming sauce to be able to do most things they signal pattern recognition and preparation more than they signal problem solving that's literally problem solving what that is the definition of problem solving what's your problem I want to get hired how do you get hired learning how to do this well that doesn't signal problem solving I solved the problem of getting hired I have a sub level of wisdom by focusing on one's ability to solve algorithms under extreme pressure I don't think it's extreme pressure I mean it's just like you're on a whiteboard having to draw some stuff and nowadays it's mostly in code signal with an editor that kind of looks like something you're used to I mean is it really extreme I mean is it extreme pressure I mean is it extreme it seems seems a little hyperbolic here you ignore other factors necessary for application development the biggest being the candidate can turn business requirements into solution that solves a business need yes that's called a different interview so you set aside one hour to really test how somebody would kind of develop something you know you ask them the questions you you you have a problem you want them to solve it you don't make some shitty way of making them kind of forcefully asking you out questions you just start talking about what you want to build you hear them jam with you you help guide them and you can kind of test that they understand how to build software from a requirement standpoint like that's not that hard of an interview in fact that's a very fun interview to perform and it's a very fun interview uh being a part of and so yeah I think it's kind of nutty to say that you can either have either or how about both besides AIS can already do that better than humans yes I mean sort of I I always I give this example way too much because because people just say just say these things and it's just so wrong sometimes uh I'm here TS tests there you go uh give me the quick so let's see hold on uh let's go like this function quick sort uh numbers uh number this thing and number that thing all right co-pilot go okay yay I give this example a lot because what they just did here quick sort is an In-Place sorting algorithm what they just provided me is a massive copying algorithm this ain't it this is not even quick sort by definition yeah it looks like quicksort it does all the things quicksort does but it did it completely incorrect okay this is slow sort this is stupid sort this is like merge sort you've pretty much written me merge sort but almost Dumber in some sense okay so do they do it better than humans I don't know okay I think that that's kind of an arbitrary point the best case uh you find a candidate that uh productively develops applications in the normal case you find candidates that studied algorithms well enough to pass the interview in the worst case you alienate many candidates that do not perform well with gotcha type algorithm questions I do not think it's a gotcha long as you don't do something stupid right there are people that do gotcha questions but most algorithm questions aren't gotchas they're just not they're just think through the problem and show me you can think through a problem and solve it uh such a candidate let's see so let's see questions such as candidates with neurodiversions that's everybody's favorite word and it's a complete bucket it's a bucket word to make an excuse oh you don't think I got some level of neurodivergence okay you don't think that I I am not socially awkward you don't think that by thriving on the internet slash programming that I am not diverging somewhere in the brain well guess what I probably got some weird brain worms going on upstairs and guess what I can still do it okay it's just ridiculous people that say this they always throw this out there like this is just like anyone can say this word because you can't argue with someone I'm neurodivergent Oh no you're not prepare to meet my lawyers like what are you gonna do you can't challenge someone on saying such a phrase like this is a catch-all bucket to avoid questions is ridiculous it is ridiculous it is ridiculous how many people in here call them type one in the chat if you think you're neurodivergent there's a lot of people that think they're neurodivergent our field is probably primarily comprised of people that are just a little wonky okay I mean let's just face it every single field is filled with people that are a little wonky is there so I mean most of us probably have ADHD maybe 80d if that is even a real thing or is it just an observation of different type of human behaviors I don't even know right oh I've definitely got me that word dyslexia soup going on you know I I just don't like the hard part about all these phrases is that you you everything is on a spectrum that's the problem everything is a little spread now I've met people that are truly suffering from real like like deep Aspergers all the way to like full-blown autism that's like very like you can see that they're they're gonna struggle in life and those people I genuinely feel bad for and they really they really deserve some extra special things and those are things we should take care of and really treat well okay and we should really provide them a place to flourish and we should try to make that possible and it's not going to always be possible for everybody right it's very very difficult but most people I meet that say they're that way they're not that way they're just socially awkward they just spent too much time playing World of Warcraft and not enough time talking to a human and you've just lost the skill that's all there is to it you just haven't practiced social skills in your whole life and now it's difficult of course it is of course it's difficult social skills are just like any other skill you never practice typing you're not gonna be good at typing you're gonna feel awkward trying to type is this a personal attack no it's not a personal attack well maybe it's a personal attack I feel called out I know there are real people here with real problems and hey if you're here with a real problem I'm most certainly not talking about you you you deserve real real considerations and I would have no problem giving real considerations you know what I mean I am full support of that it makes me feel like I want to cry think about those people because they you know like I can't imagine all of us come into life with some level of something that's fighting against us right I I got no dad right I didn't I didn't get those things I had I had a different set of things I had to fight against plus the whole dyslexia part really made things kind of hard growing up always been terrible at English English is the only class I failed at uh it was very tricky but that's a different set of problems right I feel bad anyways all Alternatives considered so what should you do instead of algorithms and interviews create tests more like what you'd expect a developer to do regularly which are skills are essential uh for work yeah but then you could argue that do people like again these are just also not good either for example focused on getting signals for interpreting business needs functional requirements and non-functional requirements this is good to measure for breakdown complex projects into manageable tasks instead this is good to test for application design patterns may be good to test for depending right uh but you also have to know if you have to play around with some arrays is this person going to totally code base or are they gonna be good right like you're kind of dropping this whole programming is a skill thing from there evaluate is worth automating again this all should be done in a simple interview uh reviewing code effectively and understanding the benefits of this process okay that's a cool code and I think that that's always a cool one I've had those as part of my technical interview process which is tell us what this code is doing comparing trade-offs between threading and async for Server construction I mean that's kind of funny that you say threading versus async because I mean really you you technically did and didn't say the same thing right I think you're having a language issue here uh this sounds like too much JavaScript brain uh identifying opportunities for performance optimization and code uh debugging resolving issues uh in a given piece of code uh refactoring code for improved readability and maintainability integrating apis effectively in software applications like a lot of these would be extremely hard to do in an interview now they're definitely possible but there's definitely some difficulty here there's some good stuff like I'm not saying you shouldn't do these things I think these are great this is why I think a lot of people try to do take homes they try to do take homes so they can give the person an opportunity to show what they do show their application development chops you know what I mean I do agree with that reading code is a different skill than writing code and and I agree a lot of people think take homes they're they're a waste of time I hate take homes like some people hate take homes some people love take homes I think it's largely where you're at in life right now if Google said come be a l69 with us right now the primogen but before you do that do this take home I'd say I'm not gonna do a take home yo dog my life is too full I got like four kids and a beautiful wife I'm writing courses for front and Masters I'm streaming and I'm doing a full-time job yeah that ain't happening I'm not doing a take home sorry it's just not something I'm doing if you want this I'll give you one interview that's what you got you know just because I'm in a different stage of life now if you would have asked me 10 years ago which Netflix did they said here's a take home you want to guess what I did oh take them okay yeah okay okay we're gone okay we're going we're going as fast I can't like I tried to build the greatest take-home ever I was in a completely different stage of life it's just different right unsure of where to start with such test coding challenges is an excellent resource for challenges to fit these requirements should I learn algorithms study algorithms will make you a better developer I remember kind of seems like maybe then if studying algorithms make you a better developer maybe just maybe this entire article has been debunked what the what what why would you do that dude I feel like I'm being trolled I'm just saying that if you think studying algorithms will make you a better developer if only there's like a simple way you could test if they'd know algorithms and have put in the time right just maybe if there was like some sort of test maybe a whiteboard or a computer could be included ambiguous gang rise up definitely a masturbator here dude this is ridiculous all right let's keep on going by the way I hate this take I hate this take at the bottom of this take okay the reality is is that yes studying algorithms will make you a better developer testing for algorithms gives us one of many signals to know that you are a good developer I still want to see some sort of algorithmic type kind of challenge problem for you to do so that you can prove to me that you got the chops to do it now I don't need I'm not going to ask you to do like find uh find a uh a cycle in a singly linked list like right like to me that's uninteresting I'd much much rather try to find something that's a bit more complicated like here's a good one here's a great one that I think is a great one right uh say you have a schema that has a property name uh name and this thing has like say a type that's a string and maybe we give them a types as array or um or object or or string number blah blah blah blah and then you have the value and this thing has uh depending on the type it will give you like or it could have a type right it could have uh you know a Fields Fields could exist if it's an object if it's an object it has a fields which is like a recursive property right I'm just kind of spitballing here so this isn't a fully fleshed out one but you get the idea and then I also have a value right that is an object that is a bunch of objects that have property names and it is either going to be the the value itself which like if it's a number will be 69 or it's going to be something that's like an array where it has all the values in it and I need you to convert that into the object for me if it's of type object right like try to build something like schema schema building great exercise right sounds like an O camel yeah I mean I've had to do this at my job schema Builders I had an entire team not figure out how to do that right this is like basic encoding decoding right doing some sort of encode decode like this just shows you can work with things right you understand data structures another good one is just Implement merge deep or deep merge depending on whether you put the Deep before or after the merge right like I think this is a great problem to watch somebody work through I want to see you do that I want to see you do that do it do it show me you understand programming right that shows me you know how to do pretty much everything right uh did you upgrade your camera I am looking fine yeah yeah yeah deep merch deeper merge well you had a team that couldn't figure that out no I had a team that gave me that as a piece of data I literally had a schema somewhere and then I had a compacted data format in the database and nobody nobody knew where the decoding was I asked several teams and people are like uh we don't know how it works I'm like dude this is your team this is your database this is your UI how do you display this in objects and they're like I nobody I had like 15 people in a slack thread all saying I don't know so I built the gosh darn dang thing myself and I just said f you guys I got the schema and I got the object Fu I'm building it myself so I built it myself it took like a day I got it all right built a couple unit tests call today walk ago you know just F y'all I can do this I just didn't want to do it I just wanted the npmi some stupid schema I've never heard of version latest duplication sometimes you duplicate right sometimes you Bill O'Reilly and say we're doing it live right all right anyways let's go on if you're applying to jobs that have algorithm interviews you have two options refuse to do the algorithm interviews I think that honestly I think this makes you look childish when you do this real talk I think this makes you look childish in the sense that if someone sends me a take home I will just say I don't have the time for this I'm sorry like I cannot spend a full day doing a take-home plus a full day doing an interview I can provide you guys one day right that's like a time constraint that's not a real thing I'm not refusing to do something I'm just saying I can't spend 16 hours interviewing for a job it's just not it's just not feasible whereas just saying I won't do it at all like I'll give them an option how about this one I'll do the I'll do the I will do the take home but I'm only gonna do four hours of interviews like I needed to fit into one day that's that right but just refusing to do it out of the interview site seems a little a little wild right right it just seems a little wild uh learn algorithms and practice them in an interview like environment this is great advice you should always do that you should always do that because it like regardless of you even if you refuse let's just say you refuse number one you should still do this the reason why you should do this is that communicating out loud your ideas especially to somebody else is a skill it is a skill you should practice because at some point whether at a job interview or in front of your co-workers you're gonna have to go do something right and you're gonna have to do it in front of them and so guess what this is a great way to practice right oh let's see only one of those will give you a chance to that particular job if you want that do job too yes conclusion if you're giving an interview consider how to evaluate technical ability if uh the job you are interviewing for actually involves working on deep algorithms absolutely go ahead and test that if your job is application development or uh or more abstract cut it out completely disagree with the statement and conclusion and his odd concession that studying algorithms will make a better developer I don't see how that's not a thing I mean my personal favorite is if the person has some sort of public you know example of the work they've done I ask them about that and I want to know about that and then I want to hear them go deep on what they built and why they built it and make them go as deep as possible I think that that's really good and even if it's something as stupid as configuring Vim right I want to know what you've done how have you read it how did you get a part of it how many files is it broken up is it well organized is it not organized is it one big ass file like just tell me your process tell me how you went deep I want to see you've gone deep at least once if you've gone deep once it means you can go deep again people that have never gone deep on something literally have never done anything you know like worthwhile you know what I mean antagonize uh the inter viewer too many people I'm not I think you might have this incorrect too many people antagonize the interviewee or the interview were right don't be a script Kitty don't be a script Kitty I'm on the hiring team I do interviews regularly for Netflix I'm good at interviews I like doing interviews I like the shop talk interviews but I also like the technical interviews I like them both because I see them as equally valid signals I've had people talk the talk and not able to walk the walk I like to see people can walk the walk and I like to see people be able to talk the talk okay because here's the deal when it comes down to coding I want to see that you know the language that you're used to I give people several options for the languages they want oh you want to do this in C plus plus rust go or JavaScript pick one and run with it right and I just want to see them do something I want to see that they know the language because when they're inside there and they can't tell you what packages to use they can't tell you where to do it they're like oh you just look it up what I see is someone who's never even taken the chance to become an expert at what they do right they're just literally script kitties that look things up okay just a feeling just a strong feeling yes that was a slack message shut up okay shut up the name yes I have Windows because that's what I stream from and record my videos on because it's significantly better and it works also with the hardware I've purchased which does not work on Linux and has no driver support and no I'm not going to write a driver just to use audio okay I already can't make audio work with the drivers provided let alone attempting to write my own drivers for audio for equipment that just won't work like hell I'm gonna do that you are crazy that is just crazy straight crazy all the way through again
Info
Channel: ThePrimeTime
Views: 90,831
Rating: undefined out of 5
Keywords: programming, computer, software, software engineer, software engineering, program, development, developing, developer, developers, web design, web developer, web development, programmer humor, humor, memes, software memes, engineer, engineering, Regex, regexs, regexes, netflix, vscode, vscode engineer, vscode plugins, Lenovo, customer service
Id: Jy-Bn-nUo_w
Channel Id: undefined
Length: 24min 15sec (1455 seconds)
Published: Thu Sep 07 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.