Interview Preperation

The following content is selected or summarized from Cracking the code interview.


The Interview Process

Overview

The form of interview
Most of the interviews are screening interviews. However, the “screening interview” often involves coding and algorithms questions.
Some of the companies will take advantage of online synchronized document editors, while others will expect us to write code on paper and read it back over the phone. Some interviewers even give us “homework” to solve after we hang up the phone or just ask us to email them the code we wrote.


How Questions are Selected

The questions the interviewers get are the same as what we get, typically some data structures and algorithms or database problems, which depends on the specific company.


Timeline and Preparation Map

Timeline and Preparation Map1

Timeline and Preparation Map1


The Evaluation Process

The candidates will be evaluated by four aspects, prior experience, culture fit, coding skills and analytical ability. The coding skills and analytical ability are the most important parts.


Incorrect Answers

No “correct” or “incorrect”. We should care about how optimal of our final solution was, how long it took us to get there and how clean our code was.
Our performance is evaluated in comparison to other candidates.


Dress code

Dress code


Top 10 Mistakes

  1. Practing on a computer
  2. Not Rehearing Behavioral Questions
  3. Not Doing a Mock Interview
  4. Trying to Memorize Solutions
  5. Not Solving Problems Out Loud
  6. Rushing
  7. Sloppy coding
  8. Not Testing
  9. Fixing MIstakes Carelessly
  10. Giving up

F&Q

  • Should I tell my interviewer if I know a question?
    yes
  • What languages should I use?
    java>c++
  • I didn’t hear back immediately after my interview. Am I rejected?
    No. Always follow up.
  • Can I re-apply to a company after getting rejected?
    Yes, but typically have to wait a bit(6 months ~ 1 year).

Technical Questions

Five Algorithm Approaches

  1. Examplify :举一个特殊的例子
  2. Pattern Matching:找一个相似的模式
  3. Simplify and Generalize:把问题简化成一个简单形式
  4. Base Case and Build:如果n=1,n=2正确,可以推出n=3正确,我们可以一直推展到如果N-1正确,那么N正确
  5. Data Structure Brainstorm:首先你要了解各个数据结构的性质

What Good Coding Looks Like

General properties:

  • Correct
  • Efficient in terms of both time and space. This “efficiency” includes both the asymptotic (big-O) efficiency and the practical.
  • Simple
  • Readable
  • Maintainable

Use Data Structure Generously
要敢于创建自己的数据结构使得代码变得更优化

Appropriate Code Reuse
尽量让代码可以重复的利用,以方便维护

Modular
让代码的不同功能模块在不同的函数中实现可以让测试变得更加容易

Flexible and Robust
尽量让代码的具有更广泛的适用性,不要局限于某个特例。e.g. n=N 就要好过 n=3。尽量用template或generics来实现。
如果general case的复杂性过大,那还是选择特例比较好。

Error Checking
如果实现error checking比较简单(simple if-statement)那么可以直接去实现。如果相对复杂,那么就要留下足够的空位并告诉interviewer你会在之后实现它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值