写在前面的话:
一转眼已经十一月下旬,也终于得空能够把刚过去不久的秋招记录一下,本人是软件工程专业,工作职位投递的主要是大数据开发和软件开发。这篇文章会涉及一些公司的面经以及我个人的一些心得体会,希望能够对能够看到这篇文章的朋友有所帮助。
八月到十月,三个多月的时间里,投递了116份简历,遍布我所能知道的所有互联网相关的公司,面试了18家公司,拿到了6份offer,工作地点遍布北京、上海、西安、成都,其中拿得出手的的offer包括中国互联网应急中心,新华三,上海微盟,ofo。其中有痛苦,有挫败,有惊喜,有失望,当然也有欣慰,下面待我慢慢表述。
本人985渣硕,之前一直在导师公司实习,由于涉及到论文毕业问题,在秋招的时候找导师请假未果,又不敢跟导师撕逼,所以只能假借工作之名在工作时间偷偷的准备相关知识,包括数据结构,数据库,计算机网络,操作系统以及Java基础等。到这些东西准备的差不多的时候(当然后来证明还差很多),也就是八月下旬的时候,这段时间互联网公司内推全面开始,冒着顶撞导师的风险毅然决然的跟导师请了一个月的假(目前此事对以后的论文能够造成什么影响依旧不明)。之后便开始了自己的秋招之旅,顺便感慨一下别人的导师。
八月下旬主要就是内推,目标瞄准的就是一线互联网公司,主要就是找各种一线互联网公司的学长以及各种内推的微信群以及公众号,疯狂的内推,可能是本人运气差,或者是简历账面实力差(简历还是很重要的),内推了很多家公司但是只是收到了百度的电话面试,面试的职位是软件后台开发,面试了将近两个小时,我自认为答得还可以,本来自信满满的等着二面电话,然后就没有然后了!(WTF)
百度面经(软件后台开发):
1.volatile关键字的作用以及能不能实现线程安全
2.聊自己简历上面的项目
3.Hbase插入和查看数据的实现机制(本人项目设计内容)
4.spark和Hadoop的区别
5.线程安全以及可重入
6.自增自减运算是否线程安全,为什么?
7.实现线程同步有哪几种方法?
8.synchronized和lock的区别?
9.hashmap和map的区别
10.hashmap和treemap的区别
11.jvm内存管理和GC管理
12.依赖注入和控制反转
13.在线写代码:二叉树反转递归和非递归实现
然后便来到了九月份,秋招正式的拉开了序幕,第一仗就是广联达,本来只是拿来练手的,结果当时一个做C++的面试官面的我Java,两人就递归内存溢出和Java垃圾回收进行了激烈的争辩,最终导致面试被刷,回来和朋友交流了一下,我的观点并没有问题,我还能说什么,经验总结不能和面试官硬刚,即使你是对的,此时也发觉之前准备的东西已经开始模糊,此时便开始了新一轮的知识巩固和复习,与此同时开始了简历的海投,以及各种各样的线上和线下笔试(此时要明白小伙伴的重要作用,你不是一个人在战斗),之后收到了远景能源和搜狗的面试通知,职位都是大数据开发,远景能源问的比较基础,包括数据结构,操作系统,计算机网络,以及问了一个算法实现问题,两个数据数组,设计一个算法找出两个数组中的相同元素,后来顺利进入二面,只是问了一下项目,然后就没有然后了。下面重点来了,搜狗面试,第一个问题我就懵逼了,这是要让我干啥,之后的问题也是让我脑袋很大,三个问题一个也没有回答出来,而且面试官顺带告知我我对大数据开发这个职位理解有偏差,从面试的酒店出来我便开始怀疑人生了。后来我才知道当时我们班也有一个女生去面试了,出来直接哭了,没错,哭了,也是被面试官打击了!
搜狗面经(大数据开发):
1.1000亿条数据如何进行全排序,在纸上写出算法工程
2.shell脚本编程实现合并两个文件,在纸上写出代码
3.spark RDD执行不完的原因
之后我便开始搜索各种大数据开发职位的面经,开始针对性突破。之间还有一个插曲,之前我是把宝压在华为上的,之前做了华为的笔试,按照他们的说法,三道编程题只要做对一道就有面试机会,而我做对了一道半,第一题全部通过,第二题通过了百分之六十的测试用例,但是却并没有通知我面试,我当时特别沮丧,后来才知道,由于我当时是和同学一块做的,提交的代码也没有改动,导致重复率太高被认定为作弊,血泪的教训希望各位不要重蹈我的覆辙。之后又有几家面试,包括海能达,科大讯飞以及凡普金科,其中海能达没有笔试,直接面试,一面让手写了个快排,问了点Java基础的东西,接口和抽象类的区别以及Java的三大特征,之后问了点项目,后来由于二面和科大讯飞时间冲突就放弃了海能达,后来才知道,二面只是问些家庭情况,而且最后给的待遇很不错,只能说跟我无缘了。这里先说凡普金科,北京的一家金融互联网公司,数据分析岗,一面主要问了下项目以及职业规划,二面问了点数据库的知识,左连接右链接,以及一些数据分析流程的问题,还有就是些数学概率题以及一道智力题,之后面试官跟我说“不错,我觉得你挺好”,但是然后就没有然后了。接下来重点就是科大讯飞了,面试了将近一个半小时,把我的简历从头到尾在从尾到头问了三遍,最后搞得我都有点崩溃了,但是由于我的知识盲点,我还是被刷了,当时的心情真的是沮丧加沮丧啊!
科大讯飞面经(大数据开发):
1.快排和堆排序如何实现,快排的时间复杂度是多少以及(nlogn)代表什么?
2.平衡二叉树和红黑树的区别
3.操作系统作业如何调度以及哪些算法
4.计算机网络:三次握手,四次挥手,以及滑动窗口和拥塞控制
5.Java基础 int a= 128 ,int b = 128, a==b 返回true还是false ;string S1 = 'abc' string S2 = 'abc' S1 == S2 返回true还是false(我就死在了这里)
6.问简历上的项目,每一个都问,问的特别详细(一定要对自己的东西有足够的了解,并且能够清楚表述)
7.Hbase插入数据的过程
8.spark有哪些算子
9.Linux相关知识(没有回答上来)
至此,已到九月中旬,请的假已经到达期限,必须要回公司实习,而此时并没有哪怕一个确定的offer,心情那个糟糕啊!压力那个山大啊!但是由于之前做的笔试,也在陆续的收到面试通知,其中有分量的有京东和美团。但中间还有两家公司,浪潮集团和诺瓦科技,浪潮面了两面,最后到谈薪资由于要的太高没有收到offer,-_-||,诺瓦科技还是想讲一讲,一面问了点Java基础,几种修饰符的区别,进程的通信方式,以及Java的三大特征,还有就是介绍了一下项目,问的也比较详细,结果面试官表示比较满意,起立握手,目送离开,感觉很靠谱,二面聊了一下职业规划,还有一些智力问题,设立一些实际工作场景,让你设计解决方案,最后起立握手,目送离开,第二天收到offer,由于此时京东的二面已经通过就把这个offer拒了,之后去霸面了去哪儿的软件开发,一面被刷,惭愧,上来问项目,然后给个题目让你手撕代码,我的题目是让一棵树的兄弟节点相连接,第二道题目是给了一幅图,图中有障碍物,如何找a,b两点的最短路径。
京东面经(大数据开发):
一面
1.你的研究方向以及研究内容
2.你对spark和Hadoop的理解
3.union和union all的区别
4.hive的架构
5.数据倾斜问题
6.京东和某宝相比有什么优势
7.你的职业规划以及薪资期待
二面:
1.你对机器学习有什么了解
2.hive和Hbase的区别以及各自的优势劣势
3.union和union all的区别
4.数据倾斜问题(比较幸运,问到了一面的问题)
5.jvm优化以及jvm内存模型和垃圾回收机制以及垃圾回收算法
6.项目(问的很细)
7.京东和某宝相比有什么优势(hr面也被问到,难道是必问的问题)
8.自己的职业规划以及现在的研究方向(hr面也被问到)
当时得到京东的二面结果后,着实兴奋了一把,高悬的心也算是暂时放松了下来,在这之后还参加的美团的机器学习算法岗位的面试,上去尽力往自己的项目上扯,果然面试官很敢兴趣,聊了很久,我以为差不多了,面试官回过神来,开始让我手撕代码,开始问我机器学习算法的问题,我就只能GG了,可恨当时报错了岗位。九月二十八号下午京东hr电话面试,结束之后被告知十月二十日之前会告知结果,就开始了十一长假,由于此时依旧没有满意的offer,便开始了忐忑的十一假期,但也就是在京东电话面试的时候做了ofo的线上笔试,十一假期结束,收到了ofo的面试通知,虽然有点波折,但是最后收到了ofo的offer,但是在此之前收到了京东的拒信,当时那个沮丧啊!
ofo面经(大数据开发):
一面:
1.10G的数据,200M内存,设计一个解决方案,将数据中的内容进行全排序,并取出top 10(搜狗的经验排上用场)
2.手写快排
3.两个无序数组,排序输出,解释思路
4.hashmap底层如何实现
5.设计一个场景,写sql语句
6.之后又是职业规划问题
二面(电话面,在线编程):
1.三次握手,四次挥手
2.hashmap底层实现,以及存储时间复杂度
3.在线编程,链表相邻两元素交换位置
4.在线编程,动态规划
在ofo面试期间也面试了几家公司,有上海微盟、新华三、国家互联网应急中心、华数和亚信,其中只有因为华数要的太高没有拿到offer,这几家公司里上海微盟的面试有点难度,但是要求不算高,新华三和亚信纯粹扯项目,国家互联网应急中心特别高大上的国家战略部署的机构,二面是去北京公司总部面的,很气派,面试的内容也偏简单,会问一些基础的东西。
总结展望
找工作真的是一半运气一半实力,不要太过于纠结,我准备的有点仓促,建议看到此文的朋友能尽快准备,我知道的我同学有从三月份就开始准备的,你的付出肯定会和你的收入成正比的,最后祝愿大家都能找到满意的工作。