最近刚跳槽刚结束,也拿到了几家一线大厂的核心的 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.其他
补充些其他点:
“整理不易,点赞三连↓