http://hujiaweibujidao.github.io/blog/2015/10/09/a-li-bao-bao-de-man-man-qiu-zhi-lu/
缘何而起
想了想,还是打算写点什么,最近发生的事情太多太多了,有喜有悲,有笑有泪,记录下来留着以后回忆也好。
我拿到的offer大概有华为、腾讯、美团、京东、360、完美、爱奇艺、猿题库这些。前面扯点故事背景,后面放干货哈,里面列举了我面试过的公司的面试问题。如果实在没时间看的话,那就下载最后的干货文件吧,祝大家都能找到满意的工作。
阿里缩招
拥抱变化
是的,我是阿里宝宝,而且是真正拥抱变化的那种,我有预料到过这事会发生在自己身上,但是一直不死心,直到最后还是接到大boss的电话告诉我我不合适。
无怨无悔
熟悉我的人都知道我喜欢阿里,可惜终究与阿里无缘,但是两个月的实习真的是无怨无悔,因为我见识到了阿里技术的强大,了解到Atlas容器、 Hotpatch、Windvane等一堆高技术含量的东西;阿里的团队氛围很好,师兄和主管对我也很好,短短的两个月大家一起聚餐过好几次,感觉团队隔 段时间就有outing真是好啊。两个月我成长了很多,从师兄们和ATA社区那里学到很多,也从海豹突击队中收获很多感动。
分析原因
后来我也想了很多,觉得主观客观原因都有,但是大部分还是错在自己实习期间并没有好好表现。我请假多,8月份请了近一周的假期,平时午休时间太长,晚上没 有想着加班赶项目,海豹突击队成绩不好,平时沉默寡言没有和团队师兄师姐们搞好关系等等,还有估计转正面试表现也不好吧,听朋友说还和实习面试结果有关。 对于每个原因我都能有借口,但是又有何用呢?
离杭返京
我也不知道到底是如何决定实习生去留的,总之诸多因素决定了我拥抱变化。我对阿里缩招没有意见,但是我不舒服的是阿里并没有给我心服口服的理由,我有些朋 友是被严厉的面试官问到了,但也有只是和实习生聊聊天的,这如何能决定去留?我的转正面试是在缩招之前,所以没啥准备的我估计就要拥抱变化了,另外担心导 师说我返校太晚,项目不抓紧,所以我9月2号就回了。
海投简历
一时间阿里缩招事件炸开了锅,各大公司hr涌入阿里巴巴实习生下家群,不断地群发邮件给阿里宝宝开通绿色通道,自此热热闹闹的2015年互联网公司校园招聘的好戏拉开了帷幕,从杭州回来的第二天我也就开始投递简历了。
选择性投
一开始,我只是投了几家很感兴趣的,包括腾讯、美团、猿题库和爱奇艺等公司,其他时间我都在填各大互联网公司的校园招聘的网申,完了之后我就开始准备着复 习,傻傻地以为能够接到电话面试。可惜,等了又等,我的手机一直就没有响起过。而另一边,实习生群里不断传来拿到某某公司的offer,或者刚刚某某公司 的第x面。
扩大海投
时间慢慢流逝,我越来越不淡定了,一开始我采取的策略是继续投,一方面如果之前发过但是没有消息的我再重新发一次简历过去,另一方面如果某某公司有android开发岗位我就发邮件过去,这阶段我投了流利说、Glow、锤子、沪江、蘑菇街、堆糖等很多公司。
找人内推
然而即使这样,我也是毫无收获,手机安静的让我害怕。我很郁闷,为什么这些公司连一个面试的机会都不给我!这个时候,一些朋友开始帮我内推,或者朋友通过 些途径帮我内推,陆续内推了小米、完美世界、宜信、Linkedin、猿题库、有道等公司。我向来不喜欢内推通道,但是这次求职让我明白, 内推真的很重要!为什么?请看下文!
修改简历
除了上面内推很重要之外,还有一个最重要的东西就是简历!我的简历是自己从零开始制作的,没参考过任何其他的模板,事实表明这是极其愚蠢的,虽然很有个 性,但是信息不全面啊!后来,我汇总了几个朋友的意见,对简历进行大改,争取做到简练而有内涵,让面试官想了解我,想问我问题。完了之后,我用新的简历又 重新都投了一遍,哈哈哈。
首战告捷
下面开始供应干货啦,摆好姿势准备接收,offer我只能给个大概,大家别问哈。
①完美世界
笔试
:感谢晶晶帮忙内推完美,很快我就接到9月11号上午内推第二批笔试,笔试分java和c++两类试卷,题目综合有意思,但是考完我才知道和往年的题目差不多,而我没有去看过,所以有点吃亏,不过好在还是通过了。
笔试题有选择题、填空题、简答题和四道编程题: (1)实现生产者消费者问题; (2)基于链表实现队列的入队、出队和删除队列内特定节点的操作; (3)单例模式; (4)最长递增子序列。
只想说下单例模式,如果只是写出double-check这种可能只是过关,但是如果能写出静态内部类的实现方式的话会给面试官留下深刻印象的,我在后面的几次面试中屡试不爽。(参见书《Java程序性能优化》)
面试
:9月17号下午两点面试开始,一直面了5面,到晚上7点多钟才结束。前3面是技术面,分别是服务端leader、 客户端leader以及算法面。中间加了一个产品面,最后才面的hr。面试官都挺好的,完美面试有个特点,面试官看你的笔试试卷然后问你问题,所以如果你 需要特别注意自己做错的题目。(当时笔试结束我趁着hr们收试卷的时候把题目拍了下来,后来回去看了看不会的题目,难得机智一回啊。)
一面
:hashtable/vector,hashmap内部实现原理,hash函数和hash冲突,thread和 runnable,多线程同步机制,static和非static方法的加锁区别,加锁的本质,error和exception,runtime exception和非runtime exception,throw和throws,TCP断开连接的过程和TCP中的状态
二面
:final,String常量池,事件机制,View和ViewGroup,5.0更新的内容,图片库,图片下载很大的图片,图片并行/串行加载,防止图片加载错位,AsyncTask内的线程池实现机制,10个数9个球的智力题
三面
:16个数字在最多20次比较下得到第2大的数字,2sum题,LIS的解法,JNI方法注册到虚拟机
总结
:我很感谢完美在我很沮丧的时候给了我信心,面试官尤其是第二个面试官和我聊了很多,让我在面试过程中放松了很多,后面还给了我不少找工作的建议。完美大厦很大,工作环境还行,今年完美还独立出来5个子公司,目前发展很不错,有餐补,有加班费哟。
offer
:匿了
乘风破浪
完美告捷之后我挺开心的,自那以后我后面的日子基本上就是笔试+面试,不停地奔跑着。
②爱奇艺 sp
面试
:9月18号下午爱奇艺内推面试,总共三面,都是技术面,也是一直面试到晚上。我一直坐在爱奇艺公司的茶水间旁边,小桌子,落地窗,可以直接看到繁华的中关村。
一面
:1.在项目荐货中做了什么,具体介绍其中一个点 -> 讲了MTOP的大致实现,分析了其中的代码编写方式,Request-Response-RemoteBusiness,面试官问了很多扩展性思考的问题,为什么要设计成接口?如何做到扩展?
2.在项目贰货中有什么难点的东西,具体介绍下 -> 自定义SlidingView的实现,事件处理机制,面试官问为什么要重写onInterceptTouchEvent方法(拦截事件,不传递给子View),Scroller原理,Fragment嵌套
3.Activity的onSaveInstanceState方法的调用时机,onPause和onStop方法的区别
4.设计模式到底是干什么的?-> 高内聚,低耦合
二面
:1.抽象类和接口的区别;2.Java集合框架中的类和接口;3.二叉树的深度优先遍历,写代码;4.生产者消费者模式,写代码; 5.Binder机制,Ashmen和/driver/binder,mmap,aidl创建service的过程 6.WindowManager和Window的关系 (不会)
三面
:1.聊项目 2.手淘的模块开发的方式,Hotpatch的实现原理,UIKit中的Feature机制
加面
:9月24号爱奇艺给了我一次加面,面试官是VP,因为VP比较忙,加上自己当时还需要赶去tx的面试所以没聊很久,主要是听VP介绍了爱奇艺的发展和目前的产品线情况。
总结
:三轮技术面试中我给二面和三面面试官都留下比较好的印象,不确定一面面试官感觉如何。从上面的问题中可以看出一面 面试官应该是个架构师级别的,他是临时代替本来要来面试我的人,问的问题站的角度高些,大多是需要面试者去做扩展性思考,思考为什么要这么做?还能怎么 做?怎么做更好?等等。还有一点是,当我说到手淘中的某些东西的时候,面试官很感兴趣,看来当时在手淘疯狂看ATA社区涨姿势真心没错啊!
offer
:暂时只是确定为sp,10月13号详谈。
③360
面试
:360的面试也是女友室友帮忙内推的,面试是下午,我第一次经历两个面试官同时面试,可能是为了节省时间吧,感觉 面试官挺忙的,临时过来面试我而已,并没有准备,所以问题基本上是看我的简历问的。完了之后就面了HR了,好快啊有木有,告诉我说offer是和校招的一 起发回去等通知。
一面
:Binder机制,绘图机制,曲线动画的实现,事件机制
总结
:360大厦还是挺霸气的,当时恰逢中秋,听他们聊的是公司发的中秋礼品什么的。和hr了解到,360这边招人貌似是随机分配的,所以你不知道你会是哪个组来面试你,我貌似是360浏览器工程师面试的我,调岗貌似也不方便。
offer
:由校招组发,还要等几天。
④猿题库 sp
面试
:猿题库的面试机会是无意中在北邮论坛中看到的一个北邮师兄想帮师弟师妹们内推,所以我就厚着脸皮把简历发过去了, 哈哈哈,没有办法,之前的笔试并没有通知我。9月19号我到了三里屯SOHO去面试,猿题库面试很效率,三面技术面,上来不会问你做了啥的,直接上算法 题。我不是很适应,还没进入状态,而且题目很长很绕,所以一面只是勉勉强强通过了,等了会就进入二面了,还是算法面,做了2道,再等了一个小时左右进入三 面了,完了回去等通知。9月24号几个创始人亲手给通过的人发offer,并在北大附近设宴款待大家,诚意满满啊!
一面
:假设有一个数组和这样一个元素扩展规则,数字从1开始往后填充进数组中,每到一个位置k的时候都可以选择向左或者向右扩展,如果原来位置上已有数字的话,原有数字会被新数字覆盖掉。问,对于给定的数字序列,是否能够通过上面的扩展规则得到?
例如,1->2->3 此时,4的位置可以在3的右边,序列变成1->2->3->4,也可以在3的左边覆盖掉2,变成1->4->3。
例如,1->7->5->4 可以,1->9->10->3 不可以
二面
:(1)求一个M*N的二维矩阵中的的一个封闭图形的面积,图形的边是用斜线或者反斜线表示出来的,非边用’.’来表示; (2)给定一个数字N,求出所有满足以下条件的数字对(a,b):①a,b都是素数;②a+b<=n;③a+b也是素数。
三面
:(1)聊项目:人脸识别项目中OpenCV在Android中被调用的问题,手淘中模块化开发的具体方式
(2)JVM内存模型,句子 A a = new A(); 执行了哪些操作,可以怎么优化这些操作?
(3)手写Hashtable,实现它的put,get,remove三个方法,尽可能地想到需要考虑的内容,concurrent包中的类(不会)
(初始大小,装载因子,hash函数,hash冲突以链表解决,线程安全(何处加锁),Entry类和Entry数组,泛型!)
总结
:猿题库的确是求贤若渴,目前发展也很好,找到了自己在在线教育领域的盈利模式,工作地点在三里屯SOHO,环境和氛围都不错,待遇相当好,平时的补贴很多,还有团建费和每年的5000旅游基金,还有就是想看就看的电影啦!
offer
:匿了
直挂云帆
前面状态一直挺好的,走哪打哪,自己也一直小心地维持着状态,平时抓紧时间复习总结,当然也要保证休息,一有好消息就和女友和好伙伴分享和得瑟,哈哈哈。
⑤美团 sp
笔试
:众多公司的笔试中我最喜欢美团的风格,题目比较综合,难易适中,关键是美团自己的一个考试系统,虽然可能是外包开发的吧,但至少比很多公司都用心很多。9月19号上午笔试,正常发挥都能过。
面试
:9月23号下午面试,当时我刚从京东的二面赶过去,中午饭都没有吃,在惠新西街南口做公司大巴过去了,我是个晕车 的人啊,所以那天中午是又饿又晕,当时很沮丧,感觉我要完了。进了美团之后感觉环境很好,在健身房等候,有吃的喝的,嘿嘿,赶紧填点肚子。总共面了3面, 是我喜欢的这种形式。我那天很紧张,担心会出错,但是当我坐下来回答问题的时候我变得冷静了很多,和面试官聊了聊就进入状态了,那天答题很快,代码写得也 很快,当然编程题太简单了,我真是运气好,为了炫技,我一面用Python实现快排,二面用Java实现归并排序。一面的时候还写了一个 LRUCache,因为当时和面试官对于LinkedHashMap是否有某个方法有个不同意见,我就说那我可以写一个LRUCache,面试官不太相信 的样子说写吧,然后我就三下五除二用Java写了一遍,因为我准备过,曾经在这个问题上栽过两次跟头,我不会写不出来,所以这给一面面试官留下挺好的印 象。
一面
:LRU Cache,http请求头,OSI协议栈和各层的协议,数据库(like,trigger),快排,实现自定义字体的TextView
二面
:集合框架中的重要接口和类以及内部实现原理,多线程同步的方式(synchronized和lock,wait和notify的作用和区别) GC算法,ndk中从java层将图片数据传到native如何实现的,人脸识别算法的实现原理,ContentProvider的作用和原理,数据库三范式,归并排序
三面
:jni存在的本质,java和python的区别,android如何实现一个闹钟,兴趣爱好,接口定义矛盾怎么解决
总结
:美团在业内公认的技术很好,CEO也是高技术出身的,所以在美团内部搞技术的待遇很好。美团的工作氛围不错,就我 观察也是如此,在网上看评论也是如此,美团的好评远高于批评。我很希望美团承诺给我户口,但是每次都无果。最近美团和大众合并了,有人高歌有人唱衰,我反 正心里不是滋味,我不懂公司运作,我想象中的美团应该是强悍的铁军,寒冬将至又如何,美团有人有技术,誓能熬过冬天迎接春天的到来,可以在战略上与大众点 评合作,何必要与大众点评抱团取暖,小小糯米到底何足为惧?
offer
:匿了
⑥京东
笔试
:9月18号线上测评,当时急忙从上一个面试赶回来做笔试,所以前面选择题瞎选的,重点做了后面2道编程题,没想到竟然通过笔试了,嘿嘿。
面试
:9月22号下午一面,很轻松通过,面试官索性把剩下的时间留给了我问他问题,我问了很多,哈哈哈,因为我投的是京 东金融,我不太了解。第二天上午过去二面,大概半小时通过,接着面完hr,聊了半小时回去等通知了。我感觉京东hr人都挺好的,无论是跟我面试的,还是给 我发offer的。我对京东有点意见的是面试场所让人感觉不是很舒服,还有就是当时有个很大的等候厅,我觉得hr可以放点吃的或者喝的东西给大家补充点能 量,嘿嘿,强东哥会同意的吧。
一面
:设计模式在android中的应用(工厂,策略,代理,享元,单例,适配器,订阅),写单例模式(静态内部类实现 方式的好处) 以前的某个应用如何做优化(单例,网络[长连接,线程池,请求数据缓存],界面[层次结构,overdraw,include/merge /viewstub],图片[mem cache,disk cache,decode]),listview优化(convertview,weakref,decode降采样,滚动停止加载,fresco)
二面
:用过看过哪些框架,Volley的图片库的实现,UIL的实现,GC算法
总结
:近年来互联网金融炒得很火,京东金融是2013年成立的,分为金融部门和支付部门,发展也是蒸蒸日上,不过正因为如此,可能加班会多些。
offer
:匿了
⑦腾讯
笔试
:9月5号晚上参加了腾讯的笔试,做得马马虎虎吧,因为我投的岗位是android开发,而试卷是一堆的C++或者OC题,但我已经不是第一次遭遇这种情况了,所以耐心地做了下来。
面试
:腾讯的面试我都挺遗憾的,总是没能发挥得很好。一面是9月7号的电话面试,那时刚从杭州回来,都还没怎么准备,好 在没有问太多太难的东西。二面是9月22号上午9点的面试,要很早起来,自己脑子根本就没醒。面试官一开始提的问题都和android相关性不大,让我以 为面试官认为我是来应聘后台开发岗位的,所以冒昧的在面试官提问了之后和他说了下我是来面试android岗位的,但是从当时面试官的表情来看,其实他是 知道我是来面试android,他希望我尽力回答这些问题,当时的我真是要被自己傻哭了,果然是没有睡醒啊。后面也渐渐乱了阵脚,我每次面试腾讯都会紧 张,我莫名地担心自己出错。三面其实不是技术面,主要是和面试官聊自己的项目经历和未来发展。最后面的hr也挺好的,我就记得他问我大学以前印象最深的是 什么事情?嘿嘿
一面
:1.自我介绍,提升最大的项目经历,XFace遇到什么问题怎么解决的?NDK,JNI原理,排序算法
二面
:用户登陆的设计实现,第三方登陆的设计,根据qq号查询用户,数据库表的设计,android框架,jni方法的调用,写一个jni方法的调用过程,多线程中的方法,加锁,系统框架,内存优化,anr调试,进程通信, 印象最深的开发过程中遇到的问题,最后是如何解决的?一个应用占用内存比较多,如何对它进行优化?android的调试方式?有写过进程通信么?
总结
:腾讯是巨头,发展一直很好,各个领域的布局也是非常完善和扎实,技术也是业界领先的。我投的是微信事业部,很明显 没有希望,听说它今年不招人了或者招很少的人。我如果加入tx的话是分到北京OMG,做腾讯视频的智能电视端应用开发,用cocos2d-x,我还没学过 这个。
offer
:有待进一步确定
⑧华为 sp?
面试
:9月25号面试华为,那天奇迹般地人品超好,等了没多久就一面,面试官是很和蔼的那种,聊了聊项目,还聊了华为手 机以及EMUI,我说了些EMUI相比于MIUI的不足,当时注意了下面试官的表情,也没敢说太多。之后,他给我出了道算法题,找出1到1百万之间的所有 素数。不难,我很快写完了,之后,面试官问我有没有办法优化。我想了一些方式,但是面试官跟我说还有哪些方式,看我没辙了他开始告诉了我这道题目其实考点 很多,我学到了不少,原来这题我想得太简单。于是乎,我让面试官再来一道题,他也乐了,想了想给了我另一道题目,说如何把C代码中的所有类型的注释都删 掉。这题看起来和算法没啥关系,面试官看我一脸茫然,给我提示从python的pattern matching上去思考下,然后我就在纸上画了画,他看到我大概明白了怎么解就过了,嘿嘿,真是lucky啊。然后就和我聊我想去华为哪个部门,他很耐 心地跟我介绍了华为终端部门的具体情况,完了让我等下直接终面,我就笑着回等候区等候啦。
专家面
:那天最幸运地是我得到专家面试的机会,在去面试的路上我很紧张,带路的工作人员让我放松,别担心,你表现挺好 的。专家是一个某某区的总架构师,很厉害,还是女性哟,所以广大程序媛们加油哟!专家给我的感觉就是很耐心,并不设定这个问题是什么,让我说,让我尽情地 说,让我把我知道的都说出来,从android的系统架构、biner机制、app启动、activity生命周期、listview优化到设计模式都问 了,我印象最深刻的是当我写出静态内部类的单例模式的时候她给我竖起了大拇指,当时我那叫一个开心啊,哈哈哈。当然,专家也很快发现我对 framework层的学习和理解还不够,她也知道原因其实就在于没有人指引我,所以推荐我到终端部门做framework层开发。真心感谢这位女伯乐, 既让我自由发挥,又让我认识到自己的不足。
offer:华为今年的offer可以很高很高,我是分到北研所终端部门,目前只是问了期望薪资,10月12号详谈
半途而废
百度和小米
这两家都找了朋友内推,百度没给面试机会,当时简历做得比较烂,估计没有任何亮点在里面吧。小米面试了一次,9月22号晚上7点,那天北京下大雨, 我从京东面试点往回赶,到了海淀吃了点东西就赶过去面了。面试官是做广告业务的,是面试过我的面试官中能力很强的那种,我印象很深,和他聊了近2个小时, 很明显我肯定暴露了自己的各个软肋,他并没有很快否定我,否则也不会问我这么久,他会通过给提示启发我,但是我最终并没有接到后面的面试通知,后来问hr 说是否通过,她说不能告诉我,我不明白为什么,所以至今无果。小米大厦我感觉还不错,里面的工作环境也还行,晚上是真的有很多人在上班,嘿嘿。
有道和豌豆荚
这两个听说比较难,豌豆荚的移动开发水平是大家公认的,有道的技术水平也是比较强的。我最近要签了,对方还没来得及安排后面的面试,我估计我也没办法了。
有道
:有道是朋友内推的,9月20号下午面试那天记错了时间去晚了,一面是要求半个小时两道算法题,现场写代码。我不知 道有时间限制,加上去晚了时间就更加紧张,因为面试官接着要面试其他人。我写了第一道,完了第二道题给出了dp的解法,没时间实现了,面试官觉得还行但是 还有更好的解法,我当时没有想出来。国庆放假前终于收到邮件一面通过了,真的是不容易啊。有道近年来人才流失比较严重,个人感觉有道的发展也遇到了瓶颈。
面试
:1.最多利用一个辅助栈,将现有栈中的数字排序;
2.有n个物品,每个物品重量为w[i],价值为v[i],求从n个物品中取出k个所能达到的平均重量的最大价值。
豌豆荚
:我有豌豆荚的hr的邮箱,很早以前hr联系过我问我是否有空去实习,所以借这次机会我就给hr发邮件希望给面试 机会。9月21号下午2点面试官非常准时打来了电话,还是个女面试官哟,人真是好,问的编程题很简单,嘿嘿。豌豆荚是有大小周的,即每两周就有一周是周六 要来上班的,但是弹性制的,也就是大家来交流交流,大部分时候是吃喝玩乐。豌豆荚的氛围很好,开眼这个app就是豌豆荚做的,还有豌豆荚一览,都是非常棒 的app,点赞。
面试
:1.XFace中人脸识别的过程,如何提取特征,图像从java层到native层的传递,jni中的数据类型
2.图片库中图片下载的设计,listview中图片加载的优化,asynctask的实现原理,future模式,wait方法设置时间
3.view的事件传递机制
编程题:将一个字符串转换成long,在collabedit上
流利说、沪江和Glow
这三家都是上海的公司,电面完了之后都要求过去面试,前两家公司和HR沟通之后答应再给我时间考虑是否过去接下来的面试。
Glow
:我做了那道必做的编程题,完成了一次电话面试,但是没有再邮件回复面试官的问题,即主动放弃了。我有个朋友拿 了它的offer(年薪很高)也拒了,因为能力提升空间不大。老实说,我对这个产品兴趣不大,而且它面试轮数特别多,比较希望能够来实习,所以我也不想再 花费太多时间在上面,因为我都不一定有时间能去上海。
流利说
:流利说的产品我大四的时候就用过了,很喜欢这个app的设计。流利说面了两面技术面,也和hr聊过了,团队小而 精炼,安卓端开发有前微信团队的工程师在里面。我一面面得还好,从下面的问题可以看出考核的范围很广,适合平时编程较多的面试者。一面完了之后给了我一个 编程实现题做,做完上传到github上。二面很突然,面试官也很犀利,我感觉他并不愿意来面试我,我后面就回答得很怠慢,所以面得很惨,后来也忘记做记 录了。
一面
:1.应用打包流程,string.xml中的string到哪里去了 ( resources.arsc
)
2..在listview中做图片加载的流程和优化(-> UIL的实现),如何处理图片加载错位的问题
3.遇到什么OOM的情况以及如何解决的,低版本Android系统的图片OOM问题怎么解决
4.git命令,例如rebase,场景:在分支中对代码进行重构
5.对gradle的了解,相关gradle命令,如何将dependency下载到指定位置,其他打包工具(fb的Buck)?
6.加密协议,RSA算法的机制(-> 加密通信连接建立的过程)
7.进入界面很慢的原因可能有哪些?-> 如果防止过度绘制?(-> 事件处理机制)
题目
:实现一个特殊要求的带标注的Textview组件,看 这里。
沪江
:沪江的产品我也是很早就用过,曾经超级喜欢沪江小虎,用它做过头像。沪江的面试官很nice,经验很丰富,问题一 般是问我怎么来设计一个什么,总是能直接问到我给的方案中的要害,让我纠正或者完善设计。一面之后过了几天给了我一份小试卷让我有空的时候去完成它,题目 适中,分析题出得很用心,切合实际需求。
一面
:自我介绍,项目和实习经历,client和server的接口设计,如何设计网络请求、反馈处理、界面更新的流程,git/shell/python熟悉程度,接口安全?消息推送?
题目
:算法题挺简单的,leetcode刷过。
编程实现题是实现一个进度条样子的组件,可以看 这里
分析题好难,我选择回答第2题,不知道怎么答,有会的童鞋教教我哈!
1、当客户端和服务器端建立一条 TCP 长链接,服务器端通过长链接不断的发送 消息指令。大概是一分钟 3000 条指令的量。现在需要将这些指令即时发送到用户界面。但用户界面有 10 个,每个不同用户界面需要接收的消息不是全部的 3000 条。请问如果让你来设计这个系统结构的时候,你会怎么做?你觉得框架中应该 用到哪些技术?
2、现在我们自己建一个推送系统。客户端可以通过推送接收到服务器端的消息。 而我有多个客户端应用要使用这个系统,为了节约服务器资源,我们想一个手机 和服务器建立一条链接,避免资源的浪费。你有什么办法解决这个问题?会使用哪些技术?
Google、微软、Hulu和Linkedin
本来想试试的,后来想想还是算了,原谅我连尝试的勇气都没有,大家勇敢点去试哈。Google的话还可以内推,分几次招的,有在线编程题,去年做 过,题目不难,小测试集一般能过,大测试集要都过挺难的。微软今年的待遇很好,听人说北京这边年薪25w+还解决户口。Hulu的宣讲会我去了,hr说大 概招20-30人左右,我估计Android研发岗位并不需要人所以就放弃了,况且Hulu面试听说很难。Linkedin找了朋友内推了,后来有了些 offer就没去试了,因为我感觉对面试累了,而且领英对我可能成长不会太大。
其他干货
0.经验
(1)前期多面试多总结,积累经验,我因为前期海投了不少公司,所以后期无奈要面试那么多公司,有些战线拖得还很长,在没有正式offer前都可以继续面试,毕竟实习了都可能拥抱变化,面试通过了也有可能拥抱变化的;
(2)合理安排自己的时间,例如一般现场面试都会安排在下午,所以尽量将电话面试安排在上午或者晚上(如果可以的话);
(3)搜集消息,包括网站、论坛、微信群里面的消息,好记性不如烂笔头,任何你觉得有用的消息记录在note中,保持手机端和电脑端同步,我是用Evernote和苹果的Note app;
(4)出门在外书包里时刻放着自己的简历,打印很多份,有作品的话也打印出来,为了效果好彩打,这点钱会值得的,书包里多放些零食、水或者饮料、充电器;
(5)面试时沉着冷静下来,不要慌乱,会的知识尽量说出你曾经在哪里应用过,不会的或者忘记的直接说不会,不要含糊。美团一面被问了数据库的触发器,我本 科写了很多触发器和存储过程,无奈这么多年过去了我真的忘了,二面问了数据库三范式,我也是直接告诉面试官我真是忘了。
(6)常常要求写的代码多写几次,常常问的类看看源码。例如生产者消费者问题、单例模式、归并排序、快排、LRUCache等代码实现,AsyncTask、HashMap、Handler等类的实现。
1.书籍
Java书:《Java程序性能优化》和其他
Android书:《Android面试宝典》和其他
算法书:《剑指offer》、《算法谜题》和其他
2.网址
(1)这位小朋友很细心地总结了 Java基础知识汇总
(2)大牛Trinea维护的网站,介绍了很多Android开源项目和Android开发公共技术。 link
(3)面试不得不刷的LeetCode,早点刷完,以后面试前多看看就行。 link 题解link
(4)九章算法面试题库,仔细看下来会发现他们做得很细心。 link
(5)牛客网笔试题库,空闲时间可以在他们的客户端做做题。 link
Bonus Time:下面是我自己面试时准备的一些纯干货,分享给大家
我敢保证看完就成offer收割机!哈哈哈O(∩_∩)O~
原本是保存在我的Evernote中的,但是Evernote暂时关闭了note分享功能,所以我只能导出pdf来,里面其实有很多的链接的,但是你点击了是无效的,因为它本来是链接我保存的另一个网摘note,所以只能麻烦你百度下查看相关链接文章啦。
Java部分 Android部分 网络部分
路在何方
这些offer中有不少都挺好的,我也很期待某个公司能够有北京户口的承诺,也希望大家给我求职提些建议,任何建议都有可能决定我最后的选择,谢谢大家!也欢迎大家follow我的 Github或者 微博,祝大家都找到满意的工作!
感谢阿里实习时的师兄、主管以及各个小伙伴们,那段日子真开心!
感谢身边的朋友在我需要的时候毫不犹豫地帮助我内推,谢谢你们!
感谢一直在我身边的她,如果没有你的陪伴我坚持不到现在,么么哒!