How to Approach Coding Interview Questions

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
in this video I'm going to show you exactly how to Ace the algorithm technical software engineering interview it's exactly how I passed my Microsoft software engineering interview after only coding for 12 months algorithm interviews are the most common type of technical software engineering interview especially at top tech companies so in this video the first thing I'm going to cover is how to improve your coding algorithm abilities you need to have your fundamental algorithm coding abilities to a sufficient level before you move on to the more advanced steps that I'll discuss and two we'll go into the four step algorithm interview framework so then once you have your algorithm fundamentals you know how to apply that in an interview using the four-step framework then I'm going to show you how to actually practice that which is the third thing that we're going to talk about because knowledge does not equal skills so I'm going to show you how to actually develop those skills for the first one when it comes to improving your algorithm coding abilities and evaluating your skills first things first you got to know basic programming if you don't know how to code already this is not the video for that there's a lot of free online resources to teach you how to code from scratch there's plenty of YouTube videos there's free code Camp there's code academy my program if you want to join my program you book a call if you don't know basic coding you got to get that down first Loops conditionals you need to know how to code basic logic to solve basic problems an objective Benchmark for this is if you can solve six kwu coding challenges on COD wars.com then I'll say that your coding skills are at a sufficient level you should know the basic data structures and algorithms that are taught in most computer science curriculums in college so this is stuff like recursion linked list stxs and cues hash tables trees graphs searching algorithms sorting algorithms like binary search binary heaps as well you should know how to Traverse through a tree and a graph using bread for search and depth for search so I'm sure there's some YouTube videos that cover data structures and algorithms I'm sure there's some udem me courses and my program tells you what to focus on as well once you got that down you want to start solving coding challenges to actually develop your problem solving abilities and being able to solve more advanced coding challenges for example applying a binary search to various different problems you're going to have to adapt the algorithm to the specific situation so you're going to have to develop that pattern recognition muscle also you need to learn like more obscure interview patterns such as like a sliding window two-pointer technique and so these are more like Niche algorithms that are likely to come up in an interview but they might not be taught in a traditional computer science curriculum so if you're doing this on your own you can solve the questions from algo expert n code blind 75 gring the coding interview from educative.io or you can join my program there's a lot of options for you I'm sure there's free YouTube videos on that as well now getting good enough at solving algorithms it's not about solving a list of questions like for example blind 75 that might be enough for some people it might not be enough for other people it depends on how deeply you really understood the concepts and how well you're able to apply in novel situations to solve different algorithms so an objective way to actually evaluate if you're actually good at coding algorithms now is to do Le code competitions into compare your performance to other Le code competitors what I did before getting into Microsoft is I got to about the top 10% of Le code competitors and you want to get to about I would say top 10% as well if you're trying to go into a top tech company if you're just trying to get into any company I would recommend getting to at least like top 50% or so and it's also going to compare you objectively compared to other people solving the same algorithms because it tests like how fast you were able to solve it and how many you were able to solve and by Nature interviews are competitive so this objective ranking against other competitors is a great way to evaluate your algorithm coding skill set so instead of just solving a list of problems and thinking that your coding algorithm abilities are at a sufficient level you should instead put your skills to the test another Benchmark is being able to solve most leode medium problems within around 30 to 45 minutes I also have a Google sheet that has all the problems from leode ranked from easiest to hardest because some leode medium problems are much harder than others some easy problems are harder than medium some medium problems are harder than some other hard problems if you look in the description of this YouTube video I'll have a link to my Instagram and just DM me asking me for the sheet and I'll send it to you this will be really helpful okay so once you got your basic coding skills down you know data structures and algorithms and you've put your skills to the test and you've seen that you're performing at the top percentile now your algorithm abilities are at a sufficient level there are more nuances involved in performing optimally in the algorithm interview so let's get into the four-step interview framework for algorithm coding interviews so the framework works like this you want to First clarify second brainstorm third test and Define and fourth code it so the first thing you want to do is you want to clarify the question to the interviewer they're going to ask you to code some kind of algorithm that takes in some specific input and then the algorithm transforms that input into some specified output so you want want to make sure that you understand the specifications of exactly like what the data types of the inputs and the outputs are and also the scope of the input any edge cases for example like if it's an array of items is it possible that the array is empty is it possible there's other elements in it you want to make sure that you understand what the inputs are going to look like and the variety of those inputs and then make sure that you understand that in all those scenarios you understand exactly what the output should be in each of those scenarios once you've defined that with the interviewer then perfect now you've clarified the algorithm that you need a code and ready to dive in so you want to think out loud talk about high level how you're going to solve the problem you don't actually need to code yet and you don't need to get into the needy greedy details of the actual logical steps but just high level how are you going to approach this problem as you're talking out loud glean on any hints that they might give so that way you're confident that you're coding the right algorithm cuz a common problem is is that people will go straight into the code only until the end they find that that algorithm doesn't work and this is where you can kind of make sure that your algorithm that you're brainstorming meets the time and space complexity requirements and if that all looks good then cool we can go into the third step of this framework what you're going to do is you're going to check to see if the algorithm actually makes sense so you can start with like a simple input as simple as possible walk through the algorithm step by step to make sure that you can correctly transform the input into the output using the algorithm that you brainstormed and this is where you can actually more clearly Define the algorithm more concisely get into the nitty-gritty details do The Logical steps here you can just use pseudo code though you don't need to type out the code you should be able to just write the logical steps of how the algorithm should work without diving into the details of the code if this is hard for you this is just something that you're going to have to practice also keep in mind that there's a time limit in this interview as well so don't waste too much time here but do enough to make sure that your algorithm is accurate so now once you have that pseudo code and you tested that pseudo code on various inputs and making sure it gave the correct output now it's time to just code it because coding was one of the first things you've learned and so you should be pretty good at coding now the harder part at this point is coming up with the correct algorithm converting that pseudo code that represents that algorithm into code should be easy for you at this point as you're coding you want to make sure your code's clean descriptive possibly break up your functions into smaller helper functions that's going to show the interviewer that your experience you know how to write clean code and this just gives you more points and maximizes your probability for passing the interview following this process is going to ensure that you're efficient with your time and that you can show the interviewer your problem solving abilities in a way that impresses them and this is also going to make sure that you're not trying to define the algorithm at the same time that you're coding this is what a lot of people do when they're trying to code algorithms that's less efficient in fact you look at the software development life cycle first you need to design and analyze and plan before you start coding you're doing a mini version of the software development life cycle and then if you have time it might be a good idea to write some tests for your algorithm just to make sure that it's working correctly or ask the interviewer if there's any other steps after that and if not ask them about the company connect with them that's what I'd recommend there's a website called pr.com where you can do mock interviews with others people that are practicing as well basically it's 30 minutes long for each person they take turns in a 60-minute time period And so 30 30 minutes you'll interview them the other 30 minutes they'll interview you and this is where you can practice applying that framework and solving algorithms I did about 50 pramp interviews and this prepared me very well for the interview and so I recommend that you do this as well I do recommend that your algorithm coding abilities are at a sufficient level before you do that though but once they're there do the pramp interviews apply the framework and this is going to set you up for success for the algorithm technical interview maybe want to see examples of the four-step framework being applied in an interview I'll have some links in the description of this YouTube video you can click that if you want to watch it if you're trying to become a software engineer and you want to do this as fast as possible without doing it on your own you want oneon-one guidance from someone like me that can show you exactly what to focus on make sure that every hour that you spend studying it's moving the needle as much as possible towards actually Landing a job then you can click the link in the description to book a call with me this is where we can learn if my program's a good fit for you or not and if it's something that would be helpful and we can go from there best of luck let me know if you have any questions hope that helps
Info
Channel: Alex Ficachi
Views: 383
Rating: undefined out of 5
Keywords:
Id: X32cw-zOX4o
Channel Id: undefined
Length: 8min 29sec (509 seconds)
Published: Wed Jul 03 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.