2.面经之----校招(含实习生春招)指南

这篇面经是非常好的,学到很多。

关于我:已get 头条、阿里、美团校招offer,头条、新浪、搜狐实习offer,Android。

关于我兼职(程序员鼓励师)的成果:男朋友已get BAT+头条校招offer,前端。

0.写在最前面

本指南适用人群:大三在校生,希望Get IT大厂非算法类研发Offer的学弟学妹

注意:鉴于这是一篇指导如何get BAT TMD等知名大厂offer的指南,因此对读者本身期望也较高,在普通人看来可能不易做到、不那么友好,这里提前说明,请不要说我“何不食肉糜”。换句话说,这是教70分的人如何考到95分的,如果你的期望是60分万岁(找个小企业混温饱就可以了),可能它并不适合你。

为什么想要写这么一篇指南呢?说起来,我从今年春节开始准备春招简历,到如今十月中下旬,终于拿到了想要的offer,准备去签三方,给我的半年仍多的校招季画上句号。期间有过被拒到怀疑人生,也有过被突然的机会砸得喜出望外,更是见识过身边各种大佬因为各种“莫名其妙”的原因与offer失之交臂,所以今天这个结果离不开自身努力,也离不开冥冥中的幸运。写这么一篇文章还愿自己身上的幸运“buff”,同时也想让更多学弟学妹们不要因为“没经验”产生的失误,而与梦想失之交臂。

1. 什么是春招(实习生招聘)和秋招(正式校招)

春招是指各大互联网企业的春季实习生招聘,最早的(比如阿里)过完年就开放简历投递了,最晚持续到五六月份可能还会有面试(比如美团),春招的目的是进入大厂实习,争取转正机会或用实习经历赚取更好的校招机会。视公司和部门不同,实习转正比率大约50%-95%左右(滴滴比较特殊,极少能转正)。

春招虽然开始的早,一般是要求暑假前去实习,如果有条件提前去实习更好,起码三个月以上(底线),六个月以上更好,可以实习的时间越长,通过面试概率越高。可能有同学会问,只有暑假两个月可以实习要怎么办?说只能实习两个月一定会被刷掉的,但是说去实习三个月,两个月的时候提出离职,真的不会有人记得你只实习了两个月没满足要求的。这里真的非常非常重要,直接决定春招成败!

秋招就是指正式校招了,较早的8月初就开始投递简历了,集中在9月初刚返校的时间,10月末大多都招的差不多了,时间跨度比春招小很多。

FAQ:

1) 一定要参加春招么?错过了怎么办?

除非能力已经强大到不需要实习经历来做简历背书了,否则一定要参加春招去争取实习机会。大厂实习经历的加分,拿我个人经历来说吧,我春招简历和秋招简历唯一一处不同就是秋招简历上有在头条的实习经历,bat某家给我的简历评级从B变成了A;从个人参加面试的体验来说,通过面试的难度下降了20%。大家的逻辑是,既然XXX都给了你实习机会,那你的能力应该还是很不错的。

假如错过了春招或者不幸全部挂掉,如果你觉得自己基础还不够好、有很多需要刷题提高的地方,可以安心刷题准备秋招,虽说实习经历很重要,不过能不能完美答上笔试面试题才是最硬的道理。如果你觉得自己过笔试面试没大问题了,就只缺一份实习经历来让简历更抢眼了,那么投递范围就不要局限于大厂了,对着各类小厂广撒网,万一遇到合适的就去。

2) 一定要参加秋招么?错过了怎么办?

如果想在互联网领域发展,一定一定要参加秋招!什么,大四下再参加招聘?tan90,大四下春季时候,是招实习生的时候,大厂校招都是补招、机会很少,大多数根本不招,岗位数有没有秋招时候的10%都难说。什么,大不了参加社招?呵呵呵,大厂社招都是要看你工作经验的,大四刚毕业,你从哪里搞来至少一年的工作经验?以及从不知名小厂社招进大厂更难,曾经好奇问过同事,社招有没有遇到过培训班编简历编工作经历的,答曰工作经历是不知名小厂的简历大多都扔了,扎心了。

假如错过了秋招并且连春季补招也没赶上车的,对于去大厂执念极深极深的,可以想办法搞个因身体原因休学一年,充分准备后再战校招;要不就只能先去其他公司,1-3年后靠社招再来。因为,错过了就是真的错过了。

2.如何获得最新招聘信息

获取招聘信息非常非常简单,打开浏览器搜索框,搜索XX校招,XX可以是任何一个你想得到名字的互联网企业,然后看各家的官网就好。另外还推荐北邮人论坛(需要找北邮的在校同学要一个账号)和牛客网的讨论区,当然,CS领域的知乎大V们其实也很乐意发布招聘信息或帮忙内推,我的第一次面试就是投了MagiLu发布的Qzone招聘信息后得到的面试机会。

3.最先要做的准备——一个独立项目

在某交流群里跟一些小伙伴聊过,有的小伙伴表示自己学校一般、更没什么竞赛经历,很发愁怎么找到第一份实习。所以啊,这时候最重要的就是一个优秀的项目了。

先说什么是还不错的项目。首先,项目方向与岗位投递方向必须相关,代码量要足够,一般来说几百行的代码是没太多内容的,即便是有几千用户,也不能改变它并不复杂的这个现实,不适合写在简历上;其次,这个项目需要有一个技术难点,调了一堆sdk不叫难点、用了一堆开源库也不叫难点、debug了3天发现变量不小心拼写错了和写了一万行 if else 更不叫难点,最起码是google上搜了2页找不到很好的解决方案的一个问题,或者是完全自己编写的一个组件/模块,能够让面试官听起来感觉“嗯,是有点意思”的才叫难点;最后,这个项目的代码要么完全放出来让人能看到,商业项目不方便放出源码的话请放出作品地址。

然后说怎么接项目。最好的方案是,科班同学请翻翻你的ppt、找你的导员,不管采用什么方法,总之收集到计算机专业老师的联系电话或邮箱,非科班同学麻烦去请你们学校的计算机专业同学吃饭,问他们要老师的联系方式,然后挑一个风评最好的老师(防止自己被坑),给他打电话,“喂,老师,我是XXX,请问你需要我帮你做项目么?”,然后自由发挥,最好能要到老师在外接的私活,然后开始做就对了,不过谨防自己被当了廉价劳动力,但如果你更在意经验的话,可以无所谓。其他途径,可以通过外包公司、外包网站平台(x八戒网站)找商业项目来做,不过需要承担不能如期完成项目付违约金的风险。如果通过以上方法找不到商业项目,也可以自己拟定需求做个人项目,不过个人项目的规范性和难度一般远不及商业项目。至于创业公司的项目,建议拒绝,说的再好听也拒绝,当然,钱(期权股份不算)给到位了另说。

注意,不要等了,从你看到这篇文章开始,就开始着手找项目做项目吧。因为现在距离第一波春招简历投递只有4个月左右的时间了,等你所谓“技术学好了”,可能春招已经开始了,没有准备项目的时间了。何况,这段时间里你还需要准备简历编写呢。

4.关于简历

简历要写的内容,姓名、联系方式、投递岗位、学历、个人简介(可选)、竞赛经历(可选)、实习经历(可选)、项目经历。

联系方式:手机、邮箱(推荐gmail,鉴于有些HR的奇怪口味不推荐QQ邮箱)

学历:985 211 学校计算机相关专业请把学历写到前边,明显一点;北邮以及窝工之类有cs双一流学科的cs强校计算机相关专业,能把学历写多明显就多明显,不行就黑体加粗!成绩排名前20%的请注明成绩及排名,前5%的能写多明显就写多明显!四级没必要写了,过了六级(超过425分)可以注明分数。不符合以上几条描述的,请偷偷地把你的学历模块往后放放,字写小点,但不能不写,不写一定会被打的。

个人简介:写一下熟练使用和了解的技术,还有些套话照着招聘需求写就可以了,github和博客放一下。如果学历、竞赛、实习、项目都很不错的话,可以不写个人简介,把宝贵的简历版面留给其他更引人注目的模块。

竞赛经历:省级以上cs相关竞赛。课程设计第一名或者校三好之类的就不要写了,作为技术岗,需要技术类竞赛来说明实力,面试官并不太care你评三好或者学生会主席之类的经历。

实习经历:有好过没有,大厂好过小厂。需要把实习期间做的项目也写上,写法跟项目经历类似。

项目经历:项目背景、项目需求、团队规模、你做的工作、技术栈、难点,能够分条列举最好,2-3个项目,每个描述150字以内。

简历模板:不需要很花哨,平庸的就是好的。推荐QQ邮箱中一个隐藏的简历制作功能,需要自己打开简历模块;或者像我自己的是用markdown写的,打印成pdf格式。

简历命名:名字-岗位-学校(可选)-手机.pdf

更多写简历相关的,推荐个live:https://www.zhihu.com/lives/806604346925154304 主讲VB人很好,我在校招中因他的建议而受益过,故顺便给个软广,哈哈。

5.关于网申

网申没什么需要特别注意的,只要去官网留意时间不要错过就行了。此外,有机会找人内推一定要内推!

不同公司对被内推同学的优待大概有几种——免简历筛选(肯定不会挂在简历关)、免笔试(肯定不会挂在笔试)、提前批资格(言外之意非内推不给面提前批)。至于既免简历筛选又免笔试的,醒醒吧,不存在的。

这里解释一下什么是提前批,无论是春招还是秋招,各家都会有一个提前批面试,相当于在正式面试前多一次面试机会,通过了的话直接拿offer,不通过也不影响正式批校招。获得提前批面试的一般都是非常优秀的那批同学,要求也会更高,如果通过了的话,待遇有时也会高于正式批的offer。所以如果获得了提前批面试,不妨先开心下,起码简历是合格的,即使面挂了也没关系,提前批的要求本身就是很高的。

怎么获得内推?学校好的可以找学长学姐,大把的内推机会肯定不会少的,其他的可以去北邮人论坛、知乎等找人内推。同一公司找过一个内推人就不要再找第二个了,没有用的,除非人家明说是部门直招、可以直接捞简历的,遇到可以直接捞简历面试的一定不要错过。以及,等到春招时候,我也是很乐意帮各位学弟学妹内推今日头条的,欢迎到时候联系我。

至于投递的地点和部门,实习时候不要挑地点、直接投公司总部地点就好了,腾讯就选深圳、阿里就选杭州之类。反正校招还可以再找,一般来说校招找的公司水平不会比实习时候的水平低的,不妨等校招时候再去挑地点。以及腾讯不指定部门更容易被捞简历;阿里选择一下你所投岗位需求比较大的部门更容易被捞简历,不然会直接分到内推你的人的部门,万一这个部门又不是很需要你这个岗位,就容易悲剧。

6.关于笔试

个人感觉从零开始准备笔试题需要2个月左右时间,但因为自己基础还行、没准备笔试直接裸考的,所以不敢说这个时间估得一定准确,希望大家根据自身情况调整。接下来按重要度从高到低写一下笔试要准备哪些。(注:本节所有百分比估计都是个人主观估计,没有数据支持,你可以选择不相信)

1) 编程大题。一般一场2个小时的笔试,会有2-3道编程大题。最难的一道一般是动态规划题,其他的会比较简单。不过手撸代码嘛,要知道别人想考什么,让你写二分查找,就好好写,用个Arrays.binarySearch()虽说可以,但如果有人工阅卷环节,肯定就拿不了高分了。需要注意,有些公司的编程题可以跳出网页用本地ide写,有些则不可以,对于不可以使用本地ide的,起码要记一下常用的库名,比如Scanner类的包。还有些笔试系统对于一些语言的新版本,甚至是某种语言(JS此处躺枪)的支持相当不友好,建议笔试前了解下笔试系统支持的语言和输入输出格式,只会JS的同学最好多学一门语言,会基础语法就行。不允许跳出网页的时候别作死开带弹窗的软件、别作死多次跳出,被判作弊,卡着不让进面试就该你哭了。

这里推荐一套编程练习:https://www.nowcoder.com/ta/coding-interviews ,66道题,每天两道,做完看一下题解、了解各种解法的优缺点和时间复杂度,没意外的话能押中80%的笔试编程大题。至于压轴的动态规划题,记住4道例题,背包问题、矩阵链乘、最长上升子序列、最长公共子串,绝大多数(高达90%)的动态规划题都是这几个的变种。

2)选择题中的数据结构题。不同公司的选择题,数据结构与算法占比从20%-80%不等,大多是50%,由此可见数据结构是很重要且很值得花费时间精力的内容。数据结构需要掌握的程度,好一些学校的计算机专业的数据结构课就已经足够了,所以如果本身学校不错的话,把课上讲的内容熟练掌握(考试90+)就可以了。其他同学可以看一下网课mooc,本来想推荐我校王宏志老师的mooc,然而发现王老师只有算法课,没讲数据结构。所以就大概搜了一下,找到了一个浙大的 http://www.icourse163.org/course/ZJU-93001 (本人没看过,不对质量做评价)。如果有同学看过更好的mooc,欢迎在评论区推荐。数据结构的学习,从零开始的话,可能需要一个多月(不包括习题训练),如果之前课上认真学过或有一定算法竞赛基础,一个星期也能够。

3)方向相关的知识,选择、问答题形式出现。这个没有太好的准备方法,各公司差别很大,只能是多刷刷牛客网的题(还不一定有用),有一些会跟常见面试题一样,准备一下面试题也有用,功夫需下在平时。

4)其他基础知识。比如数据库、计算机网络、操作系统、计算机组成原理、编译原理(按出现概率降序)。出现在选择题中,某个方向的题可能有0道,也可能有8道,随机性很大,时间充足就准备,没时间准备就随缘好了(毕竟像阿里非要在Android笔试题出机器学习题目的情况完全拦不住)。准备方法请参考第8节的计算机基础知识准备方法。不过,线程/进程同步知识重点准备一下还是没错的,很经常出现。

顺便多说一句,相比不参加笔试,还是选择参加之后交白卷可能更好。因为有些公司,比如腾讯,不参加笔试不给面试机会,交了白卷的话只要简历足够优秀还是给面试机会的。

7.关于面试

技术面试一般2-3场,hr面在最后一场。就我的经历而言,技术一面挂说明离公司要求差的较远;二面可能是技术深度还不够,知其然不知其所以然;三面和HR面挂可能是大boss觉得你不够“灵性”有潜力,HC(headcount)不够,面试评价一般于是在备胎池里等跟运气关系较大的因素。

面试会问的东西,基本就分四类,方向相关的技术知识,项目/实习经历(遇到最大的一个困难是?),计算机基础知识(集中在计算机网络、进程线程、数据库),算法题(有可能要手写)。以下会用Android相关知识举例。

其中,方向相关的技术知识是必须要会的,基础知识必须无错(如Activity生命周期、启动模式),广度可以不够(可以不了解GC),在某一/几个方向上了解的越深越好(Handler、Activity启动流程讲得非常透彻)。

没有实习经历就讲项目,有实习经历就讲实习时做的项目,其实都是讲项目、差不太多。至于什么是项目中的难点,请参考第4节的内容。注意控制语言详略,不要啰嗦,多数面试官是不关注项目背景和需求的,只在意技术细节。实习经历可以没有,项目经历必须要有。

计算机基础知识,这个你可以花3个小时来准备,也可以花30天来准备。3个小时准备的话,背一下网上搜到的面试题,三次握手、四次挥手、TCP/UDP、进程/线程概念等等,3个小时就背完了,缺点就是深入问一些或换个角度就露馅了。比如学过计算机网络的可以轻松回答路由器是哪层的,背面试题的并不能。只为了面试的话,不是很推荐大黑皮的经典书,我不是很相信大家都有毅力能看完,找个清华/邮电/机械等出版社出的不那么厚的普通计算机课程教材就可以了。可以有一些偏一些的知识点完全不会(最好不超过1/3),但全都不会就很过分了。计算机网络推荐窝工李全龙老师的课程:http://www.icourse163.org/course/HIT-154005 (重点看概述、传输层、网络层就可以了)

算法题,这些比较套路,多搜点面试题、多看看面经就行,再去多面几家公司就能掌握套路了,同时与笔试编程题也有不少重叠范围,可以根据笔试编程题推荐的那个网址进行复习。有些公司不问,但有些公司必问,甚至有些面试官只要有一道不会就让你 say goodbye,比如我司(今日头条)。如经典的TopK问题(感觉50%的时候会被问到),推荐个博客:http://blog.csdn.net/v_JULY_v/article/details/6370650 (也许不可能有更全的了)。

最重要的一点,准备面试一定要上网搜面试题,照着面试题清单准备,以避免遗漏知识点,很重要!在你去看别人整理的面试题前,你是不会知道你的知识树哪里有疏漏的。也很推荐自己每次面试后记录下被问的问题,整理出知识盲区和高频考点,重点准备高频考点的内容,想办法将回答答得更详细,面试过程中一个(比别人)详尽而有深度的回答也是亮点。

Android的面试题:

腾讯Bugly 知乎专栏、微信公众号

https://github.com/JackyAndroid/AndroidInterview-Q-A/blob/master/README-CN.md

https://www.zhihu.com/collection/83732393 (包括Android学习和面试内容)

8.Offer选择的一点看法

应届生能去大公司(听过名字的)一定去大公司,小公司吹的再好也不去,大公司磨好了技术有的是跳出来去小公司拿期权的机会。都是大公司的情况下,了解一下所在组情况,哪的组大牛多去哪。公司风气也很重要,在知乎等论坛上可以搜着看看,注意识别水军。

至于更详细的offer选择,恕不回答,毕竟我也是刚工作的小菜鸟,不具备指导别人选择offer的经验和眼界,建议去问在对应公司工作的学长学姐和一些行业内工作多年的大佬。

猜你喜欢

转载自blog.csdn.net/zj15527620802/article/details/83153437
今日推荐