cracking the coding interview n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Cracking the Coding Interview PowerPoint Presentation
Download Presentation
Cracking the Coding Interview

Loading in 2 Seconds...

play fullscreen
1 / 58

Cracking the Coding Interview - PowerPoint PPT Presentation


  • 98 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Cracking the Coding Interview' - susane


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
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

McDowell | CareerCup.com

my background
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

slides posted online
Slides Posted Online

posted at:

www.technologywoman.com

Click “Speaking Engagements”

McDowell | CareerCup.com

interview process
Interview Process

McDowell | CareerCup.com

big company evaluation coding
Big Company Evaluation (Coding)

Testing aptitude, not knowledge

McDowell | CareerCup.com

start ups coding
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?

but…

it varies!

McDowell | CareerCup.com

pms microsoft apms goog le
PMs (Microsoft) & APMs (Google)
  • Communication Skills
  • User-Focused Thinking
  • Passion for Technology
  • Analytical Skills
  • Technical Skills (position dependent)

McDowell | CareerCup.com

how you are judged
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

resumes application process
Resumes & Application Process

McDowell | CareerCup.com

how to get an interview
How to Get an Interview
  • Build something!
  • Make a kick-ass resume

Don’t waste your summers!

It’s really not that hard.

(So why are people so terrible at it?)

McDowell | CareerCup.com

how we review resumes
How We Review Resumes
  • 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

how cs resume should look
How CS Resume Should Look

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

GPAif at least 3.0

max (in-major, overall)

3 – 4 Projects

Courses & independent

Finished or unfinished

List of Technical Skills

Short! Cut the “fluff.”

behavioral questions
Behavioral Questions

McDowell | CareerCup.com

communication tips
Communication Tips
  • Goals:
    • Answer the question.
    • Deliver a *good* answer.
    • Communicate well.
  • Strategies:
    • Nugget First
    • S.A.R.: Situation, Action, Result

McDowell | CareerCup.com

preparing for behavioral qs
Preparing for Behavioral Qs
  • Create Preparation Grid for Projects

+ Behavioral Grid [for PM & less tech. roles]

McDowell | CareerCup.com

structure 1 nugget first
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

structure 2 s a r
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

technical skills interview prep
Technical SkillsInterview Prep

McDowell | CareerCup.com

how to study
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

data structures
Data Structures
  • How to implement
  • When to use (pros / cons)

McDowell | CareerCup.com

algorithms
Algorithms
  • Implementation
  • Space vs. Time Complexity

McDowell | CareerCup.com

concepts
Concepts
  • Not just a concept – know how to code!

McDowell | CareerCup.com

types of serious questions
Types of “Serious” Questions
  • Product Design Questions
  • Estimation Questions
  • Software Engineering Questions
    • Coding & Algorithms
    • Object Oriented Design
    • Scalability

McDowell | CareerCup.com

product design questions
Product Design Questions

How would you design an

calculator for the blind?

Design an elevator for a building.

Pick a Google product.

How would you improve it?

product design questions why
Product Design Questions: Why?
  • Communication & Structured Thinking
  • Ability to understand the user
  • Creativity
  • Business instincts / skills
product design qs approach
Product Design Qs: Approach
  • Ask questions to resolve ambiguity
  • Understand the user
  • Structure the problem
  • Solve piece by piece
product design qs example
Product Design Qs: Example

How would you design a calculator for the blind?

Step 1: Ask Questions

  • Adults? Children? Professionals?
  • Where are they using it?
    • School, work, etc.
product design qs example1
Product Design Qs: Example

How would you design a calculator for the blind?

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.?
product design qs example2
Product Design Qs: Example

How would you design a calculator for the blind?

Step 3: Structure

  • Find a structure
    • Otherwise, you’re just blabbering
  • One approach:
    • Make list of functions necessary
    • Discuss how to do input / output
    • Usability for non-blind
    • Summary
product design qs example3
Product Design Qs: Example

How would you design a calculator for the blind?

Step 4: Solve!

estimation questions
Estimation Questions

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?

estimation qs why
Estimation Qs: Why?
  • Problem Solving
  • Basic Quantitative Skills
estimation qs how to approach
Estimation Qs: How to Approach
  • Ask questions to resolve ambiguity
    • Don’t make assumptions (yet)
  • Outline / Structure Your Approach
  • Break down the components
    • Assume numbers when necessary
    • State assumptions explicitly
    • Round numbers to make your math easier
  • Sanity Check
    • Do your numbers make sense?
estimation qs example
Estimation Qs: Example

How much money does Gmail make from ads every year?

Step 1: Ambiguous Information

  • Profit or revenue?
  • Past year? Or average over history?
  • Gmail only? Or include Google Apps?
estimation qs example1
Estimation Qs: Example

How much money does Gmail make from ads every year?

Step 2: Outline Your Approach

(# of users)

x

(# clicks / year)

x

( $ / click )

estimation qs example2
Estimation Qs: Example

How much money does Gmail make from ads every year?

Step 3: Break down components

Estimate # of Gmail users in the US

  • Assume 300 million people in the US.
    • Exclude 0 - 12 years old and 65 - 75 years old
    •  ~ 200 million
  • Assume 80% of people use email
  • 80% of those have non-work account

… and so on …

estimation qs example3
Estimation Qs: Example

How much money does Gmail make from ads every year?

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)
technical questions
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

what does a good coder do
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

types of interview questions
Types of Interview Questions

“Design a Parking Lot”

“Reverse a Linked List”

“Design a

Web Crawler”

McDowell | CareerCup.com

types of interview questions1
Types of Interview Questions

McDowell | CareerCup.com

algorithm qs pattern matching
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

algorithm qs simplify generalize
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

algorithm qs base case build
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

algorithm qs data structure brainstorm
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

how to solve algorithm questions
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

object oriented design
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

object oriented design1
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

system design
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

system design1
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

whew all done
Whew! All Done!

<Gulp> This is a lot of stuff. Do I need to get everything right?

McDowell | CareerCup.com

slide54

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

slide55

So RELAX!

Interviews are supposed to be hard!

Everyone makes mistakes.

Everyone!

McDowell | CareerCup.com

final thoughts
Final Thoughts

McDowell | CareerCup.com

after your interview
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

other resources
Other Resources
  • CareerCup.com
  • Interview Videos
  • iPhone App
  • Resume Review
  • Mock Interviews

Sold Today

Signed (just ask!)

today

today

$15

$40

Readers love ‘em!

  • Or, stalk me online at…
  • twitter.com/gayle
  • facebook.com/gayle
  • technologywoman.com
  • gayle@careercup.com

McDowell | CareerCup.com