您的位置:首页 > Web前端

offer

2015-09-21 15:12 211 查看
        其实,我觉得:每一个努力的人,运气都不会太差。比方说收割了BAT的校长,和运气特别好的我的腾讯。

校长是从去年就准备找工作,开始看书复习,记得去年年前,在创意城的湖南菜馆,还有小明,我们三个人一起聊天,那时小明已经签了中兴的工作,校长算很早有觉悟的人,而我不是,小明说了很多语重心长的话,校长用行动证明了他听进去了,但是我听进去有点晚。每次校长来理工,我都和他聊很久,他都给了我很多帮助,尤其是他拿到阿里内推offer的时候,给了我很多建议,虽然我们方向不一样,但是真的对我后面的学习有很大帮助,所以如果要说能拿到腾讯offer我最应该感谢的人一定是他了。

        我觉得复习有些是可以速成的,有些是不可以速成的,比方说要成为校长那样的是不能速成的,但是如果运气不太差,也许可以像我这样速成。我的复习时间是比较晚的,因为之前在忙项目,直到6月底才开始复习的。那时看到室友都在牛客网上刷题,所以也就注册了一个帐号,开始做题时间应该是6月25号吧,刚开始是很痛苦的,因为都不会,毕竟没看过书,虽然做的是java基础题,不过就在开放弃的时候,发现自己竟然是周榜的第一名,顿时有了激情,然后有了这份热情,后面的坚持就没那么难了,这是第一次觉得运气好。后来刷题,java语言的,数据结构的,算法的全部刷完了,计算机网络刷完了一半。嗯,至少后来的笔试题,只要不是阿里那种都是数学,基本的都是没有问题的。

        刷题还是有很大问题的,因为只能保证笔试能过,面试刷题是不够的。八月的各种内推面试,学习了很多经验。唯一可惜的是阿里,我真的特别后悔阿里没有把握住,不过没把握住也是必然其实。因为那时还没有系统复习和看很多书,只是做了很多题,结果面试,一面就挂。科大讯飞能过,我觉得很大程度是做了笔试卷子,人家看卷子分数还不错,其实二面科大讯飞面的渣的不行,虽然最后还是拿到了科大讯飞的offer,不过给了我一个提醒,就是要看书,要重视基础。

        虽然从七月份就开始看了很多方面的书,比方说数据结构,自己也用java语言把各种数据结构都基本实现了一遍,但是也仅限数据结构这一本。另外一本就是剑指offer,看了一遍,还是很薄弱对面试。真的看了很多书是在8月,阿里失败,校长提醒,都刺激了我,看了很多书,做了很多总结。后续会把这些总结都一篇一篇文章写出来,也是做一个纪念吧。看完很多书之后,觉得校长说的对,虽然只有一个月,但是其实这和考研的最后一个月一样,可以看很多书,虽然书很厚,但是看着看着就薄了。所以,如果你还在觉得自己有很多书没看,觉得没时间看的时候,我只想说,其实是你不够努力,你想看,是可以看得完的,真的可以。数数八月看的书:深入理解java虚拟机、java并发编程(没看完)、java程序猿面试金典、java程序猿面试宝典、effective
java、java解惑、java特种兵(没怎么认真看)、剑指offer(后面至少又重新看了两三遍)、操作系统(进程线程,内存管理,死锁)、计算机网络(TCP/IP卷一)、设计模式。其实有很多部分是通过看牛客网别人的面经上的问题来总结的,总结多了,自然看的书就多了,尤其是计算机网络,真心花了很多心血,另外我是做Android客户端的,所以还看了很多android方面资料,但是书看得不多,资料也都是面试题总结之类的。我觉得,看书很重要,如果你时间足够,一定要多看书,如果时间不够,想速成,就可以多看别人面经,然后把题目都总结了,最后就是背书。9月的日子,基本上都是早上背书中度过的。额,速成也是需要努力的,你要付出的会比那些准备很早的人要付出更多,最基本的就是复习时间上,你一天要花的时间要比人家多,早起是必须的,从六月开始做题,基本都是按照考研那时的作息来做的,坚持一下下,就能做得到。

        说了这么多,其实就是想说,如果你还不急着找工作,你可以学习我的好朋友校长一样,提早复习,书看得比我多,而且深入;如果你很着急,可以试试我的速成,但是是有弊端的,因为要看运气好不好,不建议速成,还是踏实做学问,好好搞技术。

        直接说面经吧。腾讯的一面问的比较多,但是都很基础,问题总结起来有如下:

        1.JVM虚拟机。这个我直接就拿笔画了全部结构,一个一个区域讲给他听,然后再讲什么样的对象会被标记成垃圾,到三种回收算法和优缺点,再到对应的各种虚拟机类型,和minor GC和Full GC,最后到类的加载和对象生成,四种引用等等细节都全部说了一遍。说完,他说你是今天第一个回答这个问题回答的这么完整的人(我是下午4点场的哟,心里就觉得一面稳了)。

        2.选择一种能说明你能力的数据结构来说一下,然后我说红黑树,但是说到查询的时候,我卡了一下,他说红黑树比较绕换一个说吧,就让说B树和B+树,然后问B树用在哪里,有什么区别等等。文件数据库的索引和查询,B+树关键字都在叶子,所以节点存储比B树要少,空间利用更好,查询效率更稳定,支持随机和顺序检索等等啦。

        3.TCP/IP的理解,滑动窗口,流量控制,拥塞控制,快速重传,快速恢复,保证接收字节有序,怎么切分报文段,有些问题不记得了。这些问题,我后面会有文章更新,专门讲计算机网络的,总结的蛮全的,应对面试基本没问题。

        4.java集合框架类的实现。就说了下arraylist,hashmap,concurrenthashmap等等。

        5.设计模式。估计前面回答的不错,结果他说列了一堆常用设计模式,说这些太简单,你就不用说了,结果我就奔溃了,然后发现他少说了一个单例,我马上抓住漏洞,问他可以说单例么,他刚想拒绝,我说我会写很多中单例。他笑了笑。我赶紧开始写,一个一个写还一边解释,懒汉式,饿汉式,double
check,然后他说知道double check就差不多了,但是不能让人家失望,所以又把java解惑上的枚举方式也写了,他很满意了,然后我还写了一种登记式,他说这个他没见过,心里一阵窃喜,然后给他讲了一下,设计模式pass。

        6.最后他发现都快聊一个小时了,说时间不够了,看你面android就问问android的题目吧,然后他又说,我就不问你基础了,我心慌了,他开始出题,设计一个通用的容器A,在A里设计一个方法addView,可以添加各种类型view,然后可以拖动添加的view,应该怎么做?我刚想解释view的事件传递,他说原理就不用说了,知道你知道,你就说结果吧,好无奈,因为我不是很确定答案,我知道是拦截事件,应该在添加的子view里拦截,但是不太肯定他的意图,觉得没那么简单,结果果然没那么简单,他说你的方案是可以的,但是如果把题目改了,子view里还有view,比方说子view里哟button,要求能响应button还能拖动子view,这时你拦截事件在子view就不能响应button怎么办?最后想了好久还是不知道,最后问了他,他说在A里拦截,让我自己查资料,哎!另外还问了一个AIDL和bindservice。

        不过一面总归是过了,回来路上就知道应该过了,回来一看状态就变成复试了。二面是总监面,也称压力面,其实二面我真的是运气好,因为总监是做C++的,对android不是很懂,对java也不是很懂,结果一点基础都不问,上来就一直聊项目,聊得特别细节,还让我把我做的app界面画出来,一点一点解释,项目讲了30min,口干舌燥。然后他终于让我做题目了,不过还好不是很难:

        1.a,b两个人,现在有101个苹果,每次两个人只能拿一个或者两个,两人轮流拿,a先手,怎么保证a能拿到最后一个苹果?这个蛮简单,a先拿2个,然后每次b拿1个a就拿2个,b拿2个a就拿1个,这样最后一个一定是a的。

        2.电影院的洗手间怎么设计?这个题瞬间我就瞢了,完全找不到点在哪里,我又确认了一遍题目,然后就开始想,想了一会儿,他就不耐烦说,直接说,后面人在等着,我就从种类,数量,位置三个方面说了下。

        回来觉得很沮丧,因为二面感觉就一题做对了,别的都不知道结果。不过最后竟然过了,不过是一天后才变成HR面,我都放弃了,校长从百度面试完来理工看我,让我看了下,看完一阵激动。然后准备HR面,他和我说了下HR面注意问题,我第二天大早就起来百度,什么优缺点,最沮丧的事,怎么选择职业规划和怎么团队合作的。诸如此类的问题,HR面基本不刷人,因为最后能不能过是按照前面面试的评分来淘汰的。不过还好最终还是过了,HR面完说周一周二会有签约,过了就能安排通知签约,艰难的等待这周六和周日,还好周日晚上就打电话,通知过了,给了口头offer先,然后说周二通知签约。

        其实,我觉得我是运气蛮好的,不过我也一直相信那句,当你实力很弱的时候,运气成分就占很大比重;但是如果你实力强了,就算运气差也不会差到哪里!

        其实还有很多要感谢的人,比方说会经常和我一起讨论问题的实验室的人,傻博,阿祥,刘洋,晓鸣和小傻博;嗯,另外还要感谢在我比较挫败的时候的安慰我的人,婷婷;当然还有我的家人,尤其是爸爸,每次拿到一个offer,他都会仔细去调查这个公司怎么样,还问哥哥姐姐们的意见,爸爸特别操心;妈妈也是,每次都提供各种意见,但是不干扰我的选择,让我不要太累。

        另外还附上人人网的面经吧,我这里直接把牛客网上的分享面经抄下来,偷懒了点。至于科大讯飞的面经就算了吧!

   前天去武大笔试,晚上十点多就收到短信通知(后来hr告诉我她都帮忙改试卷,这效率果然够高),第二天上午去面试,可是上午要考美团,所以就推迟到下午两点。下午面了一个小时多,总共面三个,一面技术面,二面是宣讲会那位买单侠的CTO,三面是hr,就是那位改选择题的,她最后问了我一句,选择题就差最后一题就全对了,我只能吐槽说那时测试方面知识,完全没看过测试的。。。
好了不废话,直接说面试题目,哦,我是面软件研发,备注,我是做android的,不过一面那位说自己不是做android的所以只能问java了。

一面:
1.final 关键字用法。什么地方必须要加 final 关键字才能保证不会编译错误。( final 三种用法和匿名内部类使用外部局部变量必须要加 final )。
2.生产者消费者实现,不能用 blockqueue ,口述代码。(使用 sychronized 和 wait 和 notify )
3.消费者的 Wait 是否会一直占用着锁,而使得生产者不能获得锁。(?解释半天没听懂)
4.Synchronized 的使用,比方说一个求阶层的递归函数,在 main 中使用肯定没问题,那么如果加上一个synchronized 会怎样,会不会锁不够用?类似的是 f 函数调用 g 函数,同时给这两个函数加上synchronized ,那么会怎样?
5.优先队列怎么实现。(堆或者单链表)堆的调整是怎么实现的,插入和删除调整过程,口述思路。
6.二叉平衡树比二叉搜索树优点(树的高度要低);红黑树比二叉平衡树的优点(旋转的操作次数平均要少)
二面:
最有成就的事,是否能去实习等等。
hr:
直接拿出录用通知,说工资,问什么时间去实习。。。

   总结:从hr哪里看到自己卷子和前面面试回答面试官给的评价,hr说了两句,卷子分蛮高,题目答得也不错。所以笔试和一轮面试是最重要的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面经 腾讯 人人网