57
CRACKING THE CODING INTERVIEW Nitish Upreti

CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Embed Size (px)

Citation preview

Page 1: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

CRACKING THE CODING INTERVIEW

Nitish Upreti

Page 2: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Nitish Upreti@nitish

http://niti.sh/

Page 3: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Feedback Please !( I am a Data Junkie… )

www.meet.ps

Page 4: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Why this Talk?Why should you care ?

Page 5: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

For the love of Computer Science …

Page 6: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Building Amazing Products

Page 7: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Working with the best of People…

Page 8: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Have an Impact !

Page 9: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Head start in Building your career …

Page 10: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Money & Free Food ?

Page 11: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Start Your own Company ?

Page 12: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Working for the Top Technology Companies.

(Computer Science-Engineering majors are most pampered and well paid…)

Page 13: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Easy : Just clear the coding interview ?

Page 14: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish
Page 15: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Or Not ?

Page 16: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Some of us are scared !

How does the interview work?What do they judge me on?

Do’s / Don’ts

Page 17: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Are these interviews fair?Can you judge someone in few hours or a day?

Page 18: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Think of Interviews as acing SATs / GREs …(Whether they are any good is debatable!)

Page 19: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

GAME PLAN : 1. Study all my subjects well.2. Finish all Assignments/Projects.3. Get an awesome GPA.

Page 20: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

There is more to it …

Page 21: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Would you practice for a Sprint by running marathons each day?

Page 22: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Preparations Matter!“Sweat now so you don't bleed later.”

Take Away….

Page 23: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Lets get cracking!

Page 24: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Before the Interview…

Page 25: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

How to get interviews at the first place?

• Career fairs.• Referrals from friends and seniors. (Almost

guarantees an interview)• Be active on LinkedIn.• Visit Hackathons.• Start competing on HackerRank / TopCoder.• Email cto_first_name / ceo_first_name @startup

Page 26: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Quick Preliminaries• Perfect your resume (No spelling mistakes / grammar errors) ACM provides help!• Prepare Behavioral Questions

Judging You On :What you learned?Most Challenging Problems ?Most Interesting Problem ?Hardest Bug ?Enjoyed Most ?Conflict with Teammates ?

Page 27: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

So I got the call

Page 28: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

How does the Interview Process work ?( At least for the Popular Ones …. ) 

Page 29: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Interview Process

• Starts with an Email Conversation.• Scheduling day/time for Phone or Campus

screening• Internships : Usually 2 telephonic rounds.• Full time : 5-7 interviews• PSU Microsoft experience is an exception when

it comes to interviews. (Why?) • You are notified in a couple of weeks.• Details are in the Book!

Page 30: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

How should I prepare ?

Page 31: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

White Board Coding….(Without the cozy compiler : Marathon and Sprint metaphor again!)

Page 32: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish
Page 33: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

What should I prepare?

Page 34: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Almost Comprehensive List …

• Elementary DS :– Arrays, Stacks & Queues– Linked Lists– Trees ( Binary Trees, Binary Search Trees)– Hash Tables

• Asymptotic Analysis• Sorting with their Runtimes.• Recursion !• String Problems• Good to know : TRIE and Priority Queue ( BinaryHeap)

Page 35: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Advanced

• Divide and Conquer Algorithms.• Greedy Algorithms• Dynamic Programming• Graph Algorithms• Some Design Problems

Page 36: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

During the Interview …

Page 37: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Key things to keep in mind

• All questions are language independent.• Start Talking ( Interviewers nudge you towards

the right direction )• Think before you start / Don’t rush. • Propose a variety of solutions idea before

settling on coding a particular idea.• Sound Enthusiastic !• Ask questions in the end : How do you work?

What do you work on?

Page 38: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Make Or Break it !

• Think about Corner cases.• Test your code once your done.• Be Space / Time Efficient.( Distinguishes a Good Vs Bad Interview)

Page 39: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Lets dissect a real interview question !

Page 40: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Given a set of integers, is there a subset of size k whose sum is zero?Array = { 3, 9, 1 , 6 , 0, 2 }Sum = 8

Page 41: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

I am STUMPED !

Page 42: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Let us start talking ….

Page 43: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Brute Force Anyone ?

Find all the possible sums and if the given sum is one of them, we have a

solution!

Brute Force could be a good start. Don’t code it yet !

Page 44: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Runtime Analysis ?

O ( N2 )

Page 45: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Can we do better?At Google’s scale there will be Billion Numbers !

Page 46: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Sorting + Binary Search ?

O (N log N) + O (log N)

Page 47: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Can we do Even Better?

Page 48: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

How about a Hash Table Solution?

First Passes :Create a Map (HashMap)

Array = { 3, 9, 1 , 6 , 0, 2 }Hash = { (3,T) (9,T) (1,T)

(6,T) (0,T)(2,T) }Scan through the keys &

look for remainder.

Page 49: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Corner Case : Duplicate Elements !

Array = { 3, 9, 1 , 6 , 0, 4 }Hash = { (3,T) (9,T) (1,T) (6,T) (0,T)(4,T) }Solution : Store Count !

Page 50: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Complexity ?Time : O ( N )Space : O ( N )

Page 51: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

MUST READ Books …

Page 52: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish
Page 53: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish
Page 54: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Before I Finish …

Page 55: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

GSoC 2014 Is On!

Page 56: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish

Feedback / Questions ?

Page 57: CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish Upreti @nitish