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