Cracking the Technical Interview<br />Cracking the Technical Interview<br />Gayle Laakmann<br />Founder / CEO, CareerCup.c...
My Background<br />Penn BSE / MSE ‘05 in CS<br />Ex-Engineer at Google, Microsoft and Apple<br />		+ Offers from Amazon, I...
CareerCup<br />Founded 2005<br />Largest source for technical interview questions (3000+ FREE questions)<br />Services:<br...
How are interviews structured?<br />How are you evaluated?<br />Process<br />
Technical Interview Process<br />Initial Screen (Phone / Campus)<br />4 - 5 on site interviews<br />10 min General<br />40...
Evaluation (What They Say)<br />
Big Company Evaluation (Actual)<br />Experience<br />
Big Company Eval = No Red Flags<br />“Better to lose a good candidate than to hire a bad one.”<br />“Better to lose a good...
Smaller Companies<br />Interview process varies<br />Care more about experience / personality<br />Might ask to see “portf...
What do companies look for?<br />Applying<br />
What do companies look for?<br />Project experience!<br />Course work<br />Open source<br />Independent studies<br />Weiss...
Resume Advice:<br />One Page. Seriously.<br />3 Sections: Education, Employment, Projects<br />List languages with experie...
Why do you want to work here? <br />What was your favorite project?<br />Interview prep – SOFT SKILLS<br />
Research the company / team<br />Prepare questions:<br />Genuine Questions<br />Things you really want to know<br />Insigh...
Create Preparation Grid for Projects<br />+ (maybe) Behavioral Grid<br />Soft Prep – Yourself<br />
Strengths vs. Weaknesses<br />Mediocre answer: “it was hard because I had to learn new languages / technologies”<br />Not ...
How do you prep for coding questions?<br />What do you prep?<br />Interview prep – Tech SKILLS<br />
Data structures<br />Algorithms<br />Concepts<br />What to study<br />
How to implement<br />When to use (pros / cons)<br />Data Structures<br />
Implementation<br />Space vs Time Complexity<br />Algorithms<br />
Concepts<br />Not just a concept – know how to code!<br />
Don’t practice on computer!<br />
What do companies look for?<br />Interview – soft SKILLS<br />
The Interview: Chit Chat<br />Beginning + End of Interview<br />What? <br />Resume questions (hardest bug, etc)<br />Gener...
The Interview: Chit Chat - Tips<br />Be specific – not arrogant<br />     “Yeah, I did all the hard work for the team”<br ...
ituation<br />ction<br />esponse<br />The Interview: Chit Chat - Tips<br />S<br />structure your <br />responses<br />A<br...
How do you tackle hard tech questions?<br />Interview – tech SKILLS<br />
General Advice for Technical Questions<br />Talk out loud – show us how you think!<br />Good interviews = hard questions<b...
Question Types<br />Standard Coding and Algorithms<br />“Reverse a linked list”<br />Object Oriented Design<br />“Design a...
Standard Coding <br />and Algorithms<br />Question Type #1<br />
5 Steps<br />#1<br />Standard Coding <br />and Algorithms<br />
Asking Questions<br />What are the data types?<br />How much data?<br />What assumptions do you need?<br />Who is the user...
Algorithm Generation<br />#1<br />Standard Coding <br />and Algorithms<br />OMG!  I have no idea how to solve this problem...
Algorithm Generation<br />Pattern Matching<br />What problem is this similar to?<br />Simplify / Generalize<br />What if t...
Algorithm Generation<br />Pattern Matching<br />Write code to reverse the order of words in a sentence.<br />	Example:<br ...
Algorithm Generation<br />Simplify / Generalize<br />Write a program to remove the duplicate characters in a string withou...
Algorithm Generation<br />Base Case & Build<br />Design an algorithm to print all valid combinations of n pairs of parenth...
Algorithm Generation<br />Data Structures Brainstorm<br />Design an algorithm to figure out if someone has won a game of t...
Poking Holes<br />What’s space / time complexity?<br />What if there’s lots of data?<br />Does your design cause other iss...
Pseudo Code & Code<br />Pseudo code first – but say that!<br />Use data structures generously<br />What are the right ones...
Testing<br />Test your code!<br />Extreme cases<br />Check for user error<br />Test general cases<br />CAREFULLY FIX MISTA...
Object Oriented Design<br />Question Type #2<br />
OOD Steps<br />#2<br />Object Oriented Design<br />Clarifying Questions<br />What are the core objects?<br />What is the i...
OOD Example<br />#2<br />Object Oriented Design<br />Design the data structures for a restaurant<br />
Restaurant OOD<br />#2<br />Object Oriented Design<br />1. Clarifying Questions<br />How many guests?<br />Buffet or entre...
Restaurant OOD<br />#2<br />Object Oriented Design<br />2. Core Objects<br />Guest<br />Party<br />Server<br />Table<br />...
Restaurant OOD<br />#2<br />Object Oriented Design<br />3. Interaction<br />Server assigned to Table by Host<br />Guests o...
Restaurant OOD<br />#2<br />Object Oriented Design<br />4. Walk Through Uses<br />Party enters with Guest(s). Assigned to ...
Restaurant OOD<br />#2<br />Object Oriented Design<br />5. Algorithms<br />How do you find a free table?<br />How do you r...
Large Scale<br />System Design<br />Question Type #3<br />
Large Scale Steps<br />#3<br />Large Scale <br />System Design<br />Simplify<br />Develop algorithm for simple case<br />G...
Trivia<br />Question Type #4<br />
Trivia<br />#4<br />Trivia<br />Hopefully you know the answer!<br />Practice more <br />Else…<br />Admit that you don’t k...
(eg, things that wouldn’t fit in elsewhere)<br />FINAL THOUGHTS<br />
The Interview: Ending It<br />Smile, be positive<br />If you think you bombed, don’t worry<br />Follow up with your recrui...
The Offer<br />It’s always negotiable<br />Helps if you have competing offer<br />Don’t lie – companies know what competit...
My Red Flags: People who…<br />… wrote code and didn’t test it<br />… found mistakes and would make random fixes<br />… ja...
Take Aways – Getting Ready<br />Get Project Experience<br />Show project experience on resume<br />S. A. R. (Situation Act...
Technical Interview Prep<br />Things to know (data structures, algorithms, concepts)<br />Simple  Know Implementation<br ...
At The Interview	<br />Be nice<br />Interviews are supposed to be hard<br />Approaches<br />Pattern Matching<br />Simplify...
Other Resources<br />E-Book<br />Video<br />Mock Interviews<br />Slides posted at CareerCup.com/slides<br />www.CareerCup....
Upcoming SlideShare
Loading in …5
×

Cracking The Technical Interview

21,389 views

Published on

Published in: Technology, Business
0 Comments
33 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
21,389
On SlideShare
0
From Embeds
0
Number of Embeds
2,071
Actions
Shares
0
Downloads
286
Comments
0
Likes
33
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

    1. 1. Cracking the Technical Interview<br />Cracking the Technical Interview<br />Gayle Laakmann<br />Founder / CEO, CareerCup.com<br />
    2. 2. My Background<br />Penn 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 />
    3. 3. CareerCup<br />Founded 2005<br />Largest source for technical interview questions (3000+ FREE questions)<br />Services:<br />Book<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 />Sometimes “blind” interview<br />
    7. 7. Evaluation (What They Say)<br />
    8. 8. Big Company Evaluation (Actual)<br />Experience<br />
    9. 9. Big Company Eval = No Red Flags<br />“Better to lose a good candidate than to hire a bad one.”<br />“Better to lose a good candidate than to hire a bad one.”<br />
    10. 10. Smaller Companies<br />Interview process varies<br />Care more about experience / personality<br />Might ask to see “portfolio”<br />
    11. 11. What do companies look for?<br />Applying<br />
    12. 12. What do companies look for?<br />Project experience!<br />Course work<br />Open source<br />Independent studies<br />Weiss Tech House<br />Know C++ or Java well<br />Skills <br />Passion<br />Work Ethic<br />
    13. 13. Resume Advice:<br />One Page. Seriously.<br />3 Sections: Education, Employment, Projects<br />List languages with experience level<br />Pet Peeve: Save file with your name<br />
    14. 14. Why do you want to work here? <br />What was your favorite project?<br />Interview prep – SOFT SKILLS<br />
    15. 15. Research the company / team<br />Prepare questions:<br />Genuine Questions<br />Things you really want to know<br />Insightful Questions<br />Technical questions that show your CS knowledge<br />Passion Questions<br />Questions that show your tech passion<br />Soft Prep – The Company / Team<br />
    16. 16. Create Preparation Grid for Projects<br />+ (maybe) Behavioral Grid<br />Soft Prep – Yourself<br />
    17. 17. 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 />
    18. 18. How do you prep for coding questions?<br />What do you prep?<br />Interview prep – Tech SKILLS<br />
    19. 19. Data structures<br />Algorithms<br />Concepts<br />What to study<br />
    20. 20. How to implement<br />When to use (pros / cons)<br />Data Structures<br />
    21. 21. Implementation<br />Space vs Time Complexity<br />Algorithms<br />
    22. 22. Concepts<br />Not just a concept – know how to code!<br />
    23. 23. Don’t practice on computer!<br />
    24. 24. What do companies look for?<br />Interview – soft SKILLS<br />
    25. 25. The Interview: Chit Chat<br />Beginning + End of Interview<br />What? <br />Resume questions (hardest bug, etc)<br />General questions<br />Opportunity for you to ask questions<br />Why? <br />Get to know your personality / interests<br />RELAXES you<br />
    26. 26. 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 />
    27. 27. ituation<br />ction<br />esponse<br />The Interview: Chit Chat - Tips<br />S<br />structure your <br />responses<br />A<br />R<br />
    28. 28. How do you tackle hard tech questions?<br />Interview – tech SKILLS<br />
    29. 29. 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 />
    30. 30. Question Types<br />Standard Coding and Algorithms<br />“Reverse a linked list”<br />Object Oriented Design<br />“Design a parking lot”<br />Large System Design<br />“Design a program to crawl the web”<br />Trivia<br />“What does a “vtable” refer to in C++”<br />
    31. 31. Standard Coding <br />and Algorithms<br />Question Type #1<br />
    32. 32. 5 Steps<br />#1<br />Standard Coding <br />and Algorithms<br />
    33. 33. 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 />#1<br />Standard Coding <br />and Algorithms<br />
    34. 34. Algorithm Generation<br />#1<br />Standard Coding <br />and Algorithms<br />OMG! I have no idea how to solve this problem!<br />
    35. 35. Algorithm Generation<br />Pattern Matching<br />What problem is this similar to?<br />Simplify / Generalize<br />What if the data was a different type?<br />Base Case & Build<br />Can you do this just for element 1? 1 and 2? …<br />Data Structure Brainstorm<br />Go through all data structures – can they help?<br />#1<br />Standard Coding <br />and Algorithms<br />
    36. 36. Algorithm Generation<br />Pattern Matching<br />Write code to reverse the order of words in a sentence.<br /> Example:<br /> input: “iPad is an awful name”<br /> output: “name awful an is iPad”<br />#1<br />Standard Coding <br />and Algorithms<br />
    37. 37. Algorithm Generation<br />Simplify / Generalize<br />Write a program to remove the duplicate characters in a string without using any additional buffers.<br />#1<br />Standard Coding <br />and Algorithms<br />
    38. 38. Algorithm Generation<br />Base Case & Build<br />Design an algorithm to print all valid combinations of n pairs of parentheses.<br /> Example:<br /> input: n = 3<br /> output: ( )( )( ), ( ) ( () ), ( () )(), ((()))<br />#1<br />Standard Coding <br />and Algorithms<br />
    39. 39. Algorithm Generation<br />Data Structures Brainstorm<br />Design an algorithm to figure out if someone has won a game of tic-tac-toe. Make it as fast as possible.<br />#1<br />Standard Coding <br />and Algorithms<br />
    40. 40. Poking Holes<br />What’s 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 />#1<br />Standard Coding <br />and Algorithms<br />
    41. 41. Pseudo Code & Code<br />Pseudo code first – but say that!<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 />#1<br />Standard Coding <br />and Algorithms<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 />#1<br />Standard Coding <br />and Algorithms<br />
    43. 43. Object Oriented Design<br />Question Type #2<br />
    44. 44. OOD Steps<br />#2<br />Object Oriented Design<br />Clarifying Questions<br />What are the core objects?<br />What is the interaction (eg, methods)?<br />Walk through uses. Have you missed anything? <br />Are there any algorithms you need?<br />
    45. 45. OOD Example<br />#2<br />Object Oriented Design<br />Design the data structures for a restaurant<br />
    46. 46. Restaurant OOD<br />#2<br />Object Oriented Design<br />1. Clarifying Questions<br />How many guests?<br />Buffet or entrees?<br />What meals does it serve?<br />
    47. 47. Restaurant OOD<br />#2<br />Object Oriented Design<br />2. Core Objects<br />Guest<br />Party<br />Server<br />Table<br />Meal<br />Order<br />
    48. 48. Restaurant OOD<br />#2<br />Object Oriented Design<br />3. Interaction<br />Server assigned to Table by Host<br />Guests order Meal from Menu via Server<br />Oops! Forgot menu!<br />
    49. 49. Restaurant OOD<br />#2<br />Object Oriented Design<br />4. Walk Through Uses<br />Party enters with Guest(s). Assigned to Table. Order items.<br />
    50. 50. Restaurant OOD<br />#2<br />Object Oriented Design<br />5. Algorithms<br />How do you find a free table?<br />How do you remove out-of-stock item from menu?<br />
    51. 51. Large Scale<br />System Design<br />Question Type #3<br />
    52. 52. Large Scale Steps<br />#3<br />Large Scale <br />System Design<br />Simplify<br />Develop algorithm for simple case<br />Generalize<br />What problems do you hit?<br />Can you solve them?<br />
    53. 53. Trivia<br />Question Type #4<br />
    54. 54. Trivia<br />#4<br />Trivia<br />Hopefully you know the answer!<br />Practice more <br />Else…<br />Admit that you don’t know<br />Try to derive the answer<br />
    55. 55. (eg, things that wouldn’t fit in elsewhere)<br />FINAL THOUGHTS<br />
    56. 56. 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 />
    57. 57. 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 />
    58. 58. 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 />
    59. 59. 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 />
    60. 60. Technical Interview Prep<br />Things to know (data structures, algorithms, concepts)<br />Simple  Know Implementation<br />Complex  Know Concepts<br />Practice interview questions!<br />
    61. 61. 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 />
    62. 62. Other Resources<br />E-Book<br />Video<br />Mock Interviews<br />Slides posted at CareerCup.com/slides<br />www.CareerCup.com20% discount with code:<br />[removed from online posting – email me 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 gayle@careercup.com from your UPENN email address to get the code.<br />

    ×