Cracking The Technical Interview Uw


Published on

Computer Science interviews are a different breed from other interviews and, as such, require specialized skills and techniques. Cracking the Technical Interview will teach you how to prepare for technical interviews, what top companies like Google and Microsoft really look for, and how to tackle the toughest programming and algorithm problems. This talk will include stories from the speaker's extensive interviewing experience as well as a live "demo" of how to tackle a technical problem.

Published in: Technology, Business
1 Comment
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • What you want to know:How much time do you spend coding per day? In meetings?How does code get shipped?Insightful QuestionsI noticed that Google Talk uses the XMPP standard, and …Passion QuestionsI love learning about scalable systems. What are opportunities at Google?
  • Hashtables – super important!!!
  • Bit manipulation – super important!Recursion: how does recursion impact space and time?Practice converting from iterative into recursion
  • Cracking The Technical Interview Uw

    1. 1. Cracking the Technical Interview<br />Cracking the Technical Interview<br />Gayle Laakmann<br />Founder / CEO,<br />
    2. 2. My Background<br />UPenn BSE / MSE ‘05 in CS<br />Ex-Engineer at Google, Microsoft and Apple<br /> + Offers from Amazon, IBM and others<br />3 Years on Google Hiring Committee<br />Interviewed 120+ candidates<br />Previously taught 2 courses at UW<br />(Now MBA Student at Wharton / UPenn)<br />
    3. 3. CareerCup<br />Founded 2005<br />Largest source for technical interview questions (3000+ FREE questions)<br />Services:<br />Book (E-Book and Paper)<br />Video<br />Mock interviews<br />
    4. 4.
    5. 5. How are interviews structured?<br />How are you evaluated?<br />Process<br />
    6. 6. Technical Interview Process<br />Initial Screen (Phone / Campus)<br />4 - 5 on site interviews<br />10 min General<br />40 min Technical<br />10 min Closing<br />
    7. 7. What do companies look for?<br />Are you smart?<br />Algorithmic skills<br />Can you code?<br />OOO, Cleanness, bug free (sort of), etc<br />What are you like?<br />Communication, friendliness, etc<br />What have you done?<br />Relevant experience, passion, etc<br />
    8. 8. What do companies look for?<br />Applying<br />
    9. 9. Resume Selection<br />Project experience!<br />Course work<br />Open source<br />Independent studies<br />Master C++ or Java<br />Skills <br />Passion<br />Work Ethic<br />
    10. 10. Resume Advice:<br />One Page. (Seriously.)<br />3 Sections: Education, Employment, Projects<br />Pet Peeve: Save file with your name<br />
    11. 11. Why do you want to work here? <br />What was your favorite project?<br />Interview prep – SOFT SKILLS<br />
    12. 12. Research the company / team<br />Prepare 10 – 15 questions:<br />Genuine Questions<br />How much time do you spend coding each day?<br />Insightful QuestionsI noticed that Google uses Standard X. How do you solve problem Y?<br />Passion Questions<br />What are the opportunities to learn about scalability at Google?<br />Soft Prep – The Company / Team<br />
    13. 13. Create Preparation Grid for Projects<br />+ (maybe) Behavioral Grid<br />Soft Prep – Yourself<br />
    14. 14. Strengths vs. Weaknesses<br />Mediocre answer: “it was hard because I had to learn new languages / technologies”<br />Not just answering Q’s – show who you are!<br />Soft Prep – Yourself<br />
    15. 15. How do you prep for coding questions?<br />What do you prep?<br />Interview prep – Tech SKILLS<br />
    16. 16. Data structures<br />Algorithms<br />Concepts<br />What to study<br />
    17. 17. How to implement<br />When to use (pros / cons)<br />Data Structures<br />
    18. 18. Implementation<br />Space vs Time Complexity<br />Algorithms<br />
    19. 19. Concepts<br />Not just a concept – know how to code!<br />
    20. 20. Don’t practice on computer!<br />
    21. 21. What do companies look for?<br />Interview – soft SKILLS<br />
    22. 22. The Interview: Chit Chat - Tips<br />Be specific – not arrogant<br /> “Yeah, I did all the hard work for the team”<br /> “I implemented the file system, which was <br /> considered one of the hardest components.”<br />Limited details (else too hard to follow)<br />Ask good questions!<br />
    23. 23. ituation<br />ction<br />esponse<br />The Interview: Chit Chat - Tips<br />S<br />structure your <br />responses<br />A<br />R<br />
    24. 24. How do you tackle hard tech questions?<br />Interview – tech SKILLS<br />
    25. 25. General Advice for Technical Questions<br />Talk out loud – show us how you think!<br />Good interviews = hard questions<br />Don’t be nervous if you can’t solve something!<br />You’re not done until<br />they say you’re done.<br />
    26. 26. The Coding Interview: 5 Steps<br />
    27. 27. Asking Questions<br />What are the data types?<br />How much data?<br />What assumptions do you need?<br />Who is the user?<br />NOTE: Especially important at Microsoft.<br />
    28. 28. OMG! I have no idea how to solve this problem!<br />Algorithm Discovery Approaches<br />
    29. 29. Algorithm Discovery Approaches<br /><ul><li>Pattern Matching
    30. 30. What problem is this similar to?
    31. 31. Simplify / Generalize
    32. 32. What if the data was a different type?
    33. 33. Base Case & Build
    34. 34. Can you do this just for element 1? 1 and 2? …
    35. 35. Data Structure Brainstorm
    36. 36. Go through all data structures – can they help?</li></li></ul><li>Algorithm Discovery Approaches<br />Pattern Matching<br />A sorted array has been rotated, so that the elements might appear in the order 3 4 5 1 2. How would you find the minimum element?<br />
    37. 37. Algorithm Discovery Approaches<br />Simplify / Generalize<br />A ransom note can be formed by cutting words out of a magazine to form a new sentence. How would you figure out if a ransom note (string) can be formed from a given magazine (string)?<br />
    38. 38. Algorithm Discovery Approaches<br />Base Case & Build<br />Design an algorithm to print all subsets of a set.<br />
    39. 39. Algorithm Discovery Approaches<br />Data Structures Brainstorm<br />Numbers are randomly generated and sorted into an (expanding) array. How would you keep track of the median?<br />
    40. 40. Find Problems with Your Algorithm<br />What’s the space / time complexity?<br />What if there’s lots of data?<br />Does your design cause other issues?<br />If there are other issues, did you make the right trade offs?<br />
    41. 41. Pseudo Code & Code<br />Pseudo code first – but tell your interviewer<br />Use data structures generously<br />What are the right ones?<br />Define your own = shows good style<br />Don’t crowd your coding<br />Start in the upper left corner of board, not bottom<br />
    42. 42. Testing<br />Test your code!<br />Extreme cases<br />Check for user error<br />Test general cases<br />CAREFULLY FIX MISTAKES<br />
    43. 43. What about non-algorithm problems?<br />System Design<br />Design for small system, then scale.<br />Object Oriented Design<br />What are the major objects?<br />How do they interact?<br />Trace It!<br />
    44. 44. (eg, things that wouldn’t fit in elsewhere)<br />FINAL THOUGHTS<br />
    45. 45. The Interview: Ending It<br />Smile, be positive<br />If you think you bombed, don’t worry<br />Follow up with your recruiters (sometimes they forget)<br />
    46. 46. The Offer<br />It’s always negotiable<br />Helps if you have competing offer<br />Don’t lie – companies know what competitors offer<br />Is it really what you want?<br />Money, career options, etc<br />
    47. 47. My Red Flags: People who…<br />… wrote code and didn’t test it<br />… found mistakes and would make random fixes<br />… jammed things messily into an existing data structure<br />… didn’t consider the impact of their algorithms<br />… were scared to try<br />
    48. 48. Take Aways – Getting Ready<br />Get Project Experience<br />Show project experience on resume<br />S. A. R. (Situation Action Result)<br />Prepare Project / Behavioral Grids<br />
    49. 49. Technical Interview Prep<br />Things to know (data structures, algorithms, concepts)<br />Simple  Know Implementation<br />Complex  Know Concepts<br />Practice interview questions!<br />
    50. 50. At The Interview <br />Be nice<br />Interviews are supposed to be hard<br />Approaches<br />Pattern matching<br />Simplify / Generalize<br />Base Case & Build<br />Data Structure Brainstorm<br />
    51. 51. Other Resources<br />E-Book<br />Video<br />Paper<br />Mock Interviews<br />Slides posted at<br />20% Discount Code:<br />[removed from online posting – email to get it]<br />I have removed the discount code from online posting because, well, things are Google-able and the code is intended for penn students. Please email from your UW email address to get the code.<br />