Download presentation
Presentation is loading. Please wait.
Published byDuane Thornton Modified over 10 years ago
1
Cracking the Coding Interview Advice and Strategies for Software Engineering and PM Interviews McDowell | CareerCup.com | UC Irvine 1.23.2012 Gayle Laakmann McDowell Founder / CEO, CareerCup.com Author of The Google Resume and Cracking the Coding Interview
2
Technical Skills Behavioral Applying Process 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 – The Google Resume McDowell | CareerCup.com
3
Technical Skills Behavioral Applying Process Slides Posted Online posted at: www.technologywoman.com Click “Speaking Engagements” McDowell | CareerCup.com
4
Technical Skills Behavioral Applying Process EvaluationStructureApplyingExperienceResumeSoft SkillsPreparationInterviewTech SkillsPreparationInterview McDowell | CareerCup.com
5
Interview Process McDowell | CareerCup.com
6
Technical Skills Behavioral Applying Process Big Company Evaluation (Coding) McDowell | CareerCup.com Testing aptitude, not knowledge
7
Technical Skills Behavioral Applying Process Start-Ups (Coding) “Hit the ground running” – Do you know “their” technologies? Entrepreneurial – Have you started things? – How much direction do you need? Personality – Will you fit with the team? McDowell | CareerCup.com but… it varies! but… it varies!
8
Technical Skills Behavioral Applying Process PMs (Microsoft) & APMs (Google) Communication Skills User-Focused Thinking Passion for Technology Analytical Skills Technical Skills (position dependent) McDowell | CareerCup.com
9
Technical Skills Behavioral Applying Process How You Are Judged McDowell | CareerCup.com How did you do RELATIVE to other candidates on the SAME question? How did you do RELATIVE to other candidates on the SAME question? … it’s about how quickly you solved it relative to other candidates. It’s not about how quickly you solved the problem…
10
Resumes & Application Process McDowell | CareerCup.com
11
Technical Skills Behavioral Applying Process How to Get an Interview Build something! Make a kick-ass resume McDowell | CareerCup.com Don’t waste your summers! It’s really not that hard. (So why are people so terrible at it?)
12
Technical Skills Behavioral Applying Process How We Review Resumes 1.Pull resume out of giant stack 2.Spot-check: company names, positions, projects, schools. 3.Skim bullets to see if you’ve written real code. McDowell | CareerCup.com Interview Reject 4.Go to next resume & whine about how many more you have left. “Glanced at,” not read. 15 – 30 seconds
13
How CS Resume Should Look Short (1 – 2 line bullets) 3 – 4 Projects Courses & independent Finished or unfinished 3 – 4 Projects Courses & independent Finished or unfinished List of Technical Skills Short! Cut the “fluff.” List of Technical Skills Short! Cut the “fluff.” GPA if at least 3.0 max (in-major, overall) GPA if at least 3.0 max (in-major, overall) One Page Only! Unless > 10 years exp. One Page Only! Unless > 10 years exp. A Real Resume Format with organized columns A Real Resume Format with organized columns Focus on Accomplishments not responsibilities Focus on Accomplishments not responsibilities Observe: No Objective! Objectives / summaries are almost always useless. Observe: No Objective! Objectives / summaries are almost always useless.
14
Behavioral Questions McDowell | CareerCup.com
15
Technical Skills Behavioral Applying Process Communication Tips Goals: – Answer the question. – Deliver a *good* answer. – Communicate well. Strategies: – Nugget First – S.A.R.: Situation, Action, Result McDowell | CareerCup.com
16
Technical Skills Behavioral Applying Process Preparing for Behavioral Qs Create Preparation Grid for Projects McDowell | CareerCup.com OS ProjectAmazon Intern. Enjoyed Hated Most Challenging Hardest Bug + Behavioral Grid [for PM & less tech. roles]
17
Technical Skills Behavioral Applying Process Structure 1: Nugget First Lead with your “thesis” / nugget – Grabs the listener’s attention – Gives them context for where you’re going. McDowell | CareerCup.com A: I’m most proud of the way I re-architected the … Q: What accomplishment are you most proud of?
18
Technical Skills Behavioral Applying Process Structure 2: S.A.R. ituation ction esult McDowell | CareerCup.com S S A A R R What was the issue? What did you do about it? What was the impact?
19
Technical Skills Interview Prep McDowell | CareerCup.com
20
Technical Skills Behavioral Applying Process 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
21
Technical Skills Behavioral Applying Process Data Structures How to implement When to use (pros / cons) McDowell | CareerCup.com Linked ListsStacksQueues TreesTriesGraphs VectorsHeapsHashtables
22
Technical Skills Behavioral Applying Process Algorithms Implementation Space vs. Time Complexity McDowell | CareerCup.com Quick SortMerge Sort Tree Insert / FindBinary Search Breadth-First Search Depth-First Search
23
Technical Skills Behavioral Applying Process Concepts Not just a concept – know how to code! McDowell | CareerCup.com Threading System Design & Scalability Memory Management Recursion Probability + Combinatorics Bit Manipulation
24
Technical Skills Mastering the Interview McDowell | CareerCup.com
25
Technical Estimation Product Design Types of “Serious” Questions 1.Product Design Questions 2.Estimation Questions 3.Software Engineering Questions – Coding & Algorithms – Object Oriented Design – Scalability McDowell | CareerCup.com
26
Technical Estimation Product Design Product Design Questions How would you design an calculator for the blind? How would you design an calculator for the blind? Design an elevator for a building. Pick a Google product. How would you improve it? Pick a Google product. How would you improve it?
27
Technical Estimation Product Design Product Design Questions: Why? Communication & Structured Thinking Ability to understand the user Creativity Business instincts / skills
28
Technical Estimation Product Design Product Design Qs: Approach 1.Ask questions to resolve ambiguity 2.Understand the user 3.Structure the problem 4.Solve piece by piece
29
Technical Estimation Product Design Product Design Qs: Example Step 1: Ask Questions Adults? Children? Professionals? Where are they using it? – School, work, etc. How would you design a calculator for the blind?
30
Technical Estimation Product Design Product Design Qs: Example Step 2: Understand the User What’s important to a blind child? – Keeping up with the rest of the class – Not feeling “different” – Efficient input / output What about teachers, parents, classmates, etc.? How would you design a calculator for the blind?
31
Technical Estimation Product Design Product Design Qs: Example Step 3: Structure Find a structure – Otherwise, you’re just blabbering One approach: 1.Make list of functions necessary 2.Discuss how to do input / output 3.Usability for non-blind 4.Summary How would you design a calculator for the blind?
32
Technical Estimation Product Design Product Design Qs: Example Step 4: Solve! How would you design a calculator for the blind?
33
Technical Estimation Product Design Estimation Questions How many tennis balls can fit in an SUV? How many tennis balls can fit in an SUV? How much money does Gmail make from ads every year? How much do New Yorkers spend on electricity each year? How much do New Yorkers spend on electricity each year?
34
Technical Estimation Product Design Estimation Qs: Why? Problem Solving Basic Quantitative Skills
35
Technical Estimation Product Design Estimation Qs: How to Approach 1.Ask questions to resolve ambiguity – Don’t make assumptions (yet) 2.Outline / Structure Your Approach 3.Break down the components – Assume numbers when necessary – State assumptions explicitly – Round numbers to make your math easier 4.Sanity Check – Do your numbers make sense?
36
Technical Estimation Product Design Estimation Qs: Example Step 1: Ambiguous Information Profit or revenue? Past year? Or average over history? Gmail only? Or include Google Apps? How much money does Gmail make from ads every year?
37
Technical Estimation Product Design Estimation Qs: Example Step 2: Outline Your Approach (# of users) x (# clicks / year) x ( $ / click ) How much money does Gmail make from ads every year?
38
Technical Estimation Product Design Estimation Qs: Example Step 3: Break down components Estimate # of Gmail users in the US 1.Assume 300 million people in the US. – Exclude 0 - 12 years old and 65 - 75 years old – ~ 200 million 2.Assume 80% of people use email 3.80% of those have non-work account … and so on … How much money does Gmail make from ads every year?
39
Technical Estimation Product Design Estimation Qs: Example Step 4: Validate Numbers Could revenue be $5 billion? No, because… – Google’s annual revenue is ~$40 billion – $16 / US citizen (not just Gmail users) How much money does Gmail make from ads every year?
40
Technical Estimation Product Design Technical Questions 1.Ask Questions! – Questions are more ambiguous than they appear 2.Talk out loud – Show us how you think 3.Think critically – Does your algorithm really work? What’s the space and time complexity? 4.Code slowly and methodically – It’s not a race 5.Test your code – And make CAREFUL fixes. McDowell | CareerCup.com
41
Technical Estimation Product Design 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
42
Technical Estimation Product Design Types of Interview Questions McDowell | CareerCup.com Coding & AlgorithmsObject Oriented DesignSystem Design “Reverse a Linked List” “Design a Parking Lot” “Design a Web Crawler”
43
Technical Estimation Product Design Types of Interview Questions McDowell | CareerCup.com Coding & AlgorithmsPattern MatchingSimplify & GeneralizeBase Case & Build Data Structure Brainstorm Object Oriented DesignSystem Design
44
Technical Estimation Product Design Algorithm Qs: Pattern Matching McDowell | CareerCup.com 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. Coding & AlgorithmsPattern MatchingSimplify & GeneralizeBase Case & Build Data Structure Brainstorm Object Oriented DesignSystem Design
45
Technical Estimation Product Design Algorithm Qs: Simplify & Generalize McDowell | CareerCup.com Coding & AlgorithmsPattern MatchingSimplify & GeneralizeBase Case & Build Data Structure Brainstorm Object Oriented DesignSystem Design 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.
46
Technical Estimation Product Design Algorithm Qs: Base Case & Build McDowell | CareerCup.com Coding & AlgorithmsPattern MatchingSimplify & GeneralizeBase Case & Build Data Structure Brainstorm Object Oriented DesignSystem Design 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.
47
Technical Estimation Product Design Algorithm Qs: Data Structure Brainstorm McDowell | CareerCup.com Coding & AlgorithmsPattern MatchingSimplify & GeneralizeBase Case & Build Data Structure Brainstorm Object Oriented DesignSystem Design 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.
48
Technical Estimation Product Design Coding & AlgorithmsPattern MatchingSimplify & GeneralizeBase Case & Build Data Structure Brainstorm Object Oriented DesignSystem Design How To Solve Algorithm Questions McDowell | CareerCup.com 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.
49
Technical Estimation Product Design Object Oriented Design McDowell | CareerCup.com 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? Coding & AlgorithmsObject Oriented DesignSystem Design
50
Technical Estimation Product Design Coding & AlgorithmsObject Oriented DesignSystem Design Object Oriented Design McDowell | CareerCup.com 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?
51
Technical Estimation Product Design System Design McDowell | CareerCup.com 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. Coding & AlgorithmsObject Oriented DesignSystem Design
52
Technical Estimation Product Design System Design McDowell | CareerCup.com 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? Given millions of documents, find all documents which contain a list of words. Coding & AlgorithmsObject Oriented DesignSystem Design
53
Technical Estimation Product Design Whew! All Done! McDowell | CareerCup.com This is a lot of stuff. Do I need to get everything right? Coding & AlgorithmsPattern MatchingSimplify & GeneralizeBase Case & Build Data Structure Brainstorm Object Oriented DesignSystem Design
54
Technical Skills Behavioral Applying Process This is a lot of stuff. Do I need to get everything right? McDowell | CareerCup.com Evaluation is RELATIVE, not absolute. Evaluation is RELATIVE, not absolute. … it’s about how quickly you solved it relative to other candidates. It’s not about how quickly you solved the problem…
55
Technical Skills Behavioral Applying Process So RELAX! Interviews are supposed to be hard! So RELAX! Interviews are supposed to be hard! Everyone makes mistakes. Everyone! McDowell | CareerCup.com
56
Final Thoughts McDowell | CareerCup.com
57
Technical Skills Behavioral Applying Process 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
58
Technical Skills Behavioral Applying Process Other Resources Sold Today Signed! {ask to add your name too} McDowell | CareerCup.com CareerCup.com Interview Videos iPhone App Resume Review Mock Interviews today $15 5 stars! Or, stalk me online at… twitter.com/gayle facebook.com/gayle technologywoman.com gayle@careercup.com today $30
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.