互联网公司技术岗实习/求职经验(实习内推+简历+面试+offer篇)
找工作的事基本尘埃落定了,打算把这大半年来积累的经验写下来,基本都是我希望当年找实习的时候自己能够知道的东西,帮师弟师妹们消除一点信息不平等,攒攒RP~ 不要像我当年那样,接到电话吓成狗,没接到电话吓成狗,一点小事就惶惶不可终日,面试完疑神疑鬼啥的……这些大部分都是像我一样经历过大半年实习求职经历后就会知道的常识,但是还在学校的师弟师妹们就未必知道了,所以感觉还是有必要写写,给后人栽个树好乘凉。
因为个人经历的缘故,会多讲一些阿里相关的东西,另外有一些东西是跟其他实习生交流过之后了解到的,也一并写下来。另外因为有一次比较特殊的实习转正时内部转岗的经历,当时在网上几乎没找到多少相关信息,以后有空也会写写过程帮助后来人了解一下。
关于实习招聘
进互联网公司实习,主要途径分为内推和校招两种。内推也就是公司员工把你的信息录入到内部系统进行推荐,校招则是公司来学校开宣讲会或者通过其他方式宣传这次招聘,然后你再去公司举办的招聘会(一般开在酒店)面试。
一般来说,招聘流程如下:
- 内推:员工录入你的信息到公司招聘系统 -> 筛选简历 -> 面试 -> 发 offer
- 校招:通过宣讲会或者网申等方式投递简历 -> 筛选简历 -> 笔试 -> 面试 -> 发 offer
一般来说,内推可以跳过笔试,并且省去很多流程上的麻烦,而且内推一般先于校招开始,机会更多,所以能内推的最好尽量内推。这年头内推非常容易,因为如果被推荐的人通过面试,推荐他的人会得到公司的奖励(或者推荐量到一定程度有奖励),所以员工大多数也比较乐意发内推。只要你有认识的人在你感兴趣的公司工作,都可以去问问。就算没有认识的人,知乎、微博、V2EX、高校bbs等地都可以比较容易地找到各家公司的员工来收内推的信息(貌似有不少人以为推荐人和被推荐人一定要认识……其实很多时候推荐人并不在意他不认识你,因为他推进去之后你的简历还是会被筛一遍的)。
各大互联网公司的实习内推一般在 2 月底 ~ 4 月,校招在 4 月 ~ 6 月,如果坑没填够还会有补录。内推和校招的申请 deadline 一般是公司定的,过了 deadline 可能 leader 也没有太多办法(当然这不是绝对的,要看情况),所以最好在 3 月左右就开始多刷刷各种渠道,不要误了 deadline,生出不必要的麻烦。
关于内推
一般来说,大一点的公司会有自己的招聘系统,内推的时候员工一般会要你的简历,然后他再将一些信息填写进这个招聘系统。如果你有明确想去的团队,或者你准备去的就是推荐人所在的团队,就会指定相关的人来负责,处理会快一些。如果没有,那么一般是推到一个事业群或者大部门,然后想招人的 leader 来看看,遇到感兴趣的简历就捡走,这个过程可能会稍微长一些。
注意大公司一般有很多事业群/部门,一般内推了其中一个就不能再推第二个了(举个例子,阿里有淘宝、天猫、阿里云、B2B、蚂蚁金服等等多个 BU,你内推了其中一个就不能推另一个。腾讯和百度也有类似的锁定简历的情况),通常这是系统定死的,如果想改会很麻烦,所以内推前一定要慎重(我就被坑过……)。主要是大公司内各个团队其实招人时处于类似竞争的关系,一个团队看中的人当然不能随便又被另一个团队抢走。
关于简历
看你简历的人一般有两种:HR 或者要招人的团队 leader,所以在制作简历的时候两种人都要考虑到。对于 HR 来说,联系方式、教育经历比较重要。对于团队 leader 来说,项目经验、技能、获奖情况比较重要(一些团队还会看重 GitHub 之类的公开信息)。
怎样写一个好的简历已经有非常多的讨论,这里我就不啰嗦了,只说一些个人经验:
- 通常来说面试官不会花很多时间看你的简历,而且很多是面试的时候再看的,所以重点一定要突出。比如依照黄金三角理论,把你最想让他看到的东西放在左上角,以及运用加粗、颜色对比、字体等方式强调你想强调的东西。根据个人经验,放到简历下面的东西有可能直到面试结束他都不会看一眼(T_T)。
- 简历格式最好是 PDF,如果有在线简历的话更方便传播(GitHub Pages 什么的弄一个很快哒),而且你还可以用 Google Analytics 之类的工具分析你的简历浏览情况哦~(比如你看到有很多来自杭州的访问量的时候,就知道有很大几率被阿里的人看到了) 另外个别公司现场面还是需要纸质简历的,如果你不打算彩色打印但是简历又是彩色的话,要记得考虑一下简历转换成黑白之后的打印效果(比如淡色背景可能打出来一片糊!= =)
- 简历越早准备越好(我是春节准备的),多参考一下别人的简历,如果对设计感兴趣的可以去 dribbble 之类的地方搜搜 resume 之类的关键词,看多了就知道哪些该做哪些不该做了。
另外因为参与过一次内推,说一下看到的一些雷区:
- 不要写和你的岗位完全无关的经验……虽然不是每个面试官都反感,不过如果没什么亮点的话他会觉得你没有干货,写这些纯在凑数。
- 简历的外观和信息排布虽然能帮助你的能力得到更好的展现,但是最重要的是你的能力,不是你的简历,不要本末倒置……如果没有干货,简历再好看,懂行的人也能识破的。
关于面试
如果你面的公司不在你所在的城市,一般会先电面。电面可能是打电话,也可能是 Skype、QQ(对,腾讯的……)、旺旺(阿里的)之类。一般有两种情况:HR打来约时间,或者是一面面试官直接打过来。后者的话可能先问问你有没有时间直接开始,没有的话再约(这种情况很正常,不用担心)。
有些公司会在电面之后希望能够现场面,需要你去他所在的城市。有些公司可能全程电面(比如阿里的内推)。一般内推的会有电面,而走校招的一般直接现场面。电面的话来来去去约双方有空的时间,可能整个流程会很久(两三个星期),而现场面可能一天就都面完了……
一般来说,技术岗面试会有 2 ~ 3 面或以上。就互联网公司来说,最常见的情况是:一面面试官通常是你进去之后的导师,二面面试官是你进去之后的直接主管,三面面试官是主管的主管。另外还可能有交叉面,也就是其他部门的 leader 来面你,重复检验一下你的能力。即使不是这种排序,基本来说,面试你的人也是你未来的同事,少说也是一个大部门的,很有可能是你进去之后就工位在你方圆几十米以内。另外这个安排不是绝对的,因为你的同事都是干活的程序员,可不是专职搞招聘的,可能招人的时候他们正好特别忙,会拉其他团队的人帮手看看之类的,也就会出现传说中的面试的时候遇到了貌似根本不懂你这个领域的面试官……
这几面基本都是问的技术问题,一面是你的直接同事所以会问的比较细比较基础,二面开始就没那么细节了,因为主管们很多都已经不直接敲代码而是负责架构、把握整体技术方向,所以更多是问的一些理解和经验,主要是开放式问题。还有,由于面试官通常是你的未来同事,所以肯定多少会注意你本人是不是特别奇葩,毕竟大家以后低头不见抬头见啊……另外大公司都会有 HR 面,主要是看看你性格正不正常之类的。
一般公司的 HR 只是提供建议供面试官参考,但是阿里的 HR 面比较特殊。阿里有一种叫 HRG 的职位,俗称“政委”,HR 面的时候面试官就是这个团队的 HRG,在招人的时候是有一票否决权的。一般 HRG 主要看看你是不是有所谓的“阿里味”,符不符合阿里的价值观,想知道是啥的可以搜索“阿里 六脉神剑”。虽然在知乎上 HRG 被描述得很恐怖,不过就个人经历过的四个 HRG 来看,好像并没有什么特别的,都是正常的大哥哥大姐姐……HR 面的时候也跟其他公司的 HR 问的差不多,基本就是有什么兴趣爱好啊,家里对工作地点有什么看法啊,觉得自己有什么优缺点啊,怎么学习技术的啊之类的问题。要说有什么特别的,大概就是我以为 HRG 不懂技术,所以回答问题的时候特意解释得外行人比较能听懂,结果说着说着发现貌似她很懂啊 0-0……包括后来我转岗的时候才知道 HRG 为了能够让我充分发挥自己的能力,在安排我的岗位的时候还是费了不少心思的,也为我的职业发展提了很多建议,作为一个孤身跑来杭州的家伙,发现在这个人生地不熟的地方有个温柔的大姐姐这么为自己着想,心里还是很感动的。
有些公司有专门的 HR 负责流程事宜,那么一般是 HR 来跟你约面试时间,如果面试官没按时跟你联络,他会帮你解决,而且会发邮件和短信提醒你面试时间。如果没有专门的 HR 负责(比如阿里= =),那么从头到尾基本都是面试官直接跟你联络。但是前面也说了面试官可能就是你的未来同事,毕竟不是专职 HR,可能组织上没有那么缜密,漏打电话或者开个会没按时联络你也是很正常的。遇到这种情况耐心等等就行了,如果时间太长再去找人(比如内推你的人、校招客服)反馈一下,免得人家是真的直接把你给忘了……
基本上所有的面试都是这种流程:自我介绍 -> 问一些基础问题(可能没有)-> 出题给你做(可能没有)-> 依据你的简历问一些你写在上面的东西 -> 你有什么要问我的吗?
如果面试官没有事先看过你的简历,那他就会在你自我介绍的时候一边听一边扫一眼简历。自我介绍嘛,如果像我这样中规中矩的就是说一下我叫XXX,在XXX大学读XXX专业,现在大X,我以前在 XXX 做过 XXX,XXX 做过 XXX……当然也有人喜欢自由发挥的,不过面试官貌似一般不会特别在意你说什么因为这段时间他们都在看简历……
接下来基本就是面试官问,你回答,然后这样答答答答好多轮……个人经验是,不懂的东西不要装懂,不然如果他越问越深你会跪的。如果他出题给你做的话,关键的是展示你思考的过程(所以最好不要冷场,就算没有瞬间想出答案,也要把你内心的自言自语说出来),结果未必是最重要的(当然答出来总好过答不出)。如果他问你的东西你答不上来,也不一定要直接表示我不懂,可以说说你了解的相关的知识。
总之面试的要点就是,你不懂的没必要硬装,但是你懂的东西一定要尽量展现给他。说到底,只要让他能够尽量全面客观地评价你这个人就够了,面试官自会判断你是不是他想招的人,如果大家不合拍,你硬靠装逼拿一个 offer 也没什么意思,就算不小心进去了,也可能感觉日狗……
面试的最后一个问题基本上都是“你还有什么要问我的吗?”(我还真没见过最后一个问题不是这个的面试官23333),网上的面经很多是教你怎样再借机表现一下自己的,不过个人觉得比较有用的问题是:
- 我进去之后会做什么?团队是做什么东西的(业务是什么)?内部项目还是外部项目?偏基础还是偏业务(简单粗暴地说,做基础就是写给程序员用的东西,做业务就是写给用户用的东西)?技术氛围怎么样?主要用到什么技术?有什么开源产出吗?你们做 code review 吗?你们写单元测试吗?等等等等…… 这些问题是帮助你拿到 offer 之后决定要不要接的,如果你投的不止一家公司,而且到时候拿到的 offer 势均力敌,这个信息就十分有用了。
- 就我之前的表现来看,你觉得我的优缺点在哪里?这个问题可以侧面打探出他对你的评价,而且可以帮助你给自己查漏补缺。
关于接 offer
一般 offer 有口头和书面两种。有时候要你答应了口头 offer 才能拿到书面 offer(我遇到的腾讯 SNG 是这样)。一般来说拿了 offer 又不去的,会在正式校招(这里的校招指的是招聘应届生做正式员工)的时候再联络并且会跳过一些流程,而接了 offer 又不去的……可能会被拉黑……所以不要随便毁约,坑公司又坑自己。
(我见过对接 offer 这事最不在意的貌似是阿里,如果不接实习 offer 的话秋季校招的时候还可以走绿色通道直接进终试……)
对于选择 offer,个人的一点看法是项目/团队 > 公司。特别是在大公司里,不同事业群、不同团队、不同项目,做的事情、做事风格可能天差地别。没有在大公司呆过的同学特别容易以为,大公司里很多东西是统一的……然而互联网公司很多时候隔组如隔山,你听说到的某个团队的信息,是不能随意套到另一个团队的身上的,特别是在这两个团队所属不同部门的时候,可能他们的技术栈和行事流程根本是两个次元。所以面试的时候那最后一个问题就很有用了,你可以直接把自己想问的都给问了,千万不要浪费。选择 offer 的时候,先衡量一下到底哪个团队才是你想进去做事,能让你学到东西的。
待续
有空会再写写实习时在外租房、实习转正、阿里内部转岗、正式校招、签三方之类的相关经验~