How to: Prepare for a Google Engineering Interview

How to: Prepare for a Google Engineering Interview


hi welcome to life Google’s video about how to prepare for technical interview i’m sean technology and engineering recruiter I’m Allison I’m a software engineer i’m jess i’m also a software engineer although this video is going to focus on the technical interview definitely check out our partner video on how to prepare for the business internview as well. it absolutely applies here without further ado let’s get into some tips first things first make sure you’re ready to prove what’s on your resume we’re going to want some critical pieces from you including the bread and butter of software engineering data structures well you could argue with me on that data structures and algorithms so we want things like hash tables stacks arrays as well as algorithm space and time complexity we also want things like be prepared to code on a whiteboard this is very different from coding on a computer so it’s highly recommended to go out find a whiteboard or a chalkboard and try coding something up it’s a little different and finally we want to make sure that your brush up on system design as well as object oriented programming in general you want to show your problem-solving skills to the question you are asked if it’s a coding question providing efficient code a short time frame is key if its design question work with your interviewer to create a high level system and if applicable delving into deeper issues if it’s a general analysis question sure you understand all aspects of the problem and if necessary offer multiple solutions discussing the relative merits in the end the interview want to know if they’d be comfortable working with you on specifically you should focus your preparation in the following areas coding so you’re gonna spend the majority of your time actually writing code in the interviews we do ask that you are pretty familiar with at least one coding language and typically will interview you in C++ or Java you may use Python RC in different projects here you will be expected to know api’s object-oriented design and programming how to test your code and you want to come up with corner cases and edge cases for yours and other people’s another big thing is algorithms i mentioned this in the beginning and it’s coming up again because surprised it’s important alright so you also want to know how complex your algorithm is remember time and space complexity as well as how to improve or change it if you give me an O of n algorithm and then you give me an O ven factorial or over n squared and you tell me it’s better this is going to be a little awkward so another thing if you get a chance to study up on other algorithms like Dykstra’s or a star it’ll probably help you to something incredibly important candidates with three or more years of industry and experience should have hands-on testing experience if you have less than three years at within the industry we’re just going to test you for your testing aptitude you can expect questions such as how would you unit tops the code you write what interesting inputs are test cases can you think of and we may also ask you to design and to end integration loaded performance or even security tests for real-world systems such as Gmail for example data structures so you should study up on as many data structures and algorithms is humanly possible you should know some of the most famous classes of NP complete problems like the travelling salesman in the nap sock you should definitely be able to recognize some of these very famous questions when asked in a slightly different way also try and find out what np-complete actually means you should absolutely no trees some basic reconstruction traversal and manipulation algorithms hash tables stocks arrays linked lists so also math some of our interviewers will ask basic discrete math problems don’t worry they will be very relevant counting problems probability things that happen in everyday life so before you come and spend some time refreshing your memory on these things or learning the essentials of probability theory and combinatorial 6u should be pretty familiar with n choose K problems and like recursion many coding problems involved thinking recursively and maybe coding a recursive solution prepared for recursion which can sometimes be tricky if not approach properly practice some problems which can be solved iteratively the more elegant solution is recursion operating systems you should understand processes threads as well as concurrency issues and everything related to that such as semaphores new Texas locks things like that you should also understand resource allocation so what resources a process or thread might need another thing context switching just brush up a little bit on that understand that it’s initiated in the and the operating system and underlying hardware and then one last thing maybe you might want to know a little bit about how scheduling works system design Kevin’s have been in the industry for more than five years should have experience with system design these questions are used to see your ability to combine knowledge theory and judgment towards solving a real world problem sample topics include feature sets interfaces class hierarchies distributed systems and designing system under certain constraints you should also have an understanding of how the internet actually works and be familiar with the various pieces routers domain name servers load balancers & firewalls also understand the basics of houses now that we’ve talked a little bit about some of the knowledge areas that we expect you to know we want to offer you three final tips to really be successful in your first explain and clarify it’s extremely important to talk for your thought process during the interview as much better to say what you’re thinking to stay silent even if you’re discarding ideas along the way your interviewer wants to know your thought process which ideas you’re not going to use and which I do you finally settle on clarifying the question is also important that most of the questions that you are intentionally big because the interviewer wants to know what questions you would ask if you’re in a real-world solutions that have a question an example of a question you can ask for clarifying is are there any time or space complexity requirements secondly we want you to keep thinking we know this is really strenuous and arguing is really long but the first solution that you come up with might not be the most elegant so we encourage you to keep thinking through the problems think about your current solution and how you could potentially improve it finally practice make sure that you practice physically writing your code you won’t have an editor no color code for comments no auto crack be sure to test your code be sure that’s easily readable without bugs fine problems right code solvent there’s no better way of practicing than actually riding out code that’s it for today and so much for joining us

Leave a Reply

Your email address will not be published. Required fields are marked *