申请

要清楚一个科技公司需要什么样的候选人。

  • 优先级最高:coding经验多,对技术有热情
  • 优先级其次:聪明人,考算法,GPA没那么重要

如何展示出来?

  • 简历:内容最重要,有工业界大的project
  • 面试:

找工作途径(按优先级)

  • 找大佬referral
  • 学校co-op平台
  • 直接联系到recruiter email

找工作平台: Linkedin, Glassdoor, Indeed

算法面试

  • mobile develop, full stack 会面到
  • 30-60min, 1-2场
  • Phone call, 网上写代码;In person,白板上写或者电脑上code
  • 2-3道easy(考验细节),1-2道medium或1道hard
  • 主要考察data structure;还有algorithm,会综合数据结构

加拿大主要面试1道medium,主要考察easy和medium。美国主要考察medium和hard。有时候需要讲解思路即可,有时候需要把code写出来。

Evaluation:

  • 解题过程中对思路要讲清楚
  • code的评价,效率(最优解),正确性(白板面试没有那么重要,电脑上很重要,可以写test case测试),code style

入门书籍推荐:cracking the coding interview
面试之前:Leedtcode公司tag

要自己想test cases,不能太依赖于LeetCode

面试流程

根据岗位(domain knowledge):

  • Mobile:
  • Infrastructure:
  • Back-end:
  • Frontend:
  • Fullstack:

根据项目经历来问。

准备:申请工作时要仔细看job description,must have/简历上写的/常见通用的问题/system design(Grokking the Systems Interview)