Datawhale干货 

作者:小白泽,复旦大学,Datawhale成员


最近刚跳槽刚结束,也拿到了几家一线大厂的核心的 offer,总结一下经验希望能帮到其他同学。

这里不介绍具体的面试问题,只介绍些方法论。

1.自身情况

简单介绍下自身情况:国内 top3 硕士(众所周知,top 3 共有九所高校),某二线互联网企业算法工程师,刚工作不到一年。

很多同学可能觉得工作不到一年就跳不太好,但我们要学会辩证的看待问题,如果仅以时间作为考量因素会很影响自己的决策。

马老师说留不住员工要么是受委屈了,要么是钱没给够。这个观点其实不太适合刚毕业的同学,毕业的前五年是知识积累最快的五年。这个阶段不用考虑太多的家庭、孩子、父母等外界因素,自己的身体也跟得上,如果不能在这五年内快速成长,以后的路会难走很多。

所以,如果确定了自己所处环境没办法给自己带来快速的成长,那么跳槽会是一个明智的选择。

2.如何准备

介绍下如何准备,主要从岗位选择和面试准备两个方面进行介绍。

2.1 岗位选择

我投递岗位的时候,既投递的与自己简历匹配的方向,也投递了自己想去的方向。前者是为了保底,后者是为了争取。

值得注意的是,当我们手上的项目与想从事的方向不匹配时,应该尽早准备并且花足量的时间去看书学习,而不是打算跳槽了再去准备。

岗位投递这块不建议海投,一线互联网公司一家选一个岗位就已经够面的了。在投递的过程中尽量找内推,联系到相关部门的同学,最好直接把简历递给部门负责人,顺便还可以聊聊部门在做什么,几点下班,以及是否符合自己的预期。如果找不到合适的岗位,那把简历给 HR 让他帮你匹配也行,但这是下策,只适合没有方向的同学。

2.2 面试准备

算法面试主要分为三大块:基础、项目和编程。

2.2.1 基础

基础这块,以算法工程师为例,主要是包括编程语言、数据结构、机器学习和概率论。这些东西主要是靠自己平时积累,但也不是没有临时抱佛脚的机会。

最简单的方法就是直接谷歌“xxx 面试高频题”,然后拿个小本本记录下问题和答案,如果能够掌握便可覆盖 90% 的面试问题。(但事实是看了就忘

机器学习这块的准备是要结合简历的,简历中涉及的模型一定要吃透,要做到怎么问都不怕的境界。当然也要防止灯下黑,比如问你:XGB 如何做(多)分类预测,你回答个显然就会显得很尴尬。

机器学习基础知识建议去看知乎阿泽的文章,非常详细,面试 90% 的机器学习问题都在里面,多看几遍就行。

2.2.2 项目

项目这块好好准备,可以用 STAR 法则。

  • 明确任务:任务类型是什么;产生任务的背景是什么;当时情况怎么样;
  • 明确行动:现状分析;决定某种行动方式;
  • 说明结果:结果怎么样;从这个项目中,你学到了什么。

另外再准备下项目的难点,面对难点你是如何分析思考的,如何设计解决方案。

最后再复盘下看看这个项目的其他尝试、做的不好的地方,以及还可以怎么改进。

2.2.3 编程

面试的时候,如果题目做不来那基本上就是挂了,所以其重要性不言而喻。

但也别太担心,我准备的时候也只刷了 200 题 leetcode,足够覆盖 90% 的面试了。

编程这块:我主要看了《labuladong 的算法小抄》和《leetcode 101》,各刷一遍,不会的多看几遍就差不多了。

反正别傻乎乎的从头到尾刷 leetcode 就行。

2.2.4 其他

有一些问题一定要提前准备下,这边列几个,没有标准答案,言之有理即可:

  • 为什么跳槽?上家公司有什么不满意的地方?当时为什么选择进入你现在的公司?选择逻辑是什么?进去后是否符合你当时的预期?以及如何选择下家公司?对下家公司有什么期待?
  • 工作的这段时间碰到了哪些工作压力?以及如何解决的?
  • 你的领导优点和缺点?你是如何与领导相处的?意见不一致怎么解决?
  • 为什么要这个薪资/职级?

3.面试技巧

面试官考察候选人的最高指标是:是否想与之共事。其次思维逻辑、编程能力、沟通能力。

这里主要介绍一些沟通技巧。

面试过程中碰到不会的问题,不要呆住让面试官等太长的时间,你可以把自己的想法/思路说出来,实在想不出来就问面试官要点提示,或者跟面试官说 A 不太了解,但我对 B 比较了解(切忌对 B 是要真的了解,否则就真的呵呵了)。

面试结束后面试官会问你有什么想问的吗?碰到这种情况切忌收起你的好奇心,那种“如何处理不同部门之间的利益关系?”、“如何制定部门 OKR?”、“如何去衡量部门产出?”等问题就别问了,“没什么想问的”这种话也别说。以防万一可以问些简单的问题,比如说团队构成啊、目前的业务以及未来的规划等。也可以试探性的问些面试反馈和以后需要注意的点。要注意拿到 offer 前你就是个小白羊,拿到 offer 后才是双选。

另外,如果是非研究型岗位的话,不要去死磕技术,我们在公司做项目也能够体会到,实际问题并不是像打比赛那样给你安排的明明白白,需要你把抽象的问题具体化,自己定义各类指标,并且量化。

然后,不要忽视 HR 面,很重要,虽然出了阿里外,其他公司的 HR 基本上没有一票否决权,但 HR 面或多或少会有些影响。HR 面大概率会让你介绍下自己的项目,从而考察你的沟通能力,所以建议提前用费曼方法演练下自己的项目。

关于薪水,报价的时候言之有理,准备好如何回答:“为什么要那么高?”,“给不到这个价考不考虑?”之类的问题。要想清楚自己想拿多少钱,定薪逻辑是什么。

4.其他

补充些其他点:

  • 同一家公司可以串行面多个部门,所以一个部门挂了也不用太担心,换个部门面就行;
  • 面试有的时候很看运气,可能面试官时间有点赶,当天心情不太好,或者你不小心说错话了觉得你某个点不行。碰到这种情况时不要气馁,不要因为几次面试失败而丧失信心,好好复盘,继续冲就完事了;
  • 至少从目前来看,各大公司还是比较缺人的,所以如果简历不匹配的岗位恰好缺人,那么多打牢下自己的基础,让面试官觉得你基础不错也是很有希望的;
  • 要记住“make your boss a winner”,整理下自己的优点,明白下自己能为部门/公司带来些什么;
  • 百度的面试体验是真的好,建议大家投递下百度去感受下,面试官问的问题真的很能体现出面试官/部门的水平。

2020年社招面试技巧总结!_机器学习

“整理不易,三连