我的校招总结
写在前面的话
经过找实习、经历校招这半年的努力,应届小硕也是找到了自己满意的工作。作为非Compute Science专业,没有ACM大赛经验,也没有特别牛逼的过人的大项目,更没有别人聪明的脑袋瓜,凭着笨鸟先飞的毅力和长时间的准备,扎扎实实做好做深做精实验室的项目,校招顺利拿到了阿里、腾讯、网易游戏等公司的offer。
写作动机
思考才能进步,总结才能提高。在校招找工作上花了不少的时间和精力,是该做个总结梳理一下整个思路,以留作记录,同时让读者做个参考。
Yes-从这篇文章获得什么
了解和参考我的找实习和校招历程,方便你的需要
可以了解目前国内互联网公司校招的基本流程
如果你是学生,可以针对本文有的放矢的提高自己技术
获取校招(Java研发)准备的参考书籍和网站
No-这篇文章不能给你什么
完整的面试细节
关于个人offer的具体内容
其他不能说的秘密
我的校招/面试经历
阿里
实习:3月份开始内推的阿里实习,前后经历了一个月,经过三轮技术面+一轮HR共4次面试,到4月底才出最后的结果。不得不说想进阿里实习,就得经历这样一个招聘的马拉松过程。好的方面是你可以针对上一次面试发现的问题,有充足的时间来理解和补漏。最后顺利拿到阿里的实习offer,为校招开了一个好头。暑假是去了阿里实习。
校招:实习是在阿里菜鸟,所以校招就没有走普通的校招流程,直接内部通过转正答辩拿到了offer。实习主要是跟做项目,期间在ata和里内网上看到好多非常不错的技术分享文章,也抓紧机会学了不少。还参加了菜鸟针对所有实习生开展的马拉松编程大赛(连续48小时),很幸运地跟着队友拿了个第一名,主要是开发容器来验证阿里中间件的依赖隔离和类共享的机制,实现Pandora中间件容器的加载原理,并感知云上云下不同环境自动切换依赖等。第一名有啥好处呢,除了每个人都有价值RMB600左右的机械键盘和获奖文化衫外,队长可以直接拿校招offer,我们其他小组成员虽没直接拿到直通offer但是在后面转正答辩中加分很多,最终我们小组所有人都拿到了阿里的校招offer,这也是非常不错的奖励!
腾讯
实习:找的Java后台开发实习岗位,内推进去简历评级只有B+,然后被社交产品测试部门拉了简历。在面试前要做题目,应该是要考察你的能力。要求做实验找出QQ和微信关于上传图片快慢的原因和给出解决指导,花了2天熬夜通宵,针对ios的手机和平板、室内室外、wifi和移动网等不同场景,用Wireshark和Fiddler不断抓包分析,最后得到一份分析报告,发给招聘的主管,然后获得了面试的机会。一面面试官反馈我做的题目其实也不简单,我完成的比较令人满意。二面面试官全程聊项目,谈得很愉快轻松,感觉也很好,临走的时候面试官还友好的说让我等待三面,但是最后二面挂了,让人意外。
校招:有了找实习时候的经历,校招投简历的时候没有选择明确的事业群,听说这样可以提高被捞的概率,事实确实如此。腾讯要Java的比较少,但本人只是简单了解C++但不足以用来求职所以投的还是Java开发岗位。有了阿里的实习经历,我的校招简历直接从找实习时候的B+变成了A+,这是有点让我意外的。经过三轮技术面+一轮HR共4次面试,最后也拿到了腾讯的offer。
华为
实习:两轮面试直接拿到实习offer。感觉华为的面试还是有点水的,一面面试官和你聊技术聊项目,通过后直接去做性格测试,然后二面就是部门boss和你聊人生聊NBA,最后就给我发了实习offer。由于已经有了阿里的实习offer,所以没有去华为实习。
校招:通过了实习招聘,我参加的是7月份华为的校招优招,直接参加终面。7月份参加后,官网一直是录用审批中,然后就这样在资源池里面泡 了几个月,一直到10月中旬才出结果,听说是今年华为要缩招所致。由于有更好的选择,所以与华为暂时是无缘了。
网易游戏
校招:两轮技术面,每次都有两名面试官。一面是电话面一个小时(对面是两个面试官轮流问),二面直接到广州网易参加面试(也是两个面试官同时面你),感觉这就是网易的特色。全程都是问技术相关的内容。两轮技术面后直接拿到校招offer。
百度外卖
校招 百度外卖今年刚刚被亲爹卖给饿了么,所以就疯狂地扩招补充新鲜血液,发展壮大自己。因为百度外卖招的相对比较早,就想去参加面试热热身。经过三轮技术面也顺利拿到offer。由于有更好的选择,所以与百度外卖也是无缘了。
大疆
校招 参加宣讲会的时候了解到大疆在国内无人机市场找了90%以上,在全世界占了80%以上,真是恐怖的实力,前景也十分广阔,据了解大疆给员工的待遇也是很丰厚。一面基础的技术面,二面面项目和职业规划,三面还是面技术,不过是针对一个技术要点的深挖探讨。面完面试官还主动握手,感觉良好。但现实也许是残酷的,至今未收到大疆offer通知,可能是挂了。
其他
百度(深圳)、京东、网易-杭州、网易有道等笔试直接挂了,没有给面试机会。
CVTE面试时间和腾讯冲突,婉拒了。
今日头条、唯品会、微众银行、携程、深信服科技、美团、TP-Link等公司只投了简历,但已拿了offer就不去占坑了,没参加笔试。
其他公司未投递简历。
如何看待校招技术面试
公司的角度
公司要招人,就是要找能给企业创造价值的员工,部门员工就是要找新的同事。
为什么要校招?
一方面可以补充新鲜血液,挖掘优秀人才,培养公司未来骨干,丰富公司的人才储备
另一方面还可以一定程度提高公司的社会影响力(可以宣传公司、打广告)。
而社招更讲究“即战力”,要求员工能够马上投入工作岗位为公司创造价值、做出贡献。
要什么样的应届生?
技术基础扎实、能力足够好等。所以你要向应聘公司证明你可以胜任这个职位。
学习能力强,综合素质评价高,有培养的价值等。所以你要证明你有培养的潜力。
善于沟通交流,有团队协作意识等。所以你要证明你待人接物、为人处世方面的能力。
大部分应届校招生没工作经验,公司招进来以后还需要花时间代价来培养。企业不是慈善家可以免费培养你,是要让你尽快地成长起来能够为公司做出贡献的。公司看重的是你在一定时间内的发展潜力,他想要的是经过在公司历练半年、一年后的你,公司愿意招你就意味着你的基础知识扎实、潜力值得培养。
个人的角度
个人怎么看待校招,我认为应该要从自身角度出发,向企业展示个人能力以获得青睐的岗位和薪酬。
找理想工作的绝佳机会
展示自己扎实的技术基础。
平时就要积累技术能力,做好自己实验室的项目,如果没有也要想办法去做一些项目,积累经验。
如果你应聘一个公司,但你的能力尚不足以胜任该岗位,你是老板会要这样的员工吗?所以,提高自己的技术能力吧。
展示自己的学习能力,尤其是自学能力。
互联网技术发展如此迅速,如果自学能力跟不上来,就只能慢慢被淘汰了。终身学习,如果不是自学,还会有谁陪你一起学一辈子?
有不错的沟通交流能力。
虽然性格可能会比较内向,但是绝对不是不敢主动提出问题、不敢主动去交流的借口。
体现自己的思维方式、思考能力。
做一件事情,小到做一道算法题目,大到项目的开发,动手前要分析,了解重难点、关键点,然后要做好基本的计划和安排过程,落实,不断反思-总结,改进。如果经常按照这个思维方式考虑问题,时间一久一定会获益良多。总结,很重要,可以帮助你梳理自己的思路,对做过的事情有更加全面和清楚的认识,推荐用blog的方式总结。
校招面试的过程就是双向选择、不断寻找的过程,企业想要招到人,而你想要找到好公司,把自己最好的能力都展示出来有助于得到别人的青睐。如果你喜欢的公司器恰好也喜欢你,你们互相对上眼了,那就恭喜你,可以再续缘分。(感觉有点像相亲谈恋爱。。。)
面试技术要点
我面的是Java开发岗,以下记录的是凭个人回忆的面试知识点(不含笔试),难免会有疏漏。
Java
JVM内存分配机制、内存模型
GC(minor GC、major GC、触发条件、GC算法等)
类加载机制(类隔离和类共享)
Java集合(List、set、HashMap、HashTable、ConcurrentHashMap等)
interface和abstract class
socket编程及NIO
synchronize、final、static理解
异常(检测异常和未检测异常、继承关系等)
反射、动态代理
Spring的IOC、AOP
数据库
第一、第二、第三范式之间的理解和比较
数据库的事务、ACID及隔离级别
索引优化(组合索引、最左匹配原则)、优缺点
手动写创建索引的语句
并发访问场景和所有可能出现的结果、锁作用和实现
主主复制、主从复制
B-tree的应用
int和varchar
io优化
分表分库设计
操作系统/Linux/集群
shell脚本、查找文件命令
top命令、netstat命令、ifconfig和ipconfig
乐观锁和悲观锁
session集群共享
Hadoop集群扩容问题
集群负载均衡
虚拟路由
Hadoop集群单点故障
计算机网络
传输层协议TCP和UDP
http和https(对称加密、非对称加密)
ftp和sftp
从访问一个网址到页面出现,描述中间发生的所有事情。
数据结构&算法&设计模式
Hash及冲突解决
二叉搜索树
手写快速排序算法、单链表反转、字符串部分逆序(如moc.anis.www转为www.sina.com)
手写二叉树层序遍历、二分查找、递归算法实现
超大文件寻找top K算法设计(单机1M内存、Hadoop集群、外部排序+uniq命令)
算法设计:给定函数a可以等概率产生1-5这5个数,仅调用a实现等概率产生1-7这7个数
用栈实现队列
订单超大并发访问-队列批量处理
观察者模式、工厂模式、适配器模式
智力题
估算武汉市需要多少个消防站。
有两根粗细不均匀的香(烧香拜佛的香),每一根烧完都花一个小时,怎么样能够得到15min?
下一场雨,估算武汉市总降雨量吨数。
盒子里放水果,猜哪个盒子放什么水果。
项目
每个项目从整体架构设计、扩展性、后续优化到任何实现细节都有可能会问。对做过的事情需要多总结和优化思考。项目这块是需要花大量心思准备的。
如何提高自己的技术能力
人与人之间的差别在于业余时间。技术能力的增长是比较缓慢的,成长都是要靠平时一点一滴的积累。用一句话总结,不积跬步无以至千里,不积小流无以成江海。
有良好的自控能力,能够自律。偶尔玩玩王者荣耀、打打阴阳师,和同学打个篮球都没关系,适可而止。
有严格的时间观念。早上第一件事是规划自己当天要做的事情,按重要紧急分类排序,量适当。晚上一般是总结。
看书。书籍是使人进步的阶梯。
对于技术类书籍,都尽量在看过之后把书上的例题都亲自敲代码实现一遍。以下是读研期间个人看过的一些书籍(部分章节或全部):
到课程网站和博客网站持续学习
不错的IT网站:
牛客网很多互联网公司直接在这上面笔试,还可以刷真题练习,力荐
赛码网性质类似牛客网,推荐
慕课网不错在线视频教学网站
实验楼另一个学习IT技术的天地,推荐
ImportNew专注于Java技术分享的平台,推荐
stackoverflow神一般的技术问答平台,力荐
OSChina开源中国社区,推荐
博客园不错的技术博客网站,推荐
leetcode刷算法题圣地,推荐
其他如GitHub、CSDN等优秀网站
项目
做好实验室的项目,如果没有项目也要自己找一些玩具项目来练手,总之就是把学到的技术应用到项目中去,实践出真知。同时及时补充项目需要的新技术,学习和实践是一个相辅相成、不断交织的过程。
学会总结
写技术分享博客,重在帮助自己总结,分享只是一个次要的过程。坚持就是胜利。
最重要的是会搜【Google】解决问题
怎么样可以访问Google,相信你可以完美解决的这个问题的,此处不再赘述。
如何有针对性的准备面试
明确自己的岗位(最好只投一个)和工作地点,精准投递。
简历上出现的每一个字都要能说出所以然,否则就不要写上去
面试前有针对性的调研面试部门在公司的定位、战略意义,增加自己对公司部门的了解。
调研面试岗位需要哪些技能要求,提前针对性准备。
寻找网上的面经,学习之。对着面经,模拟面试的过程,看自己是否能够完美回答,如果不行就做好标记好好准备。
面试小技巧
要表现得自信、积极乐观
主动引导面试官问自己会的内容
回答问题时把不会的或者答得不好的问题引向自己熟悉的、有把握的方向。校招腾讯二面面试问我是否了解二分排序,当时一下子没什么印象,如果我当时什么都不做直接回答“不会”,那二面之后基本挂了。但是我当时就说二分排序没什么印象但是对二分查找还是有了解的,然后面试官就让我手写二分查找的代码,几分钟我就写完了,还简单分析了算法复杂度的情况。这样自己就很好地把握了面试的主动权了,也顺利过了二面。
不同角度回答问题
正反方面去阐述,如果可以就尽量举例具体说明问题。比如阿里一面问我IOC有什么好处时,先说弊端,没用框架前都是在代码里面硬编码创建对象,耦合度高、扩展性差;然后从另一个方面说优点,用了框架后可以把对象生命的整个周期交给框架管理,有解耦合、有良好的扩展性等优点。这样一来面试官就相信你理解了这个知识点,而不是背书。
多用数字说话
网易游戏面试官问我做的项目有什么成果,如果我说处理了大部分的投诉,提高了工作效率,这样的回答感觉绵软无力。如果平时就注意做好总结,就可以说系统查询时延在1s内,处理了原来70%的工单任务,效率提高80%,后者显得你更加专业、有说服力。
敢于承认自己不会的问题
遇到不会的问题时,不懂装懂的人一定会杯具的。面试中要真诚,面试官看过的人成百上千,纸是包不住火的,强行装下去只会让面试官对你更加失望。倒不如大方承认这方面知识相对缺乏,还可以趁机询问面试官给点指导意见帮助你思考,从而体现你的上进心、进取心,赢得更好的印象分。
回来后反思总结
面试过后一定会有自己不满意的地方,应该及时复盘合总结。想想自己哪里的技术不会,哪些语言需要重新组织,哪里应该举例说明,说不定下一次面试就遇到了呢。
所有的面试技巧,都没有你过硬的技术能力有说服力!
公司招聘流程
个人建议直接到公司官网投递简历或者找内部员工内推(牛客网、知乎等网站有很多内推信息,信息要鉴别真伪,但比较可靠),笔试之后是面试,可能是电话面试或者现场面试,最后HR面。通过所有流程都走完,过五关斩六将,那么恭喜你拿到了offer。
个人建议
早点准备,越早越好。
现在就开始制作自己的简历。当发现自己简历没什么内容可写时,起码还有时间弥补。
可以多投几家公司。目标要远大也要切实际,把想去的公司分高中低几档分别投递,保证了冲击一流企业的机会,也可以拿到保底的offer,不怕最后一无所有。
Do it right now!要求不高,每天进步一点点!