这段时间正是大四的学生决定是否读研还是工作的时候了,作为学渣,没有保研资格,继续选择读研只能选择考研,可真正纠结的事情是:现在都9月24号了,我还在外面实习,连学校都不在,至今还有几学分的课没修够,我还有什么时间去准备考研。因此我觉得自己现在身处绝路,只能被迫选择找工作,这就是今天面试的背景。最近没少投简历,写简历很费时费力,最后干脆想到那个公司就开始投简历,360,京东,美团,百度,什么的大的小的工地都投了,360是比较早邀请参加在线笔试的,也是所有在线笔试题目中出的最独特的,有好几部分,都要完成,还有一些奇葩的题目,我只能无言以对,瞎蒙,技术题目印象中不难,两道在线acmcoder赛码网也不难,可是我还是没能都accept吧,都记串了,因为参加了好几家的面试,基本都是用的第三方赛码网。笔试之后还在QQ空间感慨360题目出的很BT,在线笔试的时候也没什么感觉,就勉强花了两个多小时完成了笔试,至于能否通过,我没有考虑,也不在乎。
几天之后,9月22号收到一个参加面试的短信,之后还连续接到两个电话,是机器说的通知参加面试的短信,和短信一个意思,我看了一下面试地点,朝阳区酒仙桥路6号360大厦,当时也没在意,就像还是去一参加下吧。之后按照短信要求重新修改了一下简历,准备好。
23号了,第二天就是面试时间了,晚上实习从公司回宾馆之后觉得还是稍微准备一下吧,此时已经晚上十点多了,然后我就先洗了个澡,之后打开电脑搜了一些360的面试题,和一些博客里的关于面试经验的,看到12点多吧,并没有什么感觉,该回答还是会,不会的看这么一会也无济于事。接着脑子想起了之前面腾讯阿里实习生的面试官问一些排序的问题,并让我亲手写其中的一个,还有伪代码,可是当时真是什么都没有准备,全凭记忆,我知道并不理想,我自己都觉的我连最基本的排序算法都显得那么生疏,提前复习一下就好了,可是并没有。然后我就打开手机浏览器搜了一些经典排序算法的详细介绍,这次我看的很认真,每一句话,每一行代码我都仔细捉摸,确实有很多新的体会,经典就是经典,难怪一直都是面试官“拿手的好菜”,用来翻来覆去的刁难应聘者,就那八个排序算法和外加的动态规划和贪心思想,我一下看到凌晨四点多,也算是重新复习学习了一遍了。
第二天醒来(不!这明显同一天),已经八点半了,师兄都要去上班了,我大概收拾洗漱一下也去公司了,上午一会就过去了,临近中午,该出发了,我打开前一天搜索好的去360面试的路线截图,原来先坐地铁12站,然后转公交9站才能到,我午饭都没吃,11点50出发,经过漫长的颠簸,终于找到了目的地,来面试的人挺多的,看到建筑物上的360logo,赶紧拍了一张,然后就进去签到,坐在等候室,淡定地发了个说说,之后就打开手机浏览器搜动态规划和贪心的总结,因为我知道这些内容,我并不熟悉,大二算法课就那样水过去了。
![360LOGO](https://img-blog.csdn.net/20150924204603540)
下午两点很快就到了,工作人员开始点名入场,我大概第三个点到的,然后就进去赵面试官就坐了,我看到桌子上的标签纸上写着“搜索”,我就问面试官咱们这是搜索部门吧?面试官说是,我之前看到有人说360搜索的是其核心业务,大牛云集的部门,然后我就开始一顿说我自己,说我的实习经历,虽然有点激动,但自我觉的还是说了好多,虽然面试官可能会觉得染=然并卵吧,我也不管,接着面试官开始发文了,这发问由我的一个项目引出,我也记不清了,虽然才过去几个小时而已,印象深刻的就是面试官问我哈希的好多问题,问我哈希优点啦,防止冲突的策略算法,等等,反正就是觉得关于哈希的全套问题都问了一通,我不知道怎么地联系到了B+树,然后面试官开始问我,为什么是B+,为什么有个+号,我说因为有B,B-,B+,B*,B是什么意思,我说BinarySearch Tree,我也不知道面试官想让我回答什么,接着面试官继续回答哈希,又是一通提问,我前一天还大略看了B,B-,B+之类的树,最拿手的排序算法一个没有,却一直问哈希的细节,我觉得我回答的并有切中要点,回来的路上我在想:既然搜索是360核心业务,那么面试官一直问哈希就有道理了,哈希不就是快吗,搜索就要这样!还有面试官问哈希的缺点是什么,我说我只知道就是快,缺点真不知道。唉,真后悔之前没有静下心来仔细研究一下哈希的技术细节了,有些东西,你没有深入了解,就只是浮光掠影,那就只有等着面试官虐你的份了,我回去一定好好研究研究哈希!心里这么想。中间面试官就我的项目还问我如果内存5兆,如何处理超大文件,我说就是先把大文件切成小的,分开处理,然后最后合并,然后面试官说效率呢?之类的,好像我的回答并不对。接着就是一道手写代码题,问题是:一个有序的数组,从中间某个位置分开,然后反转,举例子数组为:1,3,4,5,8,10,13(1)从分点4,将左边的1,3移到最右边,变成:4,5,8,10,13,1,3(2)给定(2)中这样的数组,返回一个元素的下标,元素可能不在数组里,当然这题不难,但面试官讲究的是效率,快!如何更快速的实现,我写的就不说了,就是拿数组元素和给定值比较,找到分点,先从左往右直到分点,找到就返回下标,否则总最右边开始往左再找,我想用二分查找,可是觉得并不是全局有序,又想先找分点,再左右二分,又觉得,找分点也需要代价,说不定直接比较已经返回下标了,就没有继续乡下去,也许更快的策略我也想不到,就那个最土的招,写好代码让他看,手写代码的字体,我自己都难以分辨,我还是直接告诉面试官我的想法了,果不其然,面试官关心的当然是算法效率问题,面试官让我再向议会,我知道也想不出来,就愣想一会,我说之前大众点评也有一道类似的[题目](http://zhidao.baidu.com/question/649211266633385965.html)(http://zhidao.baidu.com/question/649211266633385965.html):一组随机数,映射到数轴上,求相距最大的两点之间的最大值,要求是线性时间复杂度。这个我就不会,我还专门请教ACM大神,大神说难道是基数排序,不太可能,还怀疑是不是题有问题,我开始内心抱怨这些面试官们,有时候他们就像变魔术的魔术师,在你没有弄明白其中的花样的时候,他们就能一直靠这个“忽悠你”,然后他们永远不会告诉你怎么实现,就像魔术师总是不会告诉你怎么变的。
最后,面试官问我网络和数据库了解如何,我随口说了句,都学过相关课程,可是考的不太好,其实我没有说不会的意思,面试官也就没继续问,可能理解错我的意思了吧,然后就结束了,我看了下手机14:57分,面试了55分钟,我说的有半个小时,他提问我哈希的问题估计得有15分钟,就这样,败在了哈希上!临走时,面试官给我一个小小点心,我还笑着说,午饭我还没吃呢,很高兴的样子,殊不知,这竟然是安慰我挂掉的意思,我是这么理解了,我在等待区等的不到5分钟,就来个负责人叫我,我还以为是不是要二面呢(看来我天真了)然后就略带遗憾滴说,你美国,我说那我是不是可以离开了,然后我就走了,心情瞬间不舒适了,虽然也没什么大不了的,但还是不自觉的开始否定自己,打开QQ,将自己刚到这里发的360logo图标说说删除了,接下来我坐公交回来的,转了一站,大概坐的一种有20站吧,没心情找地铁站了,坐到公司附近,回到自己的座位,没有心情去调程序了,对了,我可是翘了接近一下午时间去参加面试的哦,而且我早上来公司没吃饭,中午急于去面试也没吃,晚上也不想吃了,所以现在身心俱疲,公交上站了好多站,现在腿脚也有点疲乏,不想走路。其实吧,也没啥,从失败中总结自己的缺陷,然后尽快弥补,为下一次面试成功积累宝贵经验!这次只是为下次夯实基础,华为、美团、京东、百度、大众点评、甚至微软我也投简历了,公司那么多,你不接纳我是为了把机会留给下一家而已!整个晚上什么都没做,就写这个博客聊舒予怀……
明天又是美好的一天,继续奋斗!就像我和面试官说的:我始终信奉小米的“永远相信美好的事情即将发生”和华为的“进无止境”,就是面试挂掉N次,我的信仰也不会改变!加油!
2015/9/24
共勉