Top Banner
Technical Interviewing: A Primer How to land that awesome job <3
45
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Technical Interviewing: A Primer

Technical Interviewing:

A PrimerHow to land that awesome job <3

Page 2: Technical Interviewing: A Primer

About Me

Page 3: Technical Interviewing: A Primer

So...what are we talking about?

Page 4: Technical Interviewing: A Primer

shibboleth (n): a word or custom [that] can be used to differentiate members of ingroups from those

of outgroups.

Page 5: Technical Interviewing: A Primer

Companies are more afraid of bad hires than missing a good hire.

The process reflects this.

Page 6: Technical Interviewing: A Primer

The ProcessThe sausage is you.

Page 7: Technical Interviewing: A Primer

The Four Stages of Tech Interviews

1. Non-technical screen ("are you in the ballpark")

2. Technical screen ("can you swing a bat")

3. Onsite Interview ("do you know the game")

4. Post-onsite interviews ("can you play with this team")

Page 8: Technical Interviewing: A Primer

Recruiter phone screen

10-15 min phone call

Gauge your seniority, interests, skills, career direction

See if the team/company is a good fit

HR questions: can you work in the US, do you need a visa, etc, etc

Get a rough idea of salary and compensation

Page 9: Technical Interviewing: A Primer

Caveats:

1. Recruiters are not your friend.

2. Be wary of independent recruiters.

3. Never disclose salary. Ever.

Page 10: Technical Interviewing: A Primer

Tech phone screen

45-90 min phone call (1 hr is typical) with an engineer

Online collaborative coding (Collabedit/Coderpad)

Goal: weed out weak candidates

Page 11: Technical Interviewing: A Primer

Onsite interview

All day (4-6 hours) in person

Typical: 3-4 modules of tech whiteboarding with one soft skills interview

But plenty of variation!

Page 12: Technical Interviewing: A Primer

The PrepWashboard abs not required.

Page 13: Technical Interviewing: A Primer

The Four Stages of Preparation

1. Pick a language, any language

2. Know your computer science fundamentals

3. Practice the mechanics (whiteboarding, lol)

4. Practice typical problems

Page 14: Technical Interviewing: A Primer

The Four Five Stages of Preparation

1. Pick a language, any language

2. Know your computer science fundamentals

3. Practice the mechanics (whiteboarding, lol)

4. Practice typical problems

5. Get punched in the face

Page 15: Technical Interviewing: A Primer

1. Know thy language

Page 16: Technical Interviewing: A Primer

What to Know

You will be judged on your fluency. Know the syntax & idioms

Know the standard library

Know common tasks: file i/o, regex, strings, math

Be able to talk about the guts: sorting algos, time complexity, concurrency, etc

Page 17: Technical Interviewing: A Primer

2. CS Fundamentals (and other things)

Page 18: Technical Interviewing: A Primer

What to Study

Coursera Algorithms Part I & II: the 1st course and 1/3 of the second

Programming Interviews Exposed: More of same, plus concurrency

O'Reilly Cookbook for your language

Lynn Root's post on what to study

Page 19: Technical Interviewing: A Primer

What to Study (Optional)

Real-world architectures

General approaches to scalability

Databases, SQL

Gotchas and edge cases (lookin at you, CSS/JS)

Page 20: Technical Interviewing: A Primer

3. Buy a whiteboard.

No, seriously.

Page 21: Technical Interviewing: A Primer

Practice the mechanics

You will be coding on a whiteboard. It sucks. Practice it in advance.

You will be coding on a plain text editor. It sucks. Practice it in advance.

Do practice problems on the whiteboard first, then check your answer on the computer

Page 22: Technical Interviewing: A Primer

4. Practice, Practice, Practice

Page 23: Technical Interviewing: A Primer

Practice problems

Elements of Programming Interviews

Cracking the Coding Interview

CareerCup, Glassdoor, Quora, Stack Overflow, Google

Code competition sites: TopCoder, HackerRank

Interview prep meetup groups

Page 24: Technical Interviewing: A Primer

5. Get punched in the face

Page 25: Technical Interviewing: A Primer
Page 26: Technical Interviewing: A Primer

The InterviewI am dah lahw.

Page 27: Technical Interviewing: A Primer

- Obligatory "Art of War" Quote

"If you know your enemies and know yourself, you will not be imperiled in a hundred battles... if you do not know

your enemies nor yourself, you will be imperiled in every single battle."

Page 28: Technical Interviewing: A Primer

Know your enemy

Read their tech blog

Learn about their products (and their competition)

Do every interview problem on Glassdoor, Careercup and Quora that you can find.

No seriously, do all of them.

Ask the recruiter what to expect from the interview.

Page 29: Technical Interviewing: A Primer

Know yourself

Interview first with a company you don't care about.

Know your stress triggers and how to manage them.

Managing stress and anxiety is a non trivial part of tech interviewing!

Be kind to yourself. Failing at an interview is not failure as a person. Learn and move on.

Page 30: Technical Interviewing: A Primer

Rachel's patented* single simple formula

for all tech interviews, ever**

* not really** yes really

Page 31: Technical Interviewing: A Primer

0. Intro yourself

Page 32: Technical Interviewing: A Primer

Have a canned intro about yourself.

Talk about a project you're working on.

Show excitement & interest.

Page 33: Technical Interviewing: A Primer

1. Make sure you're solving the right

problem.

Page 34: Technical Interviewing: A Primer

Listen to the problem. Yes, this needs to be said.

Repeat it back. "Is that right?"

Think about what wasn't said. Ask questions.

"Here's how I'm thinking of approaching it. Is that ok?"

Page 35: Technical Interviewing: A Primer

2. Talk it out

Page 36: Technical Interviewing: A Primer

Do the entire interview as a stream of consciousness. They're judging you on your ability to think. Show it.

If you're confusing yourself, you're confusing the interviewer. Talk it out.

Periodically check in with the interviewer. "Do you want to correct anything here?"

Ask if you get lost or confused. They will likely give you hints.

Page 37: Technical Interviewing: A Primer

3. Test it

Page 38: Technical Interviewing: A Primer

Write test cases.

Be able to test your code on a whiteboard.

Check both working cases and edge cases.

Ask "Have I missed anything?"

Page 39: Technical Interviewing: A Primer

4. Make it faster

Page 40: Technical Interviewing: A Primer

Know what time complexity (Big O) your solution is.

Ask out loud: "Can I do better?"

Your interviewer may jump in with suggestions.

Page 41: Technical Interviewing: A Primer

5. "Do you have questions for me?"

Page 42: Technical Interviewing: A Primer

The answer to "do you have questions for me" is always yes.

You can ask just about anything. It's okay to ask tough questions.

Ask different people the same question. See if you get the same answer.

Julia Evans: Questions I'm Asking in Interviews

Page 43: Technical Interviewing: A Primer

Additional Resources

Julia Grace's An Unconventional Guide for Getting a Software Engineering Job

Page 44: Technical Interviewing: A Primer

Questions?

Page 45: Technical Interviewing: A Primer

Attributions

Dennis Burger https://www.flickr.com/photos/dennisburger/5499489837