2019 Spring Interviews

2019年春季学期,为了找算法类岗位全职工作做了很多准备,现在总结如下。

时间线

  • 秋招:提前批6月底开始,正式批7月中左右,一直持续到年底。
  • 春招:3月~4月,一直持续到5月左右。
  • 暑期实习一般都是春季招,秋季以全职招聘为主。
  • 招聘时间线:笔试、技术面(多轮)、HR面。很多公司笔试会有统一的轮次安排,所以要赶在每一轮之前投简历,然后等待HR简历筛选完成(可以通过找内推免简历筛选),再参加笔试(有的公司有超级内推或者类似组、部门直招,可以免笔试)。算法岗笔试一般考编程、概率统计和智力题。

找信息

  • 个人觉得牛客网讨论区很好用,各种实习全职和内推信息都有。
  • 各家公司自己的微信公众号或小程序:第一信息源,同时有助于追踪应聘流程。
  • 美国求职:handshake、Glassdoor等。这方面我不是特别清楚,虽然我人在纽约,但是工作倾向还是国内。

做准备

  • 基本信息:简历一定要精心准备,最好中英文双份(英文用于找外企);简历用词要斟酌,详略得当、用词不要太夸大。
  • 理论基础:熟悉常见的排序、搜索、DP和图算法,会使用队列、堆和栈等数据结构。常考点包括二分搜索、快排和数组随机找第K大问题。
  • 模型基础:因为我找的是ML/NLP相关的岗位,所以常见的ML模型都要会。能手算朴素贝叶斯和决策树,可以口头解释SVM、Kmeans、CNN和LSTM等模型,能回答GBDT和随机森林的区别、深度学习里梯度消失和梯度爆炸原理等基本问题。
  • 编程基础:找一般企业全职/BATG等实习,Lc200左右;直接找BATG全职,Lc500。另外企业的往年笔试题要做一下,熟悉一下编程平台以及比较长的题目背景描述。
  • 项目基础:有一定的项目经历。比如我有一些机器学习和自然语言处理相关的经历,要对自己做过的项目了如指掌,涉及到的技术(框架、模型和语言)要都懂而且是特别懂。同时,在项目中遇到过什么挫折、自己担任团队中什么角色、收获了什么、如何改善方法等问题都应该提前有所准备。

经验汇

  • 投递简历:大小公司都要投,多一家就是多一个机会。找工作是一个历练的过程,慢慢打怪升级,最后才能拿下大offer。而且很多时候过了这村就没了这店,千万不能觉得公司小就不投了,大不了拿到了然后不去。
  • 技术面试:考的东西上面‘做准备’都提到了,另外就是别紧张、有信心就好,很多面试官去年就是一样的被面试者。技术面最难的点在于现场考算法题,很可能第一时间想不出来,克服的办法是先给出一个暴力方法,然后和面试官一起探讨来找出优化解。面试不会要求100%答出所有的,或是一下就给出最优解,考的关键是思维逻辑能力和短时间的理解能力。
  • 题目汇总:
    1. 随机找出第K大数字
    2. 二分搜索:对于单调递增的整数函数F(x),输入y,找到t,使得|y - F(t)|最小
    3. DP:给一个数组,每次跳x~y步,问最大和
    4. 图:DFS找联通分支个数
    5. 区间合并
    6. 扫描线算法:用二分查找实现
    7. DP:矩阵链问题
    8. 十亿级数据找出TopK,找出频率最高的TopK
    9. 一个数表示成若干个连续正整数的和,总共有几种表示方法
    10. 二分查找:十万个不重叠的区间,给定一个新数字,判断落在哪个区间