大家好,我是卖萌屋的小Q,是夕小瑶学姐的同实验室师弟(2020届)。在学姐的建(bian)议(ce)下写了本文,希望能够给师弟师妹提供一些启发,秋招之路能够更加顺利~
往昔的回忆使我们激动,我们重新踏上旧日的路,一切过去日子的感情,又逐渐活在我们的心里;使我们再次心紧的是,曾经熟悉的震颤;为了回忆中的忧伤,真想吐出一声长叹…… 感谢一路上曾经鼓励、帮助过我的人。愿我们在彼此追梦的道路上,一直走下去。
恍惚间,距离秋招的第一次面试已经过去快两年了。如今再次回想,依旧感触良多。这周也是受邀给实验室的师弟师妹讲了讲秋招那些事,索性把整理的资料的汇总成文,希望能帮助到更多的同学。
先介绍一下背景,小Q在整个秋招过程中,共参加了15场面试,vivo、阿里、百度、华为、京东、陌陌、追一、美团、搜狗、依图、拼多多、顺丰、字节、Airbnb、Google。最后侥幸获得了13家公司的offer,其中8家ssp,4家sp,1家白菜,薪资待遇30+W —— 60+W不等。
现在,我们回到题目,秋招重要吗?如说读博是为了更高的学术追求的话,那么90%的同学读硕可能只是为了提高一下学历,而目的自然而然是为了找一份更加好的工作。从这一点上讲,决定了你人生中第一份工作的“秋招”自然是件大事。秋招重要性不言而喻,但是,在战略上要藐视敌人,在战术上要重视敌人,当然也不要觉得如临大敌,惶惶不可终日。摆平心态,一步一个脚印,要相信天道酬勤。
本文将从前期准备、中期面试、后期选择三部分讲讲秋招过程中你所可能遭遇的事情。当然,我也仅仅参加过十几场面试,水平、视野有限,不能面面俱到,如有错误,欢迎大家指出。
这里需要明确的目标主要指两方面:
首先,要明确的是你具体想从事的岗位,安全、测试、开发or算法?算法根据领域的不同又可以分为语音、ML、CV、NLP等,而具体的算法岗又可以根据实际工作中所面临的场景,又有多种划分,具体可以参考夕小瑶学姐之前写的这篇《拒绝跟风,谈谈几种算法岗的区别和体验》
其次,要明确的是你想从这一份工作中获得什么。是高额的薪水报酬?快速的技术提升?稳定的工作节奏还是那极其短缺的北京户口?这些都无可厚非,且每个人的选择都不尽相同,但是你一定要首先确定你真正想要的是什么,并为之做出合理的选择。对于大小厂的选择,可以参考卖萌屋之前推过的《在大厂和小厂做算法有什么不同?》
这里的基础包括三个部分:coding能力、基础知识、项目/竞赛。
Coding能力作为作为计算机专业学生的基础能力,在招聘过程中受到了越来越高的重视。其重要程度体现在其贯穿了整个招聘阶段,从笔试的编程、到面试的coding面,代码能力始终是互联网公司招聘的技术岗的基础。毫不夸张的说,我在面试阶段,我所接触的比“简单介绍一下自己吧...”频次更高的一句话是“下面,我们来做一道编程题吧...”。
编程能力在我看来不是一朝一夕能练成的,当然如果你为了应付面试,其实刷完leetdode前200道题和《剑指offer》、《程序员代码面试指南》也够了。
但这里我更推荐把coding当作一种基本能力,一种基本的日常。因为我本科是做ACM的,也侥幸拿过一些奖,之后虽然退役了,但是为了保持这种Coding的习惯,我会时不时的去刷刷leetcode周赛,我觉得保持一种时刻Coding的状态是非常有必要的。这一点也为我后期准备面试节约了大量的时间。
当然,如果你是单纯为了应付面试,题海战术则是捷径:
首先,将题目分类型后(树、链表、回溯、图论、动态规划等)进行单类型突破,突破过程可以分为三轮进行:
这里记得要多看看最优解法,我始终认为最快掌握一门技能的方法就是模仿,有时候自己写10000行代码,不如看大牛写100行代码进步快...
基础知识的重要性不言而喻,我本身喜欢看书,而不喜欢看视频,觉得看书能更细致全面的掌握知识点。当然这个因人而异。以NLP岗位为例,我主要看如下书籍:
基础知识的复习是一个耗时且极需耐心的过程,对于部分经典模型的推导,自然是要烂熟于心。其次,就是要多复习多总结,不然知识点一多则很容易遗忘。
同时,学会利用搜索引擎去检索前人的总结的精华也是一个快速掌握一个知识点的捷径。
对于项目和比赛的准备也有充分,因为每个人所做过的项目和经历的比赛不一样,这里我就单从大方向给予一些准备时的建议。
可以根据STAR法则分四个维度Situation(情境)、Task(任务)、Action(行动)、Result(结果)来梳理自己的项目经历。即对于曾经做过的项目,首先要对项目整体有一个宏观的认识;其次,对你负责的那一部分内容要有全方位、精细化的掌握;最后,你需要归纳出项目的成效与自己的贡献。如果条件允许,可以对项目进行的复现,以便更深入的了解模块的作用和运行原理。
竞赛同理,最后就是一些常用的比赛模型gbdt、xgb、lgb、fm、ffm等一定要了解,遇事不决看源码!
当正式秋招开始时,投递简历的顺序也是有讲究的。
对于公司招聘的方式来说,一般分为两种:
(1)在公司统一入口投递简历,再由公司统一分发至各个部门。也就是说这种情况,对于这家公司来说,你只有一次面试的机会。在秋招正式批中往往是这种方式。
(2)公司以部门为单位分开进行招聘,面试失败这一个部门后,你仍然可以投递其他部门。但是你每一轮的面试评价都会保留在系统,如果在前期没有准备充分的情况下盲目面试,一份很差的面评记录会极大的影响其他部门对你的录用情况。这种类型的招聘往往出现在秋招提前批的面试中。
那么有同学会问了,那我越晚投递准备的不就越充分吗?
但事实是,对于很多公司来讲,招聘并不会设立明确的截止时间点,也就是说如果前面的面试的同学比较优秀,已经达到了面试官要求的水平,则公司就会发放offer,那么这时候HC就会-1,HC越少意味着你入选的几率也越小,所以一定不能盲目推后投递时间。
对于时间的拿捏,依照公司开始招聘时间的不同、个人准备情况的不同会有很多差异。这里我只说一下我的投递顺序:
我会将所有公司分成三类:好感度一般的A类公司、好感度不错的B类公司、好感度MAX的C类的公司。
我面试的前2家公司,都属于A类公司。然后再开始尝试B类公司,值得一提的是B类和C类公司的面试,我是穿插进行的。因为面试状态也是存在起伏的,并不是说越到后期面试状态越好。
提前批的面试能把握的还是尽量把握,哪怕你觉得自己只准备了60%,也要尽可能的试试。
卖萌屋的lulu之前写过的《Google、MS和BAT教给我的面试真谛》我觉得给我们做了很好的解答,下面给出部分精彩内容:
首先呢,毋庸置疑,我们面试肯定是要检验候选人是否有过硬的专业技术。算法、项目经历,不同的公司、不同的职位有不同的侧重,但是具体的专业技术的考核肯定是逃不开的。
可是除此之外呢?除了显式的技术考核以外,还有很多往往被我们忽略的隐形考核。小鹿觉得主要是思维方式和交流能力这两点。
一场面试,面试官其实只需要得到一个问题的答案,那就是和你一起工作是否开心。关于这个问题,有的外企会直接作为面试记录。虽然我们国内的企业不会这么直接,但是小鹿觉得这确实是面试中最直击灵魂的拷问。
面试实际上是通过提出问题、回答问题,在你来我往中进行交流,模拟实际工作的情形。那么当面试官抛出话碴,提出一个问题之后,我们应该怎么更好的完成我们之间的对话呢?
首先,我们可以尝试着去复述(当然不是一字不变的重复),用自己理解的语言去确认是否清楚的理解了面试官的问题。其次,这个问题可能存在一些没有定义清楚的模糊地带,一定要逐个向面试官去确认。当问题已经比较清晰的情况下,我们可以提出一个解决方案,这个方案可以是非常naive但是只要确实可行就ok啦。
当然啦,实际中我们需要精益求精寻求更优的解决方案。但是大家不用太有压力,我们可以和面试官一起,沟通交流,碰撞思维的火花,共同讨论出一个较优的方案。最后实现(写code),测试,over~~
所以,划重点啦,面试的正确姿(步)势(骤)应该是这个样子滴~~
平等:对于一场面试,我觉得是首先要做到就是摆正心态,你如果能把他当做一场平等的技术交流的话,那么你的心态上至少是轻松的。
谦逊:要知道,你的面试官或许不熟悉你的研究领域,那么你们在探讨项目经历的时候,可能会问出一些naive的问题,这时候你作为被面试者,自然要保持一种谦虚的态度,以尽量直白的语言能给面试官讲清楚你的工作也是一种表达能力的体现。
冷静:不管是遇到编程题没思路,还是开放性问答遇到了迷茫。你首先要使得自己冷静下来,尽可能的找面试官需求更多的信息。大多数面试官并不会很为难校招生,毕竟都是从校招一步步走来。一个优秀的面试官,在被面试者遇到难题时,一定是会一步步进行引导的。不然真四目相对,沉默半个小时,你的面评他怎么写呢?
当经历过惨烈的6-10月之后,你的秋招也即将在11月前后画上一个逗号。
没错,是逗号!不要觉得拿到offer就万事大吉了,小Q窝在秋招期间的每一天几乎都可以倒头就睡,吃嘛嘛香,但是最后选择offer的时候,却连续失眠了好几天...对于后期offer的选择,其难度并不亚于任何一场面试。在这时候,选择真的比努力更重要。
offer的选择其实就考验你对信息的收集、鉴别和思考的能力。
这里推荐几种获取信息的渠道:
PS:以上获取都要精确到部门、组。在各大互联网公司内部,有时候,部门与部门的差距比公司与公司的差距都要大。
仰望星空,脚踏实地。所谓的人生开挂,也不过是厚积薄发。也愿诸君努力,传递好这象牙塔内最后一程交接棒。
后台回复关键词【入群】
加入卖萌屋NLP/IR/Rec与求职讨论群
后台回复关键词【顶会】
获取ACL、CIKM等各大顶会论文集!