5. Gayle Laakmann McDowell 5gayle in/gaylemcdgayle
How to Get an Interview
Your Background
Education
Work Experience
Projects
Github/ OnlineProfile
Make a great resume
McDowell | CareerCup.com
7. gayle in/gaylemcdgayle 7Gayle Laakmann McDowell
How We
Review
Resumes
1. Pull resume out of giant stack
2. Spot-check:
companies, projects, etc.
3. Skim bullets to see if you’ve written real
code.
4. Go tonextresume & whine abouthowmany
moreyouhaveleft.
InterviewReject
“Glancedat,”not
read.
15seconds
8. How CS ResumeShouldLook
Short
(1 – 2 line bullets)
3 – 4 Projects
Courses & independent
Finished or unfinished
List of Technical Skills
Short! Cut the “fluff.”
GPA if at least 3.0
max (in-major, overall)
One Page Only!
Unless > 10 years exp.
A Real Resume Format
with organized columns
Focus on Accomplishments
not responsibilities
Observe: No Objective!
Objectives / summaries
are almost always useless.
9. gayle in/gaylemcdgayle 9Gayle Laakmann McDowell
Talking
to
Recruiters
Show:
What you’vedone(mobileapp?Show
it!)
What you’reexcitedabout
Have a “pitch” ready
Weird is okay
(arrogantisnot)
McDowell | CareerCup.com
12. Gayle Laakmann McDowell 12gayle in/gaylemcdgayle
Your Past Work
1 – 2 Hard Projects
Hard/ cool
Youwerecentral
Technical depth
All Past Work
Challenges,architecture,
tradeoffs,mistakes,successes,
motivations
Whatdid YOU do?
14. gayle in/gaylemcdgayle 14Gayle Laakmann McDowell
How
You’re
Judged
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…
18. Gayle Laakmann McDowell 18gayle in/gaylemcdgayle
Knowledge Questions
If you list it, know it If you don’t know it,
admit it
Deriveitifpossible.
22. gayle in/gaylemcdgayle 22
z
Gayle Laakmann McDowell
How
To
Approach
① Scope the Problem
Askquestions
Make appropriateassumptions
② Define Key Components
Can besomewhatnaïve
③ Identify Issues
Bottlenecks,tradeoffs
④ Repair & Redesign
DiscussTop->Down
23. Gayle Laakmann McDowell 23gayle in/gaylemcdgayle
How to Act
DRIVE
Leadtheprocess
Be openaboutissues
TEAMWORK
Beopentofeedback
Tweak asnecessary
24. gayle in/gaylemcdgayle 24
z
Gayle Laakmann McDowell
How
To
Prepare
Read about design of major
companies
Twitter,Facebook,Quora,Google,etc.
ThinkaboutWHY they’redesigned
thatway
Learn/review key concepts
Taskqueues,databases,sharding,etc.
Practice questions
30. gayle in/gaylemcdgayle 30
z
Gayle Laakmann McDowell
What
is NOT
expected
To know the answers
To solve immediately
To code perfectly
(It’snice.Itjustdoesn’t
happen*.)
*Okayfine.Ithappenedonce,in2000+hiringpackets.
31. gayle in/gaylemcdgayle 31
z
Gayle Laakmann McDowell
What
IS
expected
Be excitedabout hard problems
More thanjust “correct”
Drive!
Keeptrying when stuck
Write real code
Showmehowyouthink!
40. Gayle Laakmann McDowell 40gayle in/gaylemcdgayle
Techniques to Develop Algorithms
Optimize
A. BUD
B. Space/time
C. Doityourself
Solve
D. Recursion
E. Solve “incorrectly”
F. Other data structures
Pushyourself!
41. Gayle Laakmann McDowell 41gayle in/gaylemcdgayle
(A) Look for BUD
Bottlenecks
Unnecessary work
Duplicated work
54. Gayle Laakmann McDowell 54gayle in/gaylemcdgayle
(C)Do it yourself
Findpermutationsof swithinb
s = abbc
b = babcabbacaabcbabcacbb
Findthem!
… now how didyou actuallydoit?
55. Gayle Laakmann McDowell 55gayle in/gaylemcdgayle
Techniques to Develop Algorithms
Optimize
A. BUD
B. Space/time
C. Doityourself
Solve
D. Recursion
E. Solve “incorrectly”
F. Other data structures
Pushyourself!
56. Gayle Laakmann McDowell 56gayle in/gaylemcdgayle
(D) Recursion/ Base Case & Build
Subsets of a set
{} {}
{a} {}, {a}
{a, b} {}, {a}, {b}, {a, b}
{a, b, c} …
Subsets of {S1…Sn-1} + Sn to each
• Careful!“This sounds recursive” is 50%
accurate
• Bottom-up approach, top-down
implementation
57. Gayle Laakmann McDowell 57gayle in/gaylemcdgayle
(E) Solve “incorrectly”
① Develop incorrectsolution
② Identifywhy preciselyit’s incorrect
③ Repair
④ (& Repeat)
58. Gayle Laakmann McDowell 58gayle in/gaylemcdgayle
(E)Solve “incorrectly”
Random node in BST
Try: flipcoin
Coin=Heads
Branch Left
Coin=Tails
Branch Right
59. Gayle Laakmann McDowell 59gayle in/gaylemcdgayle
(E)Solve “incorrectly”
Random node in BST
Try: random number in {0, 1, 2}
R=0
Branch Left
R=2
Branch Right
R=1
Return root
60. Gayle Laakmann McDowell 60gayle in/gaylemcdgayle
(E)Solve “incorrectly”
Random node in BST
Try:
Return rootwith1/n probability
Then flipcoin(heads left,tails->right)
61. Gayle Laakmann McDowell 61gayle in/gaylemcdgayle
(E)Solve “incorrectly”
Random node in BST
Try: pick random # 0 throughn-1
R=0
Return root
R>left.size
Branch right
1<=R<=left.size
Branch left