How to Crack Coding Interview

how to crack java coding interview and cracking coding interview permutation and cracking coding interview questions and how to crack google coding interview
OliviaCutts Profile Pic
Published Date:01-08-2017
Your Website URL(Optional)
GAYLE LAAKMANN CRACKING THE CODING INTERVIEW CAREERCUP.COM FOURTH CRACKING THE EDITION Gayle Laakmann founded CareerCup com in 2005 to provide technical interview coaching for software engineers As a Software Engineer at Microsoft, Apple and Google, she interviewed C O D I N G over one hundred and twenty applicants in three countries She holds Bachelor’s and Master’s degrees in Computer Science from the University of Penn- I N T E R V I E W sylvania th Now in the 4 edition, Cracking the Coding Interview gives you the interview prepara- 150 programming interview questions and solutions tion you need to get the top software developer jobs This book provides: Plus: • 150 Programming Interview Questions and Solutions • Five proven approaches to solving tough algorithm questions From binary trees to binary search, this list of 150 questions includes the most • Ten mistakes candidates make and how to avoid them common and most useful questions in data structures, algorithms, and knowledge • Steps to prepare for behavioral and technical questions based questions • Interviewer war stories: a view from the interviewer’s side • Five Proven Approaches to Solving Tough Algorithm Questions Using these fi ve approaches to solving algorithm questions, you can conquer tough interview questions and impress your interviewer • Ten Mistakes Candidates Make And How to Avoid Them Don’t lose your dream job by making these common mistakes Learn what many candidates do wrong, and how to avoid these issues • Steps to Prepare for Behavioral and Technical Questions Stop meandering through an endless set of questions, while missing some of the most important preparation techniques Follow these steps to more thoroughly prepare in less time • Interview War Stories: A View from the Interviewer’s Side Humorous but instructive stories from our interviewers show you how some can- didates really fl opped on the most important question - and how you can avoid doing the same GAYLE LAAKMANN Founder and CEO, CareerCup.comIntroduction Something’s Wrong We walked out of the hiring meeting frustrated, again Of the ten “passable” candidates we reviewed that day, none would receive offers Were we being too harsh, we wondered? I, in particular, was disappointed We had rejected one of my candidates A former student One who I had referred He had a 3 73 GPA from the University of Washington, one of the best computer science schools in the world, and had done extensive work on open source projects He was energetic He was creative He worked hard He was sharp He was a true geek, in all the best ways But, I had to agree with the rest of the committee: the data wasn’t there Even if my emphatic recommendation would sway them to reconsider, he would surely get rejected in the later stages of the hiring process There were just too many red flags Though the interviewers generally believed that he was quite intelligent, he had struggled to develop good algorithms Most successful candidates could fly through the first ques - tion, which was a twist on a well known problem, but he struggled to develop his algorithm When he came up with one, he failed to consider solutions that optimized for other scenar- ios Finally, when he began coding, he flew through the code with an initial solution, but it was riddled with mistakes that he then failed to catch Though he wasn’t the worst candidate we'd seen by any measure, he was far from meeting “the bar ” Rejected When he asked for feedback over the phone a couple of weeks later, I struggled with what to tell him Be smarter? No, I knew he was brilliant Be a better coder? No, his skills were on-par with some of the best I'd seen Like many motivated candidates, he had prepared extensively He had read K&R’s classic C book and he'd reviewed CLRS' famous algorithms textbook He could describe in detail the myriad of ways of balancing a tree, and he could do things in C that no sane programmer should ever want to do I had to tell him the unfortunate truth: those books aren’t enough Academic books prepare you for fancy research, but they’re not going to help you much in an interview Why? I'll give you a hint: your interviewers haven’t seen Red-Black Trees since they were in school either To crack the coding interview, you need to prepare with real interview questions You must practice on real problems, and learn their patterns Cracking the Coding Interview is the result of my first-hand experience interviewing at top companies It is the result of hundreds of conversations with candidates It is the result of the thousands of candidate- and interviewer- contributed questions And it’s the result of seeing so many interview questions from so many firms Enclosed in this book are 150 of the best interview questions, selected from thousands of potential problems 5 Cracking the Coding InterviewIntroduction My Approach The focus of Cracking the Coding Interview is algorithm, coding and design questions Why? Because while you can and will be asked behavioral questions, the answers will be as varied as your resume Likewise, while many firms will ask so-called “trivia” questions (e g , “What is a virtual function?”), the skills developed through practicing these questions are limited to very specific bits of knowledge The book will briefly touch on some of these questions, to show you what they’re like, but I have chosen to allocate space where there’s more to learn My Passion Teaching is my passion I love helping people understand new concepts, and giving them tools so that they can excel in their passions My first experience “officially” teaching was in college at the University of Pennsylvania, when I became a teaching assistant for an undergraduate Computer Science course during my second year I went on to TA for several other courses, and eventually launched my own CS course at the university focused on “hands-on” skills As an engineer at Google, training and mentoring “Nooglers” (yes, that’s really what they call new Google employees) were some of the things I enjoyed most I went on to use my “20% time” to teach two Computer Science courses at the University of Washington Cracking the Coding Interview and CareerCup com reflect my passion for teaching Even now, you can often find me “hanging out” at CareerCup com, helping users who stop by for assistance Join us Gayle Laakmann CareerCup com 6Behind the Scenes For many candidates, interviewing is a bit of a black box You walk in, you get pounded with questions from a variety of interviewers, and then somehow or other you return with an of- fer or not Have you ever wondered: » How do decisions get made? » Do your interviewers talk to each other? » What does the company really care about? Well, wonder no more CareerCup sought out interviewing experts from five top companies - Microsoft, Google, Amazon, Yahoo and Apple - to show you what really happens “behind the scenes ” These experts will walk us through a typical interview day and describe what’s taking place outside of the interviewing room, and what happens after you leave Our interviewing experts also told us what’s different about their interview process From bar raisers (Amazon) to Hiring Committees (Google), each company has its own quirks Knowing these idiosyncrasies will help you to react better to a super-tough interviewer, or to avoid being intimidated when two interviewers show up at the door (Apple) In addition, our specialists offered insight as to what their company stresses in their inter - views While almost all software firms care about coding and algorithms, some companies focus more than others on specific aspects of the interview Whether this is because of the company’s technology or its history, now you'll know what and how to prepare So, join us as we take you behind the scenes at Microsoft, Google, Amazon, Yahoo and Ap- ple 7 Cracking the Coding InterviewBehind the Scenes The Microsoft Interview Microsoft wants smart people Geeks People who are passionate about technology You probably won’t be tested on the ins and outs of C++ APIs, but you will be expected to write code on the board In a typical interview, you'll show up at Microsoft at some time in the morning and fill out initial paper work You'll have a short interview with a recruiter where he or she will give you a sample question Your recruiter is usually there to prep you, and not to grill you on techni- cal questions Be nice to your recruiter Your recruiter can be your biggest advocate, even pushing to re-interview you if you stumbled on your first interview They can fight for you to be hired - or not During the day, you'll do four or five interviews, often with two different teams Unlike many companies, where you meet your interviewers in a conference room, you'll meet with your Microsoft interviewers in their office This is a great time to look around and get a feel for the team culture Depending on the team, interviewers may or may not share their feedback on you with the rest of the interview Definitely Prepare: loop “Why do you want to work for Microsoft?” When you complete your interviews with a team, you might speak with In this question, Microsoft wants to see a hiring manager If so, that’s a great that you’re passionate about technology. sign It likely means that you passed A great answer might be, “I’ve been using the interviews with a particular team It’s now down to the hiring manager’s Microsoft software as long as I can re- decision member, and I'm really impressed at how You might get a decision that day, or Microsoft manages to create a product it might be a week After one week of that is universally excellent. For example, no word from HR, send them a friendly I’ve been using Visual Studio recently to email asking for a status update learn game programming, and it’s APIs are excellent.” Note how this shows a passion for technology What’s Unique: You'll only reach the hiring manager if you’ve done well, but if you do, that’s a great sign CareerCup com 8Behind the Scenes The Amazon Interview Amazon’s recruiting process usually begins with one or two phone screens in which you in- terview with a specific team The engineer who interviews you will usually ask you to write simple code and read it aloud on the phone They will ask a broad set of questions to explore what areas of technology you’re familiar with Next, you fly to Seattle for four or five interviews with one or two teams which have selected you based on your resume and phone interviews You will have to code on a whiteboard, and some interviewers will stress other skills Interviewers are each assigned a specific area to probe and may seem very different from each other They can not see other feedback until they have submitted their own and they are discouraged from discussing it until the hiring meeting Amazon’s “bar raiser” interviewer is charged with keeping the interview bar high They at- tend special training and will interview candidates outside their group in order to balance out the group itself If one interview seems significantly harder and different, that’s most like - ly the bar raiser This person has both significant experience with interviews and veto power in the hiring decision Definitely Prepare: You will meet with your recruiter at the end of the day Amazon is a web-based company, and Once your interviewers have entered that means they care about scale. Make their feedback, they will meet to dis- sure you prepare for questions in “Large cuss it They will be the people making Scale.” You don’t need a background the hiring decision in distributed systems to answer these While Amazon’s recruiters are excellent questions. See our recommendations in at following up with candidates, occa- the System Design and Memory Limits sionally there are delays If you haven’t Chapter. heard from Amazon within a week, we recommend a friendly email Additionally, Amazon tends to ask a lot of questions about object oriented design. Check out the Object Oriented Design chapter for sample questions and suggestions. What’s Unique: The Bar Raiser, who is brought in from a different team to keep the bar high. 9 Cracking the Coding InterviewBehind the Scenes The Google Interview There are many scary stories floating around about Google interviews, but it’s mostly just that: stories The interview is not terribly different from Microsoft’s or Amazon’s However, because Google HR can be a little disorganized, we recommend being proactive in com- munication A Google engineer performs the first phone screen, so expect tough technical questions On your on-site interview, you'll interview with four to six people, one of whom will be a lunch interviewer Interviewer feedback is kept confidential from the other interviewers, so you can be assured that you enter each interview with blank slate Your lunch interviewer doesn’t submit feedback, so this is a great opportunity to ask honest questions Written feedback is submitted to a hiring committee of engineers to make a hire/no-hire recommendation Feedback is typically broken down into four categories (Analytical Ability, Coding, Experience and Communication) and you are given a score from 1 0 to 4 0 overall The hiring committee understands that you can’t be expected to excel in every interview, but if multiple people raise the same red flag (arrogance, poor coding skills, etc), that can disqualify you A hiring Definitely Prepare: committee typically wants to see one interviewer who is an “enthusiastic en- As a web-based company, Google cares dorser ” In other words, a packet with about how to design a scalable system. scores of 3 6, 3 1, 3 1 and 2 6 is better So, make sure you prepare for questions than all 3 1s Your phone screen is usu- from “System Design and Memory Limits” ally not a strong factor in the final deci - Additionally, many Google interviewers sion will ask questions involving Bit Ma- The Google hiring process can be slow nipulation, so please brush up on these If you don’t hear back within one week, questions. politely ask your recruiter for an up- date A lack of response says nothing What’s Different: about your performance Your interviewers do not make the hiring decision. Rather, they enter feedback which is passed to a hiring committee. The hiring committee recommends a decision which can be—though rarely is—rejected by Google executives. CareerCup com 1 0Behind the Scenes The Apple Interview Much like the company itself, Apple’s interview process has minimal beaucracy The inter- viewers will be looking for excellent technical skills, but a passion for the position and com- pany is also very important While it’s not a prerequisite to be a Mac user, you should at least be familiar with the system The interview process typically begins with a recruiter phone screen to get a basic sense of your skills, followed up by a series of technical phone screens with team members Once you’re invited on campus, you'll typically be greeted by the recruiter who provides an overview of the process You will then have 6-8 interviews with members of the team for which you’re interviewing, as well as key people with whom your team works You can expect a mix of 1-on-1 and 2-on-1 interviews Be ready to code on a whiteboard and make sure all of your thoughts are clearly communicated Lunch is with your potential future manager and appears more casual, but is still an interview Each interviewer is usually fo- cused on a different area and is discouraged from sharing feedback unless there’s something they want subsequent interviewers to drill into Towards the end of the day, your inter- Definitely Prepare: viewers will compare notes and if ev- If you know what team you’re interview- eryone still feels you’re a viable candi- ing with, make sure you read up on that date, you'll interview with the director and then VP of the organization you’re product. What do you like about it? What applying to While this decision is rath- would you improve? Oering specific ff er informal, it’s a very good sign if you recommendations can show your passion make it This decision also happens be- for the job. hind the scenes and if you don’t pass, you'll simply be escorted out of the What’s Unique: building without ever having been the wiser (until now) Apple does 2-on-1 interviews often, but don’t get stressed out about them - it’s If you made it to the director and VP interviews, all of your interviewers will the same as a 1-on-1 interview gather in a conference room to give an Also, Apple employees are huge Apple official thumbs up or thumbs down The VP typically won’t be present, but fans. You should show this same passion can still veto the hire if they weren’t im- in your interview. pressed Your recruiter will usually fol- low up a few days later, but feel free to ping your recruiter for updates 1 1 Cracking the Coding InterviewBehind the Scenes The Yahoo Interview Resume Selection & Screening: While Yahoo tends to only recruit at the top 10 – 20 schools, other candidates can still get interviewed through Yahoo’s job board (or – better yet – if they can get an internal referral) If you’re one of the lucky ones selected, your interview process will start off with a phone screen Your phone screen will be with a senior employee (tech lead, manager, etc) On-Site Interview: You will typically interview with 6 – 7 people on the same team for 45 minutes each Each interviewer will have an area of focus For example, one interviewer might focus on databases, while another interviewer might focus on your understanding of computer architecture Interviews will often be composed as follows: 5 minutes: General conversation Tell me about yourself, your projects, etc 20 minutes: Coding question For example, implement merge sort 20 minutes: System design For example, design a large distributed cache These ques- tions will often focus on an area from your past experience or on something your interviewer is cur- rently working on Definitely Prepare: Decision: At the end of the day, you Yahoo, almost as a rule, asks questions will likely meet with a Program Manag- about system design, so make sure you er or someone else for a general con- prepare for that. They want to know that versation (product demos, concerns you can not only write code, but that you about the company, your competing offers, etc) Meanwhile, your interview - can design software. Don’t worry if you ers will discuss your performance and don’t have a background in this - you can attempt to come to a decision The still reason your way through it hiring manager has the ultimate say and will weigh the positive feedback What’s Unique: against the negative Your phone interview will likely be per- If you have done well, you will often formed by someone with more influence, get a decision that day, but this is not such as a hiring manager. always the case There can be many reasons that you might not be told for Yahoo is also unusual in that it often gives several days – for example, the team a decision (if you’re hired) on the same may feel it needs to interview several other people day. Your interviewers will discuss your performance while you meet with a final interviewer. CareerCup com 1 2Interview War Stories The View from the Other Side of the Frontb , y Peter Bailey For the eager candidate getting ready for a big job interview, Cracking the Coding Interview is an invaluable reference, containing excellent coaching and prac- tice material that gives you an inside edge on the interview pro- cess However, as you go over your old data structures textbook and drill yourself with homemade discrete math flash cards, don’t make the mistake of thinking of the interview as a kind of high- pressure game show – that if you just give all the right answers to the tech questions, you too can win a shiny new career (this week, on Who Wants to be a Software Engineer?) While the technical questions on computer science obviously are very important, the most important interview question is not cov- ered in this guidebook In fact, it’s often the single most important question in your interviewers' minds as they grill you in that little room Despite the ques- tions on polymorphism and heaps and virtual machines, the question they really want an answer to is Would I have a beer with this guy? Don’t look at me like that, I'm serious Well, I may be embellishing a little, but hear me out The point I'm trying to make is that interviewers, especially those that you might work with, are probably just as anxious as you are Nonsense, you say, as a nervous young professional, checking your pants for lint while you bite your fingernails, waiting for the interview team to show up in the front lobby After all, this is the big leagues, and these guys are just waiting for you to slip up so they can rip you apart, laugh at your shriveled corpse, and grind your career dreams to dust beneath the heels of their boots Right? Just like pledge week, back in freshman year? Right? Hmmm? Nothing could be further from the truth The team of developers and managers interviewing you have their own tasks and projects waiting for them, back at their own desks Believe me, they’re hoping that every interview is going to be the last one They'd rather be doing any- thing else There might be a batch of upcoming projects looming on their calendar, and they need more manpower if they’re going to even have a prayer of making their deadline But the last guy the agency sent over was a complete flake who railed about Microsoft’s evil for half an hour And the one before that couldn’t code his way out of a wet paper bag without using copy-and-paste Sheesh, they think, where is HR getting these guys? How hard can it be to hire one lousy person? While they may not literally be asking themselves “Would I have a beer with this guy (or gal)”, they are looking to see how well you would fit in with the team, and how you would affect team chemistry If they hire you, you’re all going to be spending a lot of time together for 1 3 Cracking the Coding InterviewInterview War Stories the next few months or years, and they want to know that they can rely on you – and maybe even come to consider you a friend and colleague They want to know that they can depend on you And as tempting as it might be to them to just settle and hire the next person who comes along, they know better In many companies, particularly large U S companies, it’s harder to fire somebody than it is to hire somebody (Welcome to the US: Land of Lawsuits) If they hire a dud, they’re stuck with them That person might be unproductive or, even worse, a drain on the team’s produc- tivity So they keep interviewing, until they find the right person They know that it’s better to reject a good candidate than hire a bad one Some of those interviews are real doozies Once you’ve interviewed long enough, you build up a repertoire of horror stories War stories, of candidates who looked promising on paper until the interviews went terribly, terribly wrong These war stories are not only humorous – they’re also instructive Names have been changed to protect the innocent – or downright ridiculous. 2.1 zyxwvutsrqponmlkjihgfedcba 2.2 ZYXWVUTSRQPONMLKJIHGFEDCBA 2.3 spwkjlslen 2.4 0987654321+_=-)(&%`;':”,./? 2.5 ABCDEZYXW 2.6 abcdeyxw 2.7 asdabcdezyxwasdf 2.8 CareerCup com 1 4Interview War Stories Pop Divas Pop Divas Need Not Apply Leonard was a very promising C++ coder, three years out of college, with a solid work history and an impressive skill set He proved on the phone screen that he was above-average tech- nically, and so he was invited in for an interview We needed a savvy C++ person to work on a piece of middleware that interfaced with our database, and Leonard seemed like a sure fit However, once we started talking to him, things went south in a hurry He spent most of the interview criticizing every tool and platform that we questioned him on We used SQL Server as our database? Puhleease We were planning to switch to Oracle soon, right? What’s that? Our team used Tool A to do all our coding in? Unacceptable He used Tool B, and only Tool B, and after he was hired, we'd all have to switch to Tool B And we'd have to switch to Java, because he really wanted to work with Java, despite the fact that 75 percent of the codebase would have to be rewritten We'd thank him later And oh, by the way, he wouldn’t be making any meetings before ten o'clock Needless to say, we encouraged Leonard to seek opportunities elsewhere It wasn’t that his ideas were bad – in fact, he was “technically” right about many things, and his (strong) opin- ions were all backed with solid fact and sound reason (except for the ten o'clock thing – we think he may have just been making a “power play” ) But it was obvious that, if hired, Leonard wasn’t going to play well with others – he would have been toxic kryptonite for team chem- istry He actually managed to offend two of the team members during the forty-five minutes of his interview Leonard also made the mistake of assuming that Code Purity and Algorithm Beauty were always more important than a business deadline In the real world, there are always compromises to be made, and knowing how to work with the business analysts is just as important as knowing how to refactor a blob of code If Leon- ard would not have gotten along with other IT people, he definitely wouldn’t have gotten along with the business folks Maybe you can get away with hiring a Leonard if he’s one of the best ten coders in the world (he wasn’t) But he was the classic failure example for the “Would you have a beer with this guy?” test 1 5 Cracking the Coding InterviewInterview War Stories Failure to Communicate What We Have Here is Failure to Communicate Trisha was a mid-level Java developer with a solid history of middleware and JSP work on her resume Since she was local, we invited her in for an interview without a phone screen When we started asking her questions, it quickly became obvious that Trisha was a woman of few words Her answers were short and often composed of “yes/no” responses, even to questions that were meant to start a dialog Once she did start opening up, I still wasn’t sure she was actually talking I saw her lips moving, and heard mumbling sounds coming out, but it wasn’t anything that sounded like English I'm not sure if Trisha was nervous or just shy, but either way, I had to ask her numerous times to repeat herself Now I was the one getting nervous I didn’t want to be the guy who “ruined” the interview, so I pulled back on my questions The other folks in the room and I exchanged uneasy glances We felt like we were on a Seinfeld episode It was almost impossible to under- stand Trisha, and when she did speak up, her halting, uncertain, confused speech patterns made us feel more like code breakers than interviewers I am not exaggerating to say that I did not understand a single answer she gave during the interview Knowing, alone, isn’t good enough You’re going to be talking with other technical people, and you’re going to be talking to customers, and sales reps, and Betty from Marketing You will write something eventually, whether it’s documentation, or a project plan, or a require- ments document The word processor might correct your spelling, but it won’t correct your lousy writing The ability to communicate thoughts and ideas, in a clear, concise manner, is an absolutely invaluable skill that employers seek The same goes for verbal communication I used to work with a co-worker who doubled the length of every meeting he was in, because he could not answer a question in less than ten minutes “Hey, Dennis, what time is it?” “Well, that’s kind of interesting, because I just hap- pened to be reading an article on cesium clocks and leap seconds and the history of the Gregorian Calendar and ” I'll spare you the rest CareerCup com 1 6Interview War Stories You Can (Maybe) Count On Me You Can Count on Me, Just Not Until Early Afternoon Ahhh, 1999 The crest of the dot-com bubble, and the tightest labor market in history Our company was racing to expand its development team, and we would have hired a German Shepherd if it knew HTML Instead, we wound up hiring Ian We should’ve hired the dog Ian was a cheerful, friendly guy who had a gift of natural charisma He got along fantasti- cally with all of the interviewers, and seemed very intelligent Skill-wise, he was adequate He hadn’t written a single line of computer code outside of his college courses, and didn’t even have his own e-mail address When we gave Ian the chance to ask us questions at the end of the interview, he asked about flexible work hours, and how soon he could take vacation time Instead of showing an interest in the career opportunities, or in company’s growth prospects, he asked whether he could take the all-you-could-drink break room soda home with him The questions grew more bizarre from there Ian was very interested in our Legal Assistance benefit He wanted to know if it covered the cost of filing lawsuits, if it covered him if he got sued himself, if it applied to any lawsuits he currently was involved in, and if he could “theoretically” use it to sue the company itself. He also asked us if he could use it to help him “fix” some unpaid speeding tickets In any other year, that should have been it for Ian right there But, in 1999, we were hiring anybody who was even remotely competent Ian collected paychecks from us for eighteen months, and he was about as productive as a traffic cone He usually sauntered into the office around ten-thirty with some sort of lame excuse (by my count, he had to wait for the cable guy sixteen times in a six-month period) He usually killed the morning by answering e-mail and playing ping-pong, before breaking for a two-hour lunch After lunch, it was more ping- pong, and maybe an hour of writing bad code, before bolting the office sometime around three He was the dictionary definition of unreliable Remember, your potential future team members need to know that they can rely on you And they need to know that you won’t need constant supervision and hand-holding They need to know that you’re able to figure things out on your own One of the most important messages that you, as a candidate, can convey in your interview is hiring me will make your lives easier In fact, this is a large part of the reason for the famously difficult interview ques - tions at places like Amazon and Google; if you can handle that kind of unpredictable pres- sure in an interview, then you stand a good chance of being useful to them on real projects To cite a more subtle example, once I was on a four person team that was desperately try- ing to recruit new members to help work on an old pile of software It was a real mess; we'd inherited a nasty ball of spaghetti, and we needed people who could jump in, figure things out, and be part of the solution There was one very smart fellow, Terry, who would have been a great asset for our team – but we didn’t hire him, despite his excellent technical and personal skills It was because he 1 7 Cracking the Coding InterviewInterview War Stories You Can (Maybe) Count On Me insisted on meticulous written instructions for every step of the coding process He wasn’t going to make a suggestion or take any initiative – or blow his nose, for that matter – without a mile-long audit trail and a dozen signatures While he insisted that he worked that way for reasons of quality (a defensible point), we got the impression that it had more to do with butt-covering, and we simply didn’t have the time for that kind of bureaucracy Terry would have been an excellent fit in a government or aerospace IT department, something that re - quired ISO 9000 procedures But he would have never fit into our team; he would have been a burden, not an asset CareerCup com 1 8Interview War Stories Spider Senses My Spider Senses are Tingling I can think of lots of interviews that just fell into the general category of weird and uncomfort- able: » The Java coder who apparently considered hygiene optional, and had the interview room smelling like week-old blue cheese within ten minutes (my eyes were watering) » The young fresh-out-of-college graduate with a tongue piercing that kept tick-tick-tick- ing against his teeth as he talked (after half an hour, it was like Chinese water torture) » The girl who wore an iPod through her interview, with the volume turned loud enough that she actually had to ask the interviewers to repeat themselves a few times » The poor, hyper-nervous fellow who was sweating like a marathon runner for half an hour » The girl who wore a T-shirt with an obscene political slogan to her interview » The guy who asked (seriously) at the end of his interview, “So, are there any hot chicks in our department?” Those are the interviews where we politely thank the people for their time, shake their hand (except for the sweaty guy), then turn to each other after the door closes and ask – did that really just happen? Nobody is saying that you have to be a bland, boring robot in a Brooks Brothers suit and tie Remember, the interview team wants you to be “the one”, but they’re also very worried about the possibility that you’re going to be more of a distraction than an asset Don’t talk or behave in a way that will set off their early warning radar Whether or not somebody bothers to behave professionally during an interview is often a very good indicator of what kind of teammate they’re going to be Rudimentary social skills are part of the answer to “Would I have a beer with this guy?”, or at least, “Will I mind working next to this guy for six months?” From the interviewer’s point of view, they’re picking a neighbor that they’re going to live and work with 200 hours per month for foreseeable future Would you really want a neighbor that smelled like a hog ren- dering plant? 1 9 Cracking the Coding InterviewBefore the InterviewBefore the Interview Resume Advice What Resume Screeners Look For Resume screeners look for the same things that interviewers do: » Are you smart? » Can you code? That means that you should present your resume to show those two things Your love of tennis, traveling, or magic cards won’t do much to show that, so it’s likely just wasting space Keep in mind that recruiters only spend a fixed amount of time (about 20 seconds) looking at your resume If you limit the content to the best, most impressive, most relevant items, they’ll jump out at the recruiter Weak items only dilute your resume and distract the re- cruiter from what you’d like them to see Employment History Relevant Jobs: Your resume does not - and should not - include a full history Got some extra time to prepare? of every role you’ve ever had Your job serving ice cream, for example, will not If you have at least a couple months show that you’re smart or that you can before an interview (or if you’re in school code Include only the relevant things and not graduating yet), you may be able Writing Strong Bullets: For each role, to improve your resume. try to discuss your accomplishments with the following approach: “Accom- Go out and get project experience Take plished X by implementing Y which led course that have major projects. Get to Z ” Here’s an example: involved in open source. Ask a professor if » “Reduced object rendering time there is any research you can get involved by 75% by applying Floyd’s algo- in, or ask if he/she can sponsor you on an rithm, leading to a 10% reduction independent study. in system boot time ” Here’s another example with an alter- This will put you in a better position to nate wording: have your resume selected down the road. It will also give you lots of things to » “Increased average match accu- racy from 1 2 to 1 5 by implement- talk about in an interview. ing a new comparison algorithm based on windiff ” Not everything you did will fit into this approach, but the principle is the 2 1 Cracking the Coding InterviewBefore the Interview Resume Advice same: show what you did, how you did it, and what the results were Ideally, you should try to make the results “measurable” somehow Projects Almost every candidate has some projects, even if they’re just academic projects List them on your resume I recommend putting a section called “Projects” on your resume and list your 2 - 4 most significant projects State what the project was, which languages or tech- nologies it employed, and whether it was an individual or a team project If your project was not for a course, that’s even better It shows passion, initiative, and work ethic You can state the type of project by listing course projects as “Course Project” and your independent projects as “Independent Projects” (or some other wording) Programming Languages and Software Software: Generally speaking, I do not recommend listing that you’re familiar with Microsoft Office Everyone is, and it just dilutes the “real” information Familiarity with developer-spe- cific or highly technical software (e g , Visual Studio, Eclipse, Linux) can be useful, but it often doesn’t make much of a difference Languages: Knowing which languages to list on your resume is always a tricky thing Do you list everything you’ve ever worked with? Or only the ones that you’re more comfortable with (even though that might only be one or two languages)? I recommend the following compromise: list most languages you’ve used, but add your experience level This approach is shown below: » “Languages: Java (expert), C++ (proficient), JavaScript (prior experience), C (prior expe - rience)” Advice for Non-Native English Speakers and Internationals Proofreading: Some companies will throw out your resume just because of a typo Please get at least one native English speaker to proofread your resume Personal Information: For US positions, do not include age, marital status, or nationality This sort of personal information is not appreciated by companies, as it creates a legal liabil- ity for them However, you may want to include your current work authorization / visa status, particularly when applying to smaller companies who may be unable to sponsor candidates CareerCup com 2 2Before the Interview Behavioral Preparation Why Are Behavioral Questions Asked? Behavioral questions are asked for a variety of reasons They can be asked either to get to know your personality, to more deeply understand your resume, or just to ease you into an interview Either way, these questions are important and can be prepared for How To Prepare Behavioral questions are usually of the form “tell me about a time when you ”, and may ask for an example from a specific project or position I recommend filling in the following “preparation grid” as shown below: Project 1 Project 2 Project 3 Project 4 Most Challenging What You Learned Most Interesting Hardest Bug Enjoyed Most Conflicts with Teammates Along the top, as columns, you should list all the major aspects of your resume – e g , your projects, jobs, or activities Along the side, as rows, you should list the common questions – e g , what you enjoyed most, what you enjoyed least, what you considered most challenging, what you learned, what the hardest bug was, etc In each cell, put the corresponding story We recommend reducing each story to just a couple keywords that you can write in each cell This will make the grid easier to study In your interview, when you’re asked about a project, you’ll be able to come up with an ap- propriate story effortlessly Study this grid before your interview NOTE: If you’re doing a phone interview, you may want to have this grid out in front of you Some additional advice: 1 When asked about your weaknesses, give a real weakness Answers like “My great- est weakness is that I work too hard / am a perfectionist / etc” tell your interviewer that you’re arrogant and/or won’t admit to your faults No one wants to work with someone like that A better answer conveys a real, legitimate weakness but empha- sizes how you work to overcome it For example: “Sometimes, I don’t have a very good attention to detail While that’s good because it lets me execute quickly, it also means that I sometimes make careless mistakes Because of that, I make sure to always have someone else double check my work ” 2 3 Cracking the Coding Interview

Advise: Why You Wasting Money in Costly SEO Tools, Use World's Best Free SEO Tool Ubersuggest.