How to Prepare for a Programming Interview! (Tips & Tricks)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hey what's up everyone happy to be back with another video today we're going to switch things up a little bit from my normal kind of long tutorial where Matt thought we'd sit down and talk about how to be successful in a program in the interview so kind of go through some of the details of how programming interviews work and then some of my tips and tricks to kind of get through that successfully and you know what you should prep and what you should do to be ready for that interview day okay so what are my qualifications to do this video well while I was a student at MIT I had a lot of experience interviewing with all sorts of tech companies from companies like Cisco to to sigma2 Google I kind of went through so many interviews during my time so I had a feel of you know the type of questions they're gonna ask you and like when I was successful in what I wasn't successful and then my second qualification is that in my current role at a company called posh technologies I'm doing a lot of interviews I'm interviewing candidates very often so I've been able to see kind of from the interviewer perspective what makes someone successful and then what kinds of things you should avoid and kind of makes you unsuccessful ultimately okay so with a programming interview I would say that there's a spectrum of types that you could have so on the one hand you have a company maybe sends you this offline coding challenge where they send you a problem you have two to three hours to complete it and then you send back your completed code to the company where you're not actually really directly conversing with anyone there but they will be evaluating your code and then on the other end of the spectrum you have what you think of a more traditional interview where you go on-site you have two to three interviewers you're in front of a white board and you're solving some sort of technical problem so this video will cover kind of all that spectrum we'll start off with some general tips that should help you with any programming interview but then we'll kind of break it down towards the end of the video and give you some specific information on those different types of interviews before we get into the tips let's just get on the same page as far as what you might be asked in a programming interview so here a couple questions on the screen so here's the first one you know how do you find duplicate numbers and in the interview you'd kind of discuss how you'd write an algorithm in to do that same thing for writing the method to compute all permutations of the string all sorts of algorithms questions and then the other kind of type of question and these types broaden as you get into a more specialty so if you're like interviewing for a systems engineering position you might also have a systems design problem if you're interviewing for machine learning role you probably have more specific questions tailored to machine learning but yeah one thing you might commonly be asked is about object-oriented programming so how can you structure your code in a neat and organized manner for a little bit more of a general table of things you want to know here is a helpful little chart I took this from a book that I'm going to mention as a resource called cracking the coding interview so data structures you want to know about arrays hash tables etc you want to know some basic algorithms you don't need to know the specific details of how like all these specific algorithms work what's more important is that you understand the the types of problems you'll be asked and like from the algorithms you've seen you know kind of how do you apply that type of logic to a new problem but you don't have to really know every single like I don't off the top of my head obvious remember like Dijkstra's algorithm are all these specific algorithms but I understand like a search problem I know how to attack those problems that's kind of where you want to be yet and then some concepts you'll want to know big o time and space that's very good to know when you're talking about a question and describing and getting to an answer how fast and how much space it takes object oriented I've kind of mentioned just designing a nice set of classes and methods to kind of organize your code courage of dynamic programming etc so that's kind of some stuff you'll be asked about in the program and ER so now let's get into the tips first tip and this is the most important tip you just kind of practice I mean when it comes down to it not know like magical articles gonna get you perfectly ready no magical videos gonna get you like I can only say so much in a video if you really want to do well in that programing interview you just got to put in the time and work on problems get the hang of these types of questions you'll be asked really be comfortable doing them so a couple resources to like get more prepared doing that first one the one that I use kind of when I was going through interview is cracking the coding interview by Gail Lachman really good at introducing what programming interviews about brings up the types of information you'll need to know for each type of question you might be asked and then there's a bunch of examples of problems you can go through and then detailed solutions in the back of the book so that is a great resource I have a link to that book in my description that you know you might have to pay for there's also a lot of like really good free resources so two that I recommend on that and that you can find a lot of the problems and they have little code editors right there first one is leet code great place has tens of thousands of questions broken down by type of questions so if you're struggling with something specific you can kind of go there you also have a relative difficulty of the questions there so maybe you're working on like object-oriented programming stuff or algorithms questions and you want to start off easy but then you can see with leet code you can kind of go through and work on some harder ones next site I recommend is hacker rank another very similar platform to leet code tons of questions and really honestly it comes down to it go through the questions and just try as many as possible and get the hang of it look at the solutions just do more and more and more and you'll start to get the hang of it in addition to these two sites one thing I do recommend because these sites help you get so far as doing problems but if you're doing this in like a whiteboard scenario it is get more difficult if you have a friend or a co-worker someone that you could actually have gather a couple programming questions and actually like quiz you on the spot more in a traditional like whiteboard format that is also really really helpful to do and what works is if you just have one person that you know that would be interested in doing this you can gather a couple questions you think are good they could gather a couple questions that they think are good and then you kind of interview the other person with your questions and then they interview with their questions and you don't know what's coming so it's a very realistic setting but it's controlled and kind of work through the problems together so that's another recommendation in addition to actually these you know very fine-tuned directed practice problems there's other ways you can practice kind in the background of your daily life I guess first thing I would recommend is read so one thing that I do that helps me kind of stay up-to-date on kind of what's going on in the programming world is I follow all sorts of cool people on Twitter and so I can see immediately when they published a paper or something so like I followed googly eye I follow open AI fall like Facebook research all sorts of those people also some of the people when I read a paper and I see a couple you know of the author's names maybe I follow some of the authors because they're posting cool stuff so that's like one thing is like on your social media platforms follow things that you're interested in that are technical and you'll kind of be able to stay up-to-date on what's going on in your field of interest another good place to do some reading is reddit I've frigging part of my language I really like reddit it's really cool too because you can find you know you can go to our slash Python and find all sorts of cool projects people are doing with Python you know up to dates on the you know Python version and different new libraries that are coming out so it's good way to stay reddit has a lot of good resources I like reddit our Python I like reddit our slash programming also I'm a machine learning guy in my full-time job so I like our slash machine learning as well for some content I mean there's tons and tons of online reading resources I find a lot of good stuff through medium people read all sorts of good articles you know breaking down maybe complex concepts in simple ways to look for media you don't have to be looking for anything in particular but just reading and like always being learning in the background that's something you can do and add you know if you just read one article a day that's all you have to do or maybe even one article a week just like kind of in the background be learning you know that's gonna put you in a good position to have exciting things to talk about in an interview setting that's kind of the end of the end goal by reading and staying up data so you have cool stuff to talk about it and I mean you're learning through doing that that's some way you can pack practice in the back crowd actually another site that I think has some cool stuff is news the why convert the hacker news through Y Combinator that usually has a good amount of new developments in programming they have you know they'll bring up articles on like security breaches and all sorts of cool stuff so yeah read read reads a great way to practice in the background it kind of as a supplement to practice problems you might be doing okay moving into the more I guess interviewed a conversational type stuff when you're actually doing the problem in the interview setting first tip in that regard is to explain yourself if I ask you a question don't just kind of blindly write stuff on the board and think that all understand it take a step back and talk about the problem say hey you know I know that the simplest solution I could do for this problem is a but I think I can optimize it more in like do be like as you work through your problem really be explicit with what you are thinking and that will really help the interviewer can engage where you're at it will clarify things like the communication is an important aspect of a successful interview so that will help in that regard one of the next two videos that I will post will be me walking through one or two interview questions in that video if you're curious I'll post that within the next couple weeks that will kind of show you what I mean when I'm saying explain yourself on the topic of kind of explaining yourself this is kind of a similar but different tip is kind of get out your knowledge shows you you want to be able to demonstrate your knowledge so even though you might not understand how exactly to solve a problem say oh I see how this connects to a different problem right now to solve and maybe say some information about that different problem figure out you can use that to maybe get a little bit farther in the question by linking different types of problems that shows that even if you don't know something exactly you can take what you do know build off of that and then learn something new and solve a new problem so yeah I mean just kind of getting out the information you know is a another thing that will usually help you as long as what you're talking about is relevant you're not just spewing random information talking about things you know usually is a good strategy the next tip is to ask questions as an interviewer myself sometimes I will like purposely leave out a detail because I want to make sure that the interviewee really understands the problem to know which types of questions to kind of ask to clarify on details that maybe are a little bit ambiguous with the way I asked the question so as an example of a question you might ask is look at this graph on the screen and let me say that I am trying to look for the shortest path from A to B but that's kind of all I say I show the graph and you know say A to B 1 good follow-up question might be oh is this graph directed or undirected because that changes the solution of the problem overall asking questions is a good way to show that you really like understand what the questions ask talking about it shows the interviewer that you kind of can think about you're gonna take a step back and like think about the big picture how things fit together and really understand the problem as opposed to just kind of jumping through and solving it so ask questions throughout the interview if you don't understand something ask for clarification don't be afraid to ask questions it's totally fine on the topic of questions also make sure that you have some questions prepared to ask the interviewer at the kind of conclusion of your interview so good questions which show that you are interested in the company and also want to learn more so a good question might be something like oh can you tell me the a little bit more about the day-to-day responsibilities of this role another good question might be something like what what is a you know an exciting challenge that you've been working on recently I'm curious to hear a little bit more about that both of these questions kind of show that you're you're more interested in getting a more full picture of the role and you know all that comes with it and the exciting problems that position works on questions you do not want to ask our stuff like what is my pay gonna be or how many vacation days do I if you get an offer you can then kind of discuss these things but if you are in an technical interview and you ask those types of things it's a pretty big red flag so do not ask about your salary or your vacation days in that technical interview portion very bad idea real quick a specific tip for the coding challenge in your view that I mentioned kind of at the start of the video where they send you a problem and you have two to three hours to complete it but there's no actual back-and-forth conversation I recommend for an interview like that to try to get the solution to the problem done as quickly as possible and then use the remainder of the time cleaning up your code so usually those types of problems will have test cases so you can see if your codes working right there so once you have a working solution go through your code and make it as clean as possible so that includes you know making descriptive variable names making your functions succinct and you know very specific to what they're doing maybe using a class to better struc overall structure your code that's just one tip for that coding challenge and then on the in-person interview side of things one thing I want to discuss real quick is dress what do you want to wear to an in-person interview okay you're starting it off a suit I would say in most cases is a bit too overdressed unless you're interviewing out like a big bank most tech roles you don't really need to wear a suit that would be a little bit too much same thing with just a shirt and tie usually a little bit too much for a tech company you're at a more traditional Bank yeah you can wear a shirt and tie but I would say the apply these two categories are probably a little bit too formal for a programming interview if you're ever unsure though airing on the side of too formal is definitely better than airing on the side of too casual moving forward a dress shirt and pants I would say this is the best thing to wear for an interview it shows that you're kind of in touch with tech in general you're not too overdressed but it also shows at the same time that you are taking this interview seriously dress shirt in nice pants nice shoes that's like my go-to less nice than that but still also rating that nice just right category would be a polo and khakis also a fine thing to wear to an interview moving on a little bit more next one is a t-shirt and you know like skate shoes khakis I would say that's a little bit underdressed you get away with it and you know maybe I would wear this outfit to work but when I'm doing an interview it's I think you want to wear a little bit more than that and then the final one is this yeah that one probably don't don't wear to an interview not the best idea ladies don't worry I did not forget about you if you're a female engineer going to a programming interview here are some recommendations for what you should wear I recruited some help for this question first person that helped me was my friend Kylie from MIT who's a developer at a small start-up in Boston right now so I just threw the question you know what do you wear as a girl to a programming interview and this is what she said so basically you know pretty casual unless you're interviewing for finance but be comfortable it's the gist of her messages I also reached out to my friend Steph who's a developer at Amazon and she kind of had the same similar sentiment you know basically be comfortable these big tech companies aren't looking for super super formal and she even blessed us with a video of what she wore on the day she interviewed at Amazon and ultimately got the job so here's a short clip of that and then outfit is casual too because they have a casual dress code and they said no suits a big thank you to Kylie and stuff for answering my question make sure to go show them some love on their instagrams all right I think that's it for this video hopefully you guys enjoyed this video hopefully you learned something if you had any kind of further questions feel free to leave a comment down below if you did enjoy this video to mean a lot to me if you throw a big thumbs up and also if you haven't already if you subscribe that would be super duper let me think if I have anything else yeah also hit me up on the other social media platforms Instagram Twitter I have a lot of other cool content on both of those platforms so you don't want to miss that that's all we got thanks again for watching guys peace out [Music]
Info
Channel: Keith Galli
Views: 5,607
Rating: 4.9729729 out of 5
Keywords: Keith Galli, programming, programming interview, how to get a job, programming interview tips, how to become software engineer, software engineer, python, what to wear to programming interview, google, facebook, amazon, software, software interview, get a job at top tech company, top tech company, programming interview tricks, how to prepare for a programming interview, coding interview, coding challenge, success, succeed, data science interview, interview, interviews, prep, successful
Id: XNP2mUlGVOk
Channel Id: undefined
Length: 17min 21sec (1041 seconds)
Published: Tue Nov 19 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.