1 / 45

Cracking the Coding Interview

Cracking the Coding Interview. Advice and Strategies for Software Engineering Interviews. Gayle Laakmann McDowell Founder / CEO, CareerCup.com Author of The Google Resume and Cracking the Coding Interview. My Background. Software Engineer @ GOOG, MS & Apple

hafwen
Download Presentation

Cracking the Coding Interview

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cracking the Coding Interview Advice and Strategies for Software Engineering Interviews Gayle Laakmann McDowell Founder / CEO, CareerCup.com Author of The Google Resume and Cracking the Coding Interview McDowell | IIT Madras| Mar 2012 CareerCup.com

  2. My Background • Software Engineer @ GOOG, MS & Apple • 3 Years on Google Hiring Committee • Interviewed 150+ candidates • Founder of CareerCup.com • Author • Cracking the Coding Interview (5th Edition) • The Google Resume McDowell | CareerCup.com

  3. Slides Posted Online posted at: www.technologywoman.com Click “Speaking Engagements” McDowell | CareerCup.com

  4. McDowell | CareerCup.com

  5. Interview Process McDowell | CareerCup.com

  6. Big Company Evaluation (Coding) Testing aptitude, not knowledge McDowell | CareerCup.com

  7. How You Are Judged How did you do RELATIVE to other candidates on the SAME question? It’s not about how quickly you solved the problem… … it’s about how quickly you solved it relative to other candidates. McDowell | CareerCup.com

  8. Resumes & Application Process McDowell | CareerCup.com

  9. Indians are at a disadvantage • Far away • Fewer recruiting opportunities • Unfamiliar • Recruiters may not understand your school, GPA, etc • Language barrier / Cultural differences • Accents, grammar, accidental sexism • Different / less experience • More emphasis in US on projects

  10. So what to do? • Get equivalent experience • Translate GPA & other items • Use good grammar & punctuation • On resumes, cover letters, etc • No abbreviations, no sloppiness • Be careful about your assumptions • Sexism is not acceptable in the U.S. Ever.

  11. Cheat Sheet for Indians (Grammar / Writing) • Space after comma & period. Never before. • WRONG: “Hello .I am Gayle .” • RIGHT: “Hello. I am Gayle.” • Questions need a question mark • WRONG: “Do you have one.” • RIGHT: “Do you have one?” • No abbreviations • WRONG: “Ny1 dr?” • RIGHT: “Is anyone there?” • Commands are rude (use a question) • WRONG: “Send it to me.” • RIGHT: “Would you mind sending it to me?”

  12. Cheat Sheet for Indians(Gender / Sexism) • Mr. LastName / Ms. LastName • WRONG: Ms. Gayle • RIGHT: Ms. McDowell • But “Dear Gayle” is perfectly okay in U.S. • “Guy” / “Guys” is not unisex* in the U.S. • WRONG: “I need to hire a really smart CS guy.” • *Except: “you guys” and “hey guys” • Don’t assume that people are male / female • (Just don’t use Mr. / Ms. in emails!) • It is EXTREMELY offensive to comment on someone’s looks • But a great way to get fired / rejected

  13. Cheat Sheet for Indians(Getting Experience) • Build something! • Make a kick-ass resume Don’t waste your summers! It’s really not that hard. McDowell | CareerCup.com

  14. How We Review Resumes (U.S.) • Pull resume out of giant stack • Spot-check: company names, positions, projects, schools. • Skim bullets to see if you’ve written real code. “Glanced at,” not read. 15 – 30 seconds Reject Interview • Go to next resume & whine about how many more you have left. McDowell | CareerCup.com

  15. How CS Resume Should Look (U.S.) Observe: No Objective! Objectives / summaries are almost always useless. One Page Only! Unless > 10 years exp. A Real Resume Format with organized columns Short (1 – 2 line bullets) Focus on Accomplishments not responsibilities GPA - Translated We don’t understand “first class” 3 – 4 Projects Courses & independent Finished or unfinished List of Technical Skills Short! Cut the “fluff.”

  16. Behavioral Questions McDowell | CareerCup.com

  17. Communication Tips • Goals: • Answer the question. • Deliver a *good* answer. • Communicate well. • Strategies: • Nugget First • S.A.R.: Situation, Action, Result McDowell | CareerCup.com

  18. Structure 1: Nugget First • Lead with your “thesis” / nugget • Grabs the listener’s attention • Gives them context for where you’re going. Q: What accomplishment are you most proud of? A: I’m most proud of the way I re-architected the … McDowell | CareerCup.com

  19. Structure 2: S.A.R. ituation ction esult S What was the issue? A What did you do about it? R What was the impact? McDowell | CareerCup.com

  20. Preparing for Behavioral Qs • Create Preparation Grid for Projects + Behavioral Grid [for PM & less tech. roles] McDowell | CareerCup.com

  21. Technical SkillsInterview Prep McDowell | CareerCup.com

  22. How to study • Study the basics • Complex algorithms generally unnecessary. • Practice solving questions • Don’t memorize! • See: CtCI & CareerCup.com • Push yourself! • Write code on paper McDowell | CareerCup.com

  23. Data Structures • How to implement • When to use (pros / cons) McDowell | CareerCup.com

  24. Algorithms • Implementation • Space vs. Time Complexity McDowell | CareerCup.com

  25. Concepts • Not just a concept – know how to code! McDowell | CareerCup.com

  26. Technical SkillsMastering the Interview McDowell | CareerCup.com

  27. Technical Questions • Ask Questions! • Questions are more ambiguous than they appear • Talk out loud • Show us how you think • Think critically • Does your algorithm really work? What’s the space and time complexity? • Code slowly and methodically • It’s not a race • Test your code • And make CAREFUL fixes. McDowell | CareerCup.com

  28. What does a “good coder” do? • Be methodical. Don’t try to rush. • Reasonably Bug Free • Thorough testing (and careful fixing) • Check for error conditions • Clean coding • Use other functions • Good use of data structures (define own if useful) • Concise and readable McDowell | CareerCup.com

  29. Types of Interview Questions “Design a Parking Lot” “Reverse a Linked List” “Design a Web Crawler” McDowell | CareerCup.com

  30. Types of Interview Questions McDowell | CareerCup.com

  31. Algorithm Qs: Pattern Matching Q: Write code to reverse the order of words in a sentence. “dogs are cute” “cute are dogs” Similar to: reverse characters in a string. “dogs are cute” “etuc era sgod” A: Reverse full string, then reverse each word. McDowell | CareerCup.com

  32. Algorithm Qs: Simplify & Generalize Q: Design algorithm to figure out if you can build a ransom note (array of strings) from a magazine (array of strings). Simplify: what if we used characters instead of strings?  Build array of character frequencies. Generalize: how we can extend answer to words? A: Build hashtable from word to frequency. McDowell | CareerCup.com

  33. Algorithm Qs: Base Case & Build Q: Design algorithm to print subsets of set. {a, b, c}  {}, {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c} S({}) {} S({a}) {}, {a} S({a, b}) {}, {a}, {b}, {a, b} S({a, b, c})  ? A: Build S(n) by cloning S(n-1) and adding n to the cloned sets. McDowell | CareerCup.com

  34. Algorithm Qs: Data Structure Brainstorm Q: There are 10^10 possible phone #s. Explain how you could efficiently implement assignSpecificNum(num)and assignAnyAvailableNum(). Array (sorted)? Too slow to remove num. Linked list? Too slow to find specific num. Hash table? Can’t iterate through free nums. Tree? Ah-ha! A: Store free #s in BST. Remove when taken. McDowell | CareerCup.com

  35. How To Solve Algorithm Questions Compare to similar problems. Solve first for a simplified / tweaked problem. Solve for n = 1, and build solution for n = 2. Try to apply data structure to solve problem. McDowell | CareerCup.com

  36. Object Oriented Design Handle Ambiguity What about the question is ambiguous? Design the Core Objects What are the main objects in the system? Analyze Relationships How are the objects related to each other? Investigate Actions What are the main operations? McDowell | CareerCup.com

  37. Object Oriented Design Handle Ambiguity Is it a single restaurant, or part of a chain? Design the Core Objects Guest, Party, Table, Server, Host, … Analyze Relationships Server and Host are both Employees… Investigate Actions A Party is seated at a Table by a Host… How would you design the data structures and objects for a restaurant? McDowell | CareerCup.com

  38. System Design Handle Ambiguity What about the question is ambiguous? Make Believe Pretend there wasn’t so much data & solve Get Real Go back to the real problem. What breaks? Solve Problems Solve the issues you just found. McDowell | CareerCup.com

  39. System Design Given millions of documents, find all documents which contain a list of words. Handle Ambiguity Do the words need to be in a specific order? Make Believe Assume everything can fit on one machine. Get Real Must split up data across machines. Solve Problems Divide hash table by file or by keyword? McDowell | CareerCup.com

  40. Whew! All Done! <Gulp> This is a lot of stuff. Do I need to get everything right? McDowell | CareerCup.com

  41. Evaluation is RELATIVE, not absolute. <Gulp> This is a lot of stuff. Do I need to get everything right? It’s not about how quickly you solved the problem… </Gulp> … it’s about how quickly you solved it relative to other candidates. McDowell | CareerCup.com

  42. So RELAX! Interviews are supposed to be hard! Everyone makes mistakes. Everyone! McDowell | CareerCup.com

  43. Final Thoughts McDowell | CareerCup.com

  44. After Your Interview • Follow-up with your recruiter • No response != rejection • You have no idea how well/poorly you did. • Seriously. I know you think you do. But you don’t. • Lots of randomness. • So if you fail, get up and try again. McDowell | CareerCup.com

  45. Other Resources • CareerCup.com • Interview Videos • iPhone App • Resume Review • Mock Interviews Sold Today Signed (just ask!) today Rs. 400 • Or, stalk me online at… • twitter.com/gayle • facebook.com/gayle • technologywoman.com • gayle@careercup.com 5 stars! McDowell | CareerCup.com

More Related