Wednesday, July 8, 2020
Now Offering Interview Coaching for Technical Interviews
Now Offering Interview Coaching for Technical Interviews Now Offering Interview Coaching for Technical Interviews Have an upcoming software engineering, developer, or QA testing job interview? Seattle Interview Coach now offers interview coaching for technical interviews. Read on for more details on Jon, the newest member of our interview coaching team. Jon focuses on technical job interviews. For a list of tough programming interview questions, refer to our list of 140 Google interview questions. Iâd like to introduce myself as the newest member of the Seattle Interview Coach team. Iâve been brought on to provide some expert advice to those of you facing the prospect of going through a technical interview. Iâve been in the software field for the last 7 years and am currently an engineering manager at Amazon.com. More importantly, however, throughout my career Iâve been continuously interested in technical interviews and have had a wide variety of experience sitting on both sides of the table. I currently conduct about 100 technical interviews a year and know what interviewers are really looking for when conducting a screening. The majority of candidates I interview end up not receiving job offers because they mess up some technical portion of the interview. In the majority of these cases, however, it has nothing to do with the intelligence or ability of the candidates, but rather their lack of appropriate preparation for a technical interview. Invariably, people forget details about basic data structures or forget how to tackle problem solving questions â" this leads to a downward spiral during the interview. For example, image how youâd deal with this question: Given an input stream of integers of an unknown length (the stream, not the length of the integers), derive an algorithm that can return one of the numbers already seen in the stream at random and with a normal distribution when a client asks for it â" you only have 1MB of memory to work with. So, for example, if your algorithm was running along and has processed 100 numbers already and a client asks for a random number, your algorithm should return one of the 100 numbers that youâve already processed with equal 1/100 probability. This question usually proves to be a stumper, but if proper problem solving techniques are used it becomes a lot more manageable â" certainly not easy, but manageable. First off, you need to recognize that the 1MB requirement is simply a made up number. For problems like this that have large data sets, itâs tempting to start by looking at the big picture, but thatâs not really the way you want to solve them. I suggest looking at the problem from the absolute simplest case and building from there. If youâve processed one integer and then are asked to return a number at random, what do you need to do? Well, thatâs simple, you need to return the one number that youâve seen with 100% probability. What if youâve seen two numbers? Then youâll return the first number with 50% probability or the second with 50% probability. At 3? 33.3â¦% for each of the numbers youâve seen. Now a pattern is emerging. For each number you process, you need to be ready to return one of them with a probability of 1/n. Great, now weâre getting somewhere, but how do we implement this? Youâre dealing with a, possibly, infinite stream of numbers so it doesnât matter if you have 1MB of space or 1TB or space, you canât ârememberâ all of the numbers youâve seen. So, since you have limited space letâs see if we can solve the problem by only remembering one number at a time, the one that youâd return if you were asked to at any given moment. For each number that you read from the stream youâll need to roll an N sided die to decide whether that becomes your new return number or not, if it is then you can forget whatever the old return number was and store the new one in its place. For the first number you see youâll have a 1/1 probability of making that your return number. When you see the second you have a ½ chance of replacing the first number with the second number as your return number, with the third itâs a 1/3 chance that youâll rep lace the return number. Iâll leave it as an exercise to the reader to write out the inductive proof to show that this actually works, but thatâs the answer. Note that this isnât a particularly good interview question as it requires some specific probability knowledge to solve. But Iâve seen it asked before, and it helps illustrate that having a good approach to problem solving can mean the difference between floundering on a question and at least making reasonable progress. If you have a technical interview coming up and want to be better prepared, contact us. Youll benefit from a mock technical interview with honest and frank feedback. Youll also get a study plan and give pointers on how to solve common types of technical interview questions.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.