How to PASS a Coding Interview - Tips, Advice & Resources

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everybody and welcome back so in this video I'm gonna be giving you my tips tricks and advice on how to pass the coding interview with any large tech company now there's a lot more that goes into this than people think they think you just need to be an algorithm master and do ten thousand lead code questions and you'll be good to go I'm here to tell you that is incorrect and before I get too far into all the content in this video I'm just gonna give you a little bit about my background and kind of qualifications to even be telling you this so for those of you that don't know me my name is Tim I am a computer science major in my second year I am 19 years old and up until three months ago I had never done a coding interview before in my life and I had never even prepared to do when are done any of those kind of algorithm questions that you know you see so commonly in the coding interview so I went from pretty much three months ago I would say in November to having absolutely no experience not being prepared whatsoever to actually doing for technical interviews passing all of them and getting an offer from two different companies so I did three technical interviews at Microsoft received an offer and then did one technical interview at Shopify and received an offer from them and those are the only technical interviews I've done I pass both of them and that was on my first try so hopefully you guys are ready to listen to some of my advice again I'm pretty young most people that make these videos are typically two or three years older than me so hopefully this should help you guys if you were kind of my age and a little bit less experienced as well now a very quick disclaimer here just so that I'm being transparent with all of you guys I did accept the offer at Microsoft I'm going to be a software engineering intern this summer in Redmond Washington and I'm very excited about that I'm be working on the Python core extension team now the offer at Shopify was also great I would have definitely loved working there but between the two I decided to pick Microsoft now another quick disclaimer because I know some of you are screaming at me in the comments right now when I just told you I didn't have much experience I do have a lot of experience program and compared to probably your typical or average student but again that's not going to take away from the advice I'm going to be giving you guys it's just a disclaimer so you know that you know maybe three months of prep that I did you might need to extend that a little bit as I have done a lot of programming in the past as some of you may not have done before okay so what I'm gonna do now is walk you through my favorite two platforms to use to prepare and show you exactly the types of questions the amount of questions I did to prepare and the way in which you guys should approach these questions so one thing to just do a ton of different questions right I mean you hear this all the time people that do like 1200 leaked code questions and they go in and they still fail so that's why it's very important that you don't just do a ton of practice which is important but you do the practice correctly so please pay attention throughout this when I'm kind of talking about the way you should do these questions because I don't want you to just waste your time answering coding questions that aren't really doing anything for you so the first platform that I always recommend is I'll go expert and I'll be completely transparent here if you guys decide to purchase this platform which is a premium paid platform it is $85 and you can get a discount using the code tech with Tim for 15% off now I understand that immediately makes some of you guys question my judgment if I'm being sincere on this platform you don't fair enough but I'm gonna walk you through my pitch on why I think this is the best platform for a beginner to get started on I don't think this is necessarily the best platform to stick to for the entire coding interview prep but I think that if you're someone who's getting started or who doesn't have a strong foundation or is maybe a little bit more worried about their interviews then this is a better one to be on just because of the solutions that come with it so for those of you that don't know this platform has 85 coding questions as a data structures crash course on it for people that you know aren't familiar with data structures yet or haven't taken the course or need a refresher and also has coding interview tips now they recently released this system expert thing which I believe is a new product I'm pretty sure this is 50% off for the initial launch so if you guys want to get that I'd figured I'd let you know my discount code does work on that as well for an initial an additional 15% off off the 50% discount I think but anyways so let's go down to the questions now and talk about what I did on this platform so as this comes with 85 coding questions we can see that they're organized into easy medium hard very hard and extremely hard now if you're gonna use this platform or you know if you're not anyways what I would really recommend is dialing in on the medium and hard questions or like medium to hard medium hard like in that range is kind of your bread and butter because these are most likely the questions you're gonna get asked and these cover if you can answer these medium and hard questions a really wide variety of the way to prepare these easy questions are almost like ok if you're just getting started like you're a real beginner these are where you're going to start to kind of get the idea of okay this is how I approach a question this is a basic algorithm but once you get past that you need to go very quickly into the mediums ace all the mediums like I've pretty much done here and then start working your way on the hearts you'll notice that the hard questions even the very hard questions are not necessarily that much more difficult they're just different algorithms combined together they're almost a combination of different medium questions so you really it's important that you can nail the medium questions because if you can't get medium you're not really gonna be able to get hardened you're not gonna get anything more difficult than that and chances are if you nail all these medium questions even if you can ask the more difficult question in the interview it will likely use principles that you've already practiced from the medium questions so to give you an example of how you should actually practice these specific questions you can group these by not only category but by difficulty as well and what I typically recommend is making sure you're doing questions kind of in all of the different categories almost in a loop like I like to do array binary binary dynamic I go through all of them so that that way I'm not just doing like 10 array questions in a row and just memorizing the solutions to array questions I want to every time I see a question have to think and not have the solution memorized you you don't want to have that you want to have an idea of how to approach the question but you almost just want to have to think so that you can practice doing that because that's what you're gonna have to do in the interview so if I pick a question say here like a medium question from arrays all right you can see this is my answer for this medium question the reason I really like this platform is because they have hints that you can look at here they also have the fact that I can just run my code and see the output in the test cases here I can see their solution I can move the windows around I can change all these different things I can set a timer which I recommend you do every single time you practice programming questions set the timer before it it's so easy on this platform to do it as well you can see the test cases and then the best part is you can look at a video explanation of the question and how to get the solution now sometimes there's multiple solutions if there is this video will cover all of them you can go to a conceptual overview or a code walkthrough and for people that are beginners this is extremely helpful and it's what really built me in a strong foundation and allowed me to move over to leak code which I'm going to talk about now so obviously here 85 questions I would not really say is enough prepped for the interview I would say that this is really good in terms of building your foundation building up a wide kind of range of different questions and understanding how to approach the problems but you really need to dial in on some more practice and this is where I suggest LICO so once you have the Foundation's done from a platform say like algo expert or something else if you guys have any other ideas for them leave them down below I would buy leak code premium which I'm pretty sure is $35 a month or something like that pick the company that you were interviewing at on this premium top here and do every single question from the module that is suggested so here you can see that this tells me all of the questions that are frequently asked at Microsoft guess where I got a job right and look how many questions I did from this I did 59% of them since I was interviewing it for the intern level I knew that the questions like backtracking sorting and searching dynamic programming and design wouldn't be asked as frequently as say arrays linked lists and trees and graphs so what I did was I did almost all of the arrays and strings almost all the linked lists and almost all of the trees and graphs now there's some pretty stupid questions sometimes I don't bother doing but the idea is do as many as possible from the quote from the company that you're gonna work at and this is where you know you build the strong foundation on a platform like algo expert and then you dial in on the specific company you're gonna be interviewing at with a company like Lika or yeah I guess company likely code or website like Lika and this is really good the premium just makes it so much easier to do things I'll show you that although I did that module I also answered was this 56 questions on leaked code so in combination with that little module I showed you the 56 questions here and all the questions from algo expert I ended up doing about a hundred and fifty coding questions before we're at where most of them were medium or hard questions so on leak code you can see that I had 40 medium although I will say the medium questions on leak code are definitely harder than the medium questions on algo expert in general and really medium on leak code is kind of where you should focus the easier like okay if you're warming up like you're not that great at it yet okay start with those but really quickly try to get into the mediums and if you want to challenge you the hearts but these are pretty time-consuming so I usually don't even bother doing them so that is my kind of guide for getting prepped and ready to go you really should be feeling extremely confident before you step into the interview because you've done enough prep right and that's the idea is that the way you're gonna perform well is if you're confident in your ability and you know that no matter what coding question you get you're gonna be able to nail it and the only way to be in that situation is to already be really good in data structures and algorithms and foundational you know algorithmic thinking and problem-solving or to do a ton of practice and that's where I recommend start here get the foundations and then move to lead code and this is where you'll move a lot faster and you'll just do a lot more questions if you have the the premium version then you can sort by company right like I can go down here and I can sort by Microsoft and I can really save myself a lot of time by answering questions specifically from the company I'm gonna be interviewing at okay so now that you have the knowledge necessary to answer these questions you've done your algorithm practice you're confident with your data structures and you know that given one of these problems you will be able to come up with a solution it's time to go through the procedure of how you're gonna solve this problem in person and on a whiteboard now this is gonna be completely different than likely how you've practiced and you really need to listen to me on kind of the stages of what you need to do because if you don't follow them it's gonna be very unlikely that you actually end up getting an offer or getting hired now the stages and I'm about to give you in kind of the process and almost algorithm for solving the algorithm or coming up with the algorithm is what I've employed and used while I was practicing and exactly how I got the offers by literally sticking you know point to point on what I'm about to tell you so the first thing you're gonna want to do when you're giving a programming problem is analyze the crap out of it now I really mean that you should almost be spending the same amount of time analyzing the problem as you should writing or at least that's what I did in all of my interviews what you want to do when you're given the problem is you want to make it as clear as possible what you're trying to solve and make sure that you understand the problem that you and the interview are on the same page a lot of the times you'll get asked questions that intentionally have ambiguous things have little tricks in them or things that should be simplified or clarified before moving forward well your interviewer wants to see you do is clarify those things and ask those questions for example you know a good question you should always really be asking is can I expect integer values can I expect valid input is the output need to be in this format are we assuming this are we assuming that you want to reduce any ambiguity that you can because that's a huge thing in programming in general and if you can show that skill to your interviewer not only is it gonna you know kind of convey a good message to them but it's gonna make it a lot easier for you to solve the problem right if you have some very complicated input and you need to validate that before it comes in if you can just ask the question can I assume that this is valid and they say yes there you go you've just saved yourself probably fired ten minutes of validating the input so that's something very important ask lots of questions make sure you know what you're solving and make sure you understand the problem to a tee and your interviewer knows that you understand it the way that I like to do this is just literally running back the problem kind of discussing each point in the problem to my interview are asking some questions making sure that they know that I'm taking a good look at the problem before I dive in after you've done this and you're clear that you understand what you're solving you've done the analysis and you know that they know that you know what you were doing then you can start talking about how you're gonna solve the problem so here is where you're gonna want to start probably diagramming and just drawing things out on the whiteboard to be honest it doesn't really matter how meaningful the sketches are that you're doing so long as you can kind of convey that you know you're doing a little bit of a plan before you just get into the code even if you know how to solve the problem exactly already and you can just hard code and run through the solution do it not do that you have to discuss exactly what you're gonna do the approach you're gonna take and you want to consider different approaches as well what I will typically do is I will start with kind of a naive approach even if I know a better approach walk through the naive approach or the one that is like you know the worst space-time complexity and then from there slowly build my way up until the better approach even if I know the problem and I haven't memorized that I can literally just write it on the board I will make sure that they know I know that both approaches and I'm considering the space-time complexity between them this is the biggest thing probably the massive thing that's gonna make a huge difference because you're showing that you can look at different alternatives pick which one is the best and then implement that and slowly build your way up to a better solution you don't want the interviewer to know that you've just memorize the problem you want them to think that you're figuring out figuring it out live in front of them if you can do that then that's gonna make you just a lot better in the process because not only are they gonna be like wow this person has like a really good thought process they're thinking things through they're gonna be like and they're pretty smart too they went from the naive solution to this better solution just by doing an analysis and drawing things out now at this point in time you might already be you know 10 50 minutes deep and you haven't written any code and that's totally fine and that's what I did for all my interviews as soon as you come up with the kind of strategy that you want to employ check it with your interviewer you don't need to be like unconfident be like this is OK can I do this just be like this is the approach I'm gonna go with do you think this sounds okay or would you prefer if I went with a different approach is there something you can think that's maybe missing here you just want to be confident you're working as a team and that's what you want to show is that you can work with other engineers as well you can take their feedback and you can bring that into the question and a lot of the times if you've gotten this far already and you've done a good job that you might even tell you hey this approach is good can you do it this way I think it'll be easier for you which is what happened to me at actually two of my technical interviews where I had a very kind of complicated way of solving the problem that was going to work they gave me a hint gave me an easier way boom I solved in the next 10 minutes and they're very happy with the solution because I use their feedback so once you've done that now it's time to actually code and this should be the easiest part the hardest part for me really is just analyzing the problem picking out the edge cases describing reducing ambiguity talking about the implementation and drawing the diagrams once you've done that it's just about translating this to code and this comes down to practice if you program a lot if you're a good programmer this should be easy this should be the easiest part try to make everything as readable as possible you know you just want to employ good standards and you want to show that you're thinking about reusability of this code especially working at large tech companies where you know we need to scale these algorithms to millions of people well you've got to write code that someone else can read and especially your interviewer and you want to make sure in this a very important part when you're coding that's although I know you could go fast and speed through it you take your time and really talk about every step you're doing and why you're deciding to do something there's a lot of times where it's difficult to read people's code if you don't know their thought process so give the interviewer your thought process you should not be silently sitting there writing you should really be discussing why you're doing something and you know maybe after you write three four lines take a step back draw the box be okay this does this this does this I've decided to use this because this is faster this method I know probably could be done in another way but from now we'll leave it like that and then continue to move forward I never will really go more than thirty seconds without saying something because you don't want to lose your interviewer and you want them to know exactly what's happening and always kind of be working with you and giving you the benefit of the doubt and this is why it's very important that you analyze the problem beforehand so your interviewer knows exactly what you're about to code and they're in the mindset like okay so this is the approach we're taking let's see how well he could do and if they make if you make a small mistake in your implementation what happened to me and my interviews was they would actually point it out and say hey I think you might have missed like a line there and I'm like oh my gosh thank you you know I just didn't see it and they totally got that they're human too they make mistakes they know that you've decide talked about the implementation you've been doing a good job coding you made one mistake they have no issue telling you that and helping you move forward they want you to succeed and that's what you want to do here you want to win your interview over at the beginning you want them to think you're confident and smart and be giving you the benefit of the doubt because if you don't do that and you just go and code thousands of lines on the whiteboard you don't say anything and you make a mistake how are they gonna give you the benefit of the doubt and be like okay you know maybe he just made a mistake no they're gonna think that you don't know how to program they're gonna think you didn't know the implementation you were going with and you're just trying to run something through your head and memorize the solution and write it down so that's kind of my algorithm for coming up with your algorithm to a programming problem again analyze the problem reduce ambiguity come up with the implementation discuss different alternatives of the implementation of why you're gonna go a certain route really make sure your interviewers with you the entire time you can even ask them like hey does that make sense you understand what I'm doing as if you're teaching them what you're about to write on the board and that's the way that I take it I am almost teaching them exactly what I'm about to show them and making sure they're on the same track as me and that's only gonna give you an advantage when you code make sure that you're describing everything that you're doing good variable names clean code try not to go into crazy indentation levels it just makes it very difficult to read and that's all you really need to do if you can do all of that then you will pass your coding interview that is the secret to it now obviously there's lots of different components as well you need to answer behavioural questions you need to be just a good personality in general but if you can go in right at the beginning and you can just have a smile on your face you can have some good answers to the questions and you can be ready and prepared for your coding aspect when you start coding you're already gonna be winning in the interview which is what you want because if you're already winning you're gonna get hints you're gonna get help you're gonna want your interviewers gonna want you to succeed and that's just gonna give you a massive benefit now this leads me into practice which is obviously is extremely important all of the skills that I've just mentioned may seem overwhelming and it may seem like it's difficult to be able to master that especially if you're on a tight deadline or a tight schedule but you need to be practicing doing that while you're solving programming problems for me what I would typically do because I'm not just gonna talk for like four hours alone by myself is I would do like three or four programming problems and then the fifth one I would do on a whiteboard that I actually have over here in my room that I bought specifically to practice programming problems and I would treat it as if it was an actual interview and I would genuinely look to my wall and ask it questions like I would do stuff like that that is the kind of practice I employed to make sure that when I got there I've been practicing in an environment as close as humanly possible to what I'm actually gonna be performing in you don't want to leave this up to chance you don't want to leave this up to okay you know I'll get it in moments I'll kill it no you want to go there as prepared as you possibly can be so that when you leave even if you don't get the job there's nothing more you could have done and that's the thing that I said after my interview I was like regardless if I get the offer or not I did as good of a job as I could do I did as much prep as was reasonable in the time before and there's no reason that I should be upset that I didn't get the job because well there was nothing more I could have done and those are my tips to you practice like you play right you're gonna be playing and you're gonna actually be doing the thing in a real interview practice like you would do that you don't need to do it every day but make sure that you are okay with vocalizing your solution which is a lot more difficult than it looks and I will tell you and you mean you guys can see it for yourself go watch my first youtube video from 2014 or whatever it was and you'll see that I was not very good at communicating I was not very good at vocalizing my school and talking about what I was coding now after 370 videos on my youtube channel I do it like it's nothing right and that's what you guys need to get to for these programming interviews I had a massive advantage because as much as I'd only been prepping programming problems for two three months I had been preparing and practicing my communication skills for the past three years so that's what you need to do that's how you get the job there's no easy shortcut there's no go leap Cove by this website do that it's a lot of hard work and I mean it pays off look at the compensation from some of these companies look at the career development there's a reason why the acceptance rate at Google is 0.2% from people that apply it's just because it actually is hard and it does require the work and not that many people are willing to put it in so that has been this video I hope you guys enjoyed I hope these tips helped you I understand this was long but I'm gonna give you guys as much information and value as I can if you do appreciate these kind of videos please do leave a like and leave a comment down below it really does help out the channel and of course subscribe for more content like
Info
Channel: Tech With Tim
Views: 60,822
Rating: undefined out of 5
Keywords: tech with tim, how to pass coding interview, how to pass coding test, coding interview, coding interview preparation, pass technical interview, prepare for coding interview, cracking coding interview, coding interview tips, coding interview tips and tricks
Id: ckW4cUqui_w
Channel Id: undefined
Length: 20min 57sec (1257 seconds)
Published: Mon Feb 24 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.