What no one tells you about coding interviews (why leetcode doesn't work)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
and welcome back with your host 2x Google X Facebook tech lead and today we're going to be talking about what nobody tells you about the software engineering interviews and this is coming from me someone who has conducted over 100 interviews over at Google so I see a lot of misinformation out there and people making so many mistakes some people think that all you need is leaked code and you just do a whole bunch of leak code questions and I'll get you going well that's not quite true I have a colleague actually who did like 400 lead code questions he was very good at these white boarding questions but his communication skills were total garbage and I knew from the outset he would not land any job offers given his current attitude which was very arrogant his communication style and you know sure enough you were now interviewed it didn't land a single offer out there even though I'm sure he aced all of those leaked code questions so this is the first thing to know a lot of junior engineers think that that white boarding coding practice is all that they need to ace the interviews just do 400 Leto's questions and you're good if you know breadth-first search that first search recursion your data structures hash tables stacks and queues then they'll get you going and that's just not how it works because usually within the first one to two minutes of midian candidate I already know whether I would be giving the candidate a recommendation to move forward or a rejection because the fact is the interview process is very humid it is not objective and you can either have me on your site or against you I could be giving you all sorts of hints giving the benefit of the doubt giving you the easier questions and just rooting for you through the whole process or I could be against you trying to make you fail give you very difficult questions not giving you a single hint making the question intentionally as ambiguous as possible so in fact here's how it works you know how they say within the first 5 10 seconds of meeting someone you already know whether you like somebody or not well that does not change for interviews as well so you need to make yourself presentable and I already have an idea in my head after I talk to you for say 10 15 minutes and hear about your backstory I already know with say 90% certainty whether I'm going to move you for it or not and while I have not even asked you your little leet code coding question the decisions already pretty much been made now at this point I just want to get rid of you I have like 30 more minutes to burn so what I really do is I just try and preoccupy you with a coding question I just throw something your way and the real purpose of this is I can just go and check my phone and read read it or check my email because I'm pretty much done talking with you and I just don't know how to burn the rest of the time meanwhile the candidate thinks that at this point the interview has actually begun this is when the real work starts they ace the coding question and still they get completely rejected because of entirely other reasons life's tough isn't it but you need to know that when people are evaluating you they're evaluating your ability to become a senior engineer what does it take to become a senior engineer well coding ability alone gets you to say l4 which is not senior that's like standard software engineer in order to become a senior engineer or at least to show that potential you need to show leadership qualities ability to tackle complexity and bagheera the teamwork skills collaboration skills communication skills friendliness charm enthusiasm passion for learning and in fact passion for learning is a big one actually because when you think about it when I give you a coding question I'm not interested in hearing you regurgitate or memorize solution actually what I want to know is your process for reaching a solution because oftentimes in actual software engineering there's no predefined solution you have to work towards that and that processing reaching that solution often requires a lot of analysis balancing trade-offs discussing alternatives teamwork collaboration accepting feedback and I want to see that process occur as you're coming up with the solution so if I give you a question I want to know how you reach the answer not if you can reach the answer if you reach the answer you just answer a single question yes or no yes you've got the answer if you tell me how you reached it the way you trade off time and space how you present alternative solutions thoughtfully discuss the algorithm and come up with an actual solution that entire process is actually what is far more interesting and by the way this is what we teach over in our program detect interview procom where we will fast-track you into a top-tier tech company so we've got this whole interview training program with a private Facebook community group students are helping each other out I do bi-weekly live Q&A so answer questions if you're interested check it out a Tech interview procom now speaking of that another ticket there was a posted intergroup where somebody went to an Amazon interview and then the interviewer was late for like 20 minutes they finally show up and then they do the interview with half the time allotted and the person fails because they just don't have enough time to finish the problem and this actually happens and then you know they're trying to work with the recruiter and the recruiter is not really responding so I've seen mishaps like this where through NOFA of the candidate their chances of passing are just dramatically reduced for example there's no whiteboard markers and then people spend like 10 minutes looking for good markers the wrong resume could be printed or perhaps somebody just forgot to print it all together and then people are going through the interview just winging it without really knowing the candidates background or school or education and then they're wasting a bunch of time going over just these basic details like which school did you go to where did you work previously so for me if I go into an interview I will actually bring my own backpack my own markers my own eraser backup resumes that aren't the most up-to-date such that everything goes as smoothly as possible and we waste as little time as we can on all the other random stuff that could get into the way because at the end of the day you are going to be the one being held accountable the interviewers they don't care nobody cares about your performance as much as you do now if you're an American you may not be aware but American schools are actually terrible and if you were to take a look at the international candidates coming out of say India China their whiteboard coding performance is stellar like they are really good and they can blow out so many other people so a lot of the international candidates they're just willing to work harder and longer to attain that American dream they will do a thousand Li to code questions for example and yet as an interviewer I come across these people and many still do not pass for other reasons besides just coding ability perhaps one of the top reasons is ambiguity so if all you know is test taking ability and you can just answer a whole bunch of questions about data structures and algorithms and yet you don't really know how to apply them given a ambiguous question where I don't even give you the method signature I don't tell you what the inputs and outputs are what the data format is going to look like and I've heard this from colleagues interviewers will sometimes intentionally give you a very vague ambiguous question just to see how you can tackle that just to try to throw you off like that so the ability to tackle ambiguity is actually one of the performance actually that you are being graded on another one is time efficiency and it's not even that it is actually about practicality so I remember over our Facebook there's this question about quickselect and you can approach this problem in the number of ways you could do brute force you go to create a heap or you can even implement the partitioning algorithm now the problem is that this partitioning algorithm it is the most optimal format but it is quite difficult to write it takes way too much time and actually what will happen is if you try to solve it in this most optimal manner you may not be able to solve it within the time given what interviewers really want is for you to use the less optimal approach and say using a heap and then to just quickly mention like hey yeah there's also this other more optimal algorithm quick select with partitioning but we're not gonna do that that just seems a little bit way too complicated let's just do the simpler heap algorithm that can be written much quicker so it's this ability to recognize practicality and simplicity over say always coming up with the most optimal time efficient algorithm and it could be the simplest algorithm that you can actually write given your deadlines of about 30 minutes now most interviewers will actually know the answers to the questions that they're asking but occasionally there will be interviewers who they just ask some random question each time and they like to work through the problem with the candidate so you can see that it becomes extremely annoying when the candidate begins asking questions like is this the right answer how about this how does this sound is this good what do you think about this do you think that's the most optimal I think that the most optimal is dynamic programming but I'm not sure if I should do that yet should I approach with this should I proceed is this okay and the problem here is this is not how co-workers work together it is more about being collaborative and having that teamwork ability not really asking for permission to move forward with something but to discuss the alternatives and solutions and reach a consensus together and by the way sometimes the interviewer may not even want to collaborate with you they just want to see you approach the problem as if you were on your own that's kind of the approach I would do especially if it seems like the candidate is quite strong and it seems like they can pretty much do it on their own that I rather just see what they can do and the fact sometimes candidates surprise me with a completely new and the interesting answer or a different way of approaching a problem and then they get bonus points for that because they actually surprised me and one-up me in my own head and one more tip here too many people especially junior engineers they think they're being evaluated for their past experiences whereas actually they're being evaluated for their four potential especially to be able to learn and execute on the project so it's not really about coming up with a laundry list of all of your prior accomplishments in some other technology that simply cannot be applied through the current role so it's not about the what it's more about the how because whatever you accomplished was probably not very important anyway but I want to know how you were able to accomplish that were you able to teach yourself new languages bringing your passion explore new technologies work with other people share your teamwork and collaboration skills and just bring that enthusiasm to learn technical curiosity and teamwork skills in order to accomplish a project if you can show that that I think you will be golden before even the whiteboarding portion starts you will have me on your side I would be rooting for you giving you as many hints as I can to make sure that this whole whiteboard encoding question goes as smoothly as possible that's it you still need to be good at that menu Jr attended this will fair at this portion you still have to get that right because if you fail at that then even I can't help you so still make sure that you're doing other preparation and grinding on delete code questions just know that there's much more to it than that so they'll do for me but let me know what some of your uncommon interview tips may be if you like the video give it a like and subscribe and I'll see you next time thanks
Info
Channel: TechLead
Views: 579,877
Rating: 4.5695677 out of 5
Keywords: coding interview, leetcode java solutions, amazon coding interview, google interview, coding interview preparation, programming interview, dynamic programming, data structures, leetcode python, leetcode java, leetcode python solutions, microsoft coding interview, coding interview problems, python tutorial, microsoft interview, engineer, technology, amazon, google, developer, apple, googler, tech, swe, software, facebook, computer science, cs, fb, software engineer, software engineer life
Id: LQFsEwcCO1E
Channel Id: undefined
Length: 10min 1sec (601 seconds)
Published: Thu Dec 26 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.