笔者15年毕业一直在小公司,觉得完全靠自学已经到了自己的天花板,而后想进大型互联网公司发展,所以年前辞职,放弃了年终奖,年后就直接来的北京,面试的公司有稳固的大公司,也有创业型公司,有些创业型的公司面试质量也挺高的,不输于少量大公司,下面会说到。
不论是Android基础还是Java基础以及常见的数据结构,这些是无准则地必需要熟练掌握的,尤其是非计算机专业的同学,面试官一上来一定是问你基础,要是基础体现不好很容易被扣上基础不扎实的帽子,常见的就那些,只需你平常认真思考过基本上面试是没太大问题的。
基本上每家公司都会有算法题,我当时是看了左程云的《程序员代码面试指南》,重点看了数组跟链表,二叉树没有去刷算法题,对于二叉树的掌握在于三种基本的遍历以及在排序算法中堆排序中用到的二叉堆,而后每道算法题都先自己去实现,先写思路,而后自己去实现一遍,而后再看看答案,记住答案的思路,第二天再重新按照答案的思路实现一遍,这种效果非常好,我没有去刷很多题目,而是想通过这种方式去分析常见的算法题,所以我不大建议去刷算法题,首先作为用户端开发,涉及不到很多的算法,第二,面试的时候考的算法大部分都是很基本的数组组跟链表构成的,最后算法这个东西是个无底洞,个人觉得没必要去刷题,刷题可能对小公司有用,但是大公司更看重你处理问题的能力。
对于Java,加载的是Class文件,一般会问到Java运行时的内存分配,类加载机制以及GC,实际上后面两个问地比较多,尤其是GC相关,往往结合四种引用出题,最后会通过这个来引出内存泄露相关的少量问题。
Android的虚拟就DVM以及ART是对JVM做了少量优化,加载的是dex文件,对Class字节码做了少量优化,这个里面其实挺复杂的,我只知道少量基本的概念。
这个其实要是问起来其实是有很多东西的,假如是Java相关其实还好,会问你类加载机制,但是Android里面除了Java的类加载机制之外,还会引出插件化跟热修复。
基本上略微大点的公司都会问到,不过我的答复始终如一:我只能看懂C的代码,项目中没有用过JNI,当然这个属于加分项,由于我当时的选择是把我用过熟习的东西研究地滚瓜烂熟,而不是在自己平常很少接触到的东西上面搞个一知半解。
Binder系列,各种AMS,WMS,PWS,常问到的有APP的启动流程,而后两个Activity相互跳转的时候的生命周期,Activity的生命周期。
不要想着什么都会,那样不现实,比方说我对Binder机制以及热修复,插件化这块儿的确理解地比较通俗,也跟高德,爱奇艺等公司的面试官聊过这个话题,这些属于加分项,不会影响到最终的面试结果,还有就是算法,面试最多考一道或者者两道算法,所以没必要在这方面花太多的时间,掌握好常见的数组跟链表,二叉树/堆理解一下,基本就够了,公司看重的是你处理问题的能力,你把原理掌握好,常见解基本上都没什么问题。
当你基础知识OK,自己用过的东西的了解地有深度,处理问题的能力OK,假如面试官想要你,那么他会去找你的优点,反之他会去找你的缺点。所以假如你想进某家公司,那么你就按照他们的要求去面,就算面不上那么也没什么,只能说不合适,而后查漏补缺继续面,不要由于某一次或者者几次的不顺就否定自己,有些公司的面试官就是喜欢装,而且还是大公司的。
学历很重要,我的学校只是个普通本科,相对一般,所以投了很多知名互联网公司简历都过不了,就连好大夫在邀请我面试的时候特意问了我是不是统招一本,任何行业都看重学历,不仅仅是IT,那些说学历不重要的基本上都是少量学历比较好的或者者是在Android比较火地那个阶段开始搞地Android,他们这批人往往会觉得在03年跟18年加入的阿里的难度是一样的,那些觉得学历不重要的可以去看看张雪峰老在《演说家》中的演讲,不要说什么3年以后公司就不看学历了,学历是一辈子的事情,那些高考能够碾压你的人,出了社会只需他们愿意,照样能碾压你,你努力,你拼命,别人也不会睡大觉等你。
科班很重要,假如你本科学地是非计算机专业,任何一个面试官或者者HR都会认为你基础不行,你需要花很多的时间去精力去补基础,而后再花时间跟精力在HR不Pass掉你简历的情况下摘掉基础不行这顶帽子。
工作背景很重要,假如你有大公司背景给你背书,相同的岗位,你进入的门槛比有大公司背景的人要高地多,假如你有大公司背景,不论是面试官还是HR都会在你面试前给你打一个较高的基本分,这个是很有利于你通过面试的。
不过上面都是既定的事实,你没法改变,所以当我意识到这些问题的时候,我只能去不断地提升自己的能力,去花更多地代价去取得一个面试机会,去证实自己的能力进而进入到一个比较好的平台。
面试机会来自于V2EX
面试官是Android的负责人,比较有亲和力,看起来比较幽默,,而后先从我的笔试题开始聊,聊地最多的是进程,他问我应用能不能一上来能不能开多个进程保活,对于这个问题我知道一定是不能的,由于自己平常的确没有在项目中开多个进程,而后面试官态度很好地分析了下说,由于多进程首先会有多个Application,数据会被初始化屡次,其次进程间通信比较麻烦,还有一个就是每个进程有单独的虚拟机,多个进程就会比较占内存,的确是这样,这些我有些印象,但是平常的确没有认真思考过这些问题,而后问我有没有用过Binder,我说只是写过几个Demo,而后面试官就说这个就不问了,就开始聊少量我简历上以及我会的东西,比方说Volley的优缺点,而后提出了一个问题说Volley是否下载电影以及加载大图片,我当时根据我看的源码说可以,由于Volley本身是不支持下载的,需要自己设置Request才能实现这个功能,而后假如是读流到磁盘是没问题的,他说不行由于Volley是在内存中进行操作的,我当时跟他争了下,我说Volley原生不支持下载功能,只能自己设置Request,包括上传也是需要自己设置的,而后他感觉我有些不快,说读流的确是可以,但是ImageRequest去加载大图片的时候,也是在内存中读取的,这个时候就会有问题。不过我想了下的确是这样,这样的话的确会出现OOM,接着面试官就问了一个基础的问题,比方说final一般怎样用,final修饰对象的话能够调用修改属性方法等,最后让我写了个快排。
二面:
面试官问的Java偏多一下,同时也问地很深很细,关于Binder问到了一个问题就是SM是什么时候注册的,这个完问题我完全是懵逼的,而后给我出了一个算法题,就是公差为1的等差数列求和,当时我用了一个很笨的方法,就是用递归实现的,由于当时面试官不是直接说的等差数列,说的是假如输入0,返回0,假如输入1,返回1,假如大于1就依次累加,之前思维定势了,没有想到这是个等差数列,而后面试官问我能不能优化,我当时想到了高斯,而后把首尾相加,做了一步优化,后来实在是感觉没法优化了,面试官给我写出了那个等差数列的前n项和,不过当时面试官给我出了这个题目,返回值是int,我当时注意到int可能会越界,而后说应该返回long,预计是这个细节可能打动了面试官,而后我们就从int,long,到String,double以及BigDecimal,说了很多,由于之前在项目中计算价格的时候的确出现过精度丢失的情况,所以我对这块很熟,所以也聊了很多,聊到屏幕适配,ConcurrentHashMap所分的段数,最后问了我最大的一次线上Bug是如何处理的,还有在Android中如何查看一个对象的回收情况,那个的确不知道,后来想想应该通过ReferenceQueue能观察到,由于平常没有想过这个问题,所以被问到的时候很容易懵逼,不过整体体现还可以。
面试官是火币的大前台负责人,问了我少量项目开发流程上的东西,相似APK的大小如何进行压缩,如何查看APP的崩溃率,以及多渠道包,而后聊了下薪资以及是否加班等,大部分都是少量非技术性的问题,第二天火币网就给我Offer了,尽管后来我没有去这家公司,还是挺感谢这家公司的,给我后续的面试添加了很多信心。
面试机会来自于拉勾网
面试官是是Android的负责人,主要是在聊自己做过的东西,而后发现我们很多技术上的观点都是相同的,比方说我们都认为任何一个框架两三句话都可以把原理说清楚,但是真正自己去实现的时候往往比这个复杂的多,我告诉他我在自己写图片加载框架的时候踩过的坑,而后面试官也说了他在使用MVP的过程中遇到的管理Presenter的生命周期过程中的探究,由于之前我的一个项目采用的是MVC,当时是用的RxLifecycle进行管理的生命周期,在MVP中我是在BaseActivity中统一把请求取消掉了,而后他说了他的处理方式,的确很有探究精神,我也学到了很多东西,最后简单说了天猫的七巧板布局,大部分还是在聊项目中的少量细节。
面试官是手机端负责人,而后问了我APP的启动流程,这个我说我没怎样深入研究过,面试官也没说啥,而后继续问了少量Java基础,Java引入泛型的起因,泛型边界,集合框架,最后问到了SparseArray以及ArrayMap。最后说到了内存回收,而后带出了GC以及四种引用,因为他们的项目中很多地方用到了WebView,所以他问了少量WebView的跟JS进行交互的问题,最后还聊到了WebView的性能优化,感觉面试官的确对WebView比较理解,不过我也觉得没什么,毕竟这块不是我擅长的地方,面试官也表示了解,而后最后出了一道算法题就是回形打印二维数组,整体来讲他们其实还是侧重于项目,也考察了基础,整体感觉他们的技术还是很好的。
面试机会来自于Android Weekly
一面
面试官问地都是Android底层的东西,有些还涉及到了Android的Hook插桩技术,面试完,我觉得自己跟只傻狗一样,什么都不会,问了有10来个问题,唯一的两个应用层的问题因为紧张也没有答好,一个是线程池原理,一个是DCL单例少写了个非空判断,其他的问题真的是答地很水,由于前面的底层知识了答复地很不好,所以对自己应用层的发挥的确是有影响的,所以希望大家在面试的时候心态肯定要平和,切记不要紧张。因为他们项目在底层采用了很多关于IPC之间的东西,所以基本上需要对底层很理解的工程师,我自己也感觉的确答复地力不从心,而且我是给他们CTO直接发的简历,忽然间觉得不好心思,答复地挺垃圾的。
面试官是做IOS的,基本上是处于聊天的状态,反正聊地很开心的,而后对我评价很好,他说他不懂Android,但是能感受到我的技术好奇心,听了还是很开心的,反正基本上没怎样聊具体的技术,主要是聊了聊IOS的Hook以及热修复相关的技术,问他们是怎样实现的,由于我知道IOS在这个上面比Android要复杂少量,反正整体就是很放松。
三面是产品总监,基本上就是谈古论今了,让我说说对Android以及IOS的看法,我说谷歌未来一定会在人工智能上干掉IOS,而后他说为什么,我说由于谷歌掌握了搜索的大数据,Android产品接入的成本低等等,而后我跟他说我希望产品在设计原型的时候需要考虑一下Android跟IOS两个平台的差异,不能一刀切,他说是应该这样,但是有很多时候需要保持平台一致性就需要做少量妥协之类,最后其实还聊到了锤子,聊了聊对老罗以及锤子的看法,产品总监说锤子的发布会每场他都会看,而后他还给他家人买了一部坚果Pro,反正想着一定会挂掉,索性就不那么拘束了,就是一种很放松的状态。
四面是CTO面,当时有点紧张,CTO很有绅士风度,一上来主动跟我握手,当时我有些紧张,手心都出汗了,他说我是不是很热,我说是的。而后说自己从网易出来之后就开始创业了,一直是在做提高企业生产效率相关的产品,现在做的GrowingIO也是的,而后问了我很多问题,主要是我在上一份工作中的成长跟收货,未来的规划等等,以及在项目中遇到问题是如何进行团队协作的,问地很细,可以看地出来公司对这款产品非常重视,像滴滴企业版,陌陌等都是他们的用户,感觉这家公司会发展很不错,最后我也问他为什么会尝试做那么多产品而不是专注于某一款产品等等,而后他也给了详细的解答。
没有给我Offer的起因在于我的薪资可能开地过高,一面基本上是处于被淘汰的局面,但是我跟后面的面试官都聊地很好,晚上还在那儿吃了顿饭,最后CTO还跟我聊了很久,我觉得他们应该是觉得我可以培养,但是薪资要低偏高,所以就最终放弃了我,由于对于创业公司,我的薪资都开地高少量,不论结果怎样样,还是挺感谢这家公司的,希望他们发展地越来越好。
面试机会来自于拉勾网
一面:
一面还是只需从简历上入手,而后问地相对来说比较简单,面试官应该跟我年限差不多,更多地在于很多东西怎样去使用,比较侧重于少量细节,不过整体来说体现地自我感觉比较满意,由于基本上都是问我会哪些东西,而后从我会的角度出发,一步一步来进行深入交流。
面试官看起来经验比较丰富,偏向于Java这一块,应该是从Java转的Android,看上面的问题其实就能够看出来,问到的Android很有深度,一上来就搞了个APP的启动流程以及AMS,那个读写锁的确不会,之前没听过,当时是要我实现这个功能,我用了很多种方法去尝试,但是最终没有达到预期的效果,而后面试官就问我知不知道读写锁,我不知道,而后他就没有再深究了,尽管这是一家小公司,但是我能感受到对一个非科班出身的程序员的尊重,再次表示感谢。
面试机会来自于Boss直聘
电话面试之后就挂掉了,第2个问题答复地不是很好,因为没试过一个线程能创立几个Handler,所以不太确定,最后还是对Handler机制理解地不够深刻,别的基本上答地还可以,全面屏没适配过,最后就没联络我了。
联络我的是京东上海的部门,而后说他们主要是做底层的,所以问了少量底层的东西,第2个问题,我就之前没遇到过,而后Hook插桩这些,很显然不会,而后就凉凉了。
看面试题其实即可以发现,京东金融是偏向于安全这个领域的,最后面试官也跟我说,我进去之后会往移动安全工程师方向发展,最开始的那个算法,没答好,当时我的思路实际上是打算取一个数组就把数组中的元素给置空,但是因为是int数组,所以没法置空,当时就在这儿想了一会儿,而后面试官给出的答案是直接删掉这个元素即可以了,但是性能较差,假如考虑性能则可以直接跟尾部元素进行交换,而后下次随机的范围减1即可以了。剩余的问题答地其实还可以。
二面的话问的问题比较常规,基本上跟之前的公司重合度较高,没有难度,主要比较注重应聘者处理问题的能力,特别是像那个权限适配,我之前做过权限适配,所以那个问题答复地他挺满意的。
面试机会来自于拉勾
看过面试题能够知道,一面比较重基础,也是少量重复性很高的问题,不过完美的面试官可能比较注重细节,很多问题你只需平常思考过了基本上是OK的。
二面的面试官是北大毕业的,问的问题都比较深入,涉及到了很多Java跟Android的细节,后来才知道,他知道我基础还可以,之所以问到后面的那些问题是由于想给我定级,当我说我理解Gradle的时候,面试官问我能否理解Gradle的生命周期,当让我写一个DCL的时候,问我Volatile的作用是什么,如何防止单例被反射实例化,DVM&ART是如何对JVM进行优化的,Class文件如何转换成Dex文件,反正就是你会的一定会让你表达出来,你不会的你也没法装下去。
面试机会来自于Boss
面试官问了很多底层的实现场景,有深度也有广度,在跟他交流的时候,能够很显著地感觉到自己在很多问题上没有做过太深入的尝试,不过整体感觉还可以,基本上自己的能力是完全发挥出来了,很多问题他问地特别细,比方说ANR问题,问到了在四大组件中ANR的时间是多少,还有ListView的缓存对于多种Type是如何实现的,很多问题你只知道概念是没有什么用的,都需要自己的了解,不过像硬件加速这种问题,的确没有细想过,我也不会去细想,以为之前在传统公司是不可能有时间跟精力理解这些东西的,只能说北京自己来晚了,但是来对了,当面试官知道我是第一次来北京的时候,还跟我开玩笑说会不会干几个月又跑了,最后一面面完之后还让我留了他的电话,说北京租房子挺贵的,要是有什么问题的话可以给他打电话,感动ing。
面试官的问题基本上是没有离开过Binder,热修复以及插件化,不过我的确,因为紧张,快排写地也出了点问题,心中千万头羊驼呼啸而过,尴尬地一比,当聊到组件化的时候,我觉得这个是我的优势,而后说了一大堆自己通过反射的实现,而后他说反射会在混淆的时候出问题,还有就是性能上的问题,自己研究了那么久的东西,在他这里没有看到丝毫的价值,的确也比较失落,不过他们是做车机的,的确需要对底层掌握地比较熟练,想着十有八九是凉凉了。
面试机会来自于Trinea内推
一面:
一面面试官可能比较忙,没有问太多的问题,主要聊了聊我GitHub上面的开源项目,当时这个聊了很久,而后说了他们项目中也采用了ItemDecoration的列表联动,而后就问了我如何解决ItemDecoration的多个点击,最后聊到了事件分发机制,主要是在ListView里面嵌套一个Button以及在ListView里面嵌套一个ScrollerView让我说一下事件在dispatchTouchEvent,onInterceptTouchEvent,onTouchEvent中的传递过程,面试官先让我说,我只是说了大体流程,而后面试官又给详细地分析了一遍,分析地非常详细,的确让我收获颇丰,自己对事件分发的了解又更加进了一步。
二面面试官问了很多基础方面的东西,问地特别细,主要是考察Java基础,感觉面试官是想跟我讨论一下比较新的技术框架 的,但是像DataBinding以及Glide这些我都没有用过,所以就问了我很多基础的知识,整体感觉还可以,的确有些基础没有掌握好,深度也有些欠缺
面试机会来自于Boss
掌阅整体的面试质量比较高,但是面试官给我的感觉有点过于自信,就像第5道算法题,我当时的确没有想到除了遍历之外该如何优化,而后面试官说可以开多个线程,我当时听了就觉得很无语,但是他给出的理由是O(n)的算法不能优化,只能开多线程,我说即便不能优化,也是可以在O(n)的基础上进行加快的,比方说用遍历完一遍,做个缓存,做个标记,假如该目录下没有发生变化下次可以直接读缓存之类的,开多线程这种操作我个人认为的确算不上优化,最后这个问题不了了之。然后还有一个问题就是他说在复写equals方法的时候要复写hashcode方法,但是当时我说没必要,假如是自己定义的一个类,只要要比对对象的唯一属性,比方说定义一个学生对象,我只要要判断学生的ID能否相等就行了,也就是只要要复写equals方法,没必要复写hashcode方法而后场面又很尴尬,我后来想了下可能他想表达的是在集合类中存储的对象必需要同时复写equals跟hashcode方法感应该是说地过去的,但是当时没有这个前提,我觉得在复写equals方法的时候不肯定要复写hashcode方法,加上前面的那个算法题,可能自己当时情绪也不是很好,所以沟通上的确出现了少量问题。
我记得掌阅是在Boss上面进行投递的,当时是跟掌阅科技的手机端负责人黄剑进行沟通的,其实最开始知道黄剑是在跟包建强老师一起做一个自己设置的ListView的时候,那个时候在性能优化的时候在还在同一个微信群里面请教过他问题,所以对掌阅的印象其实挺好的,但是这次面试的确体验不是很好。
面试机会来自于Boss
一面面试官问地都是基础,但是有些有难度,比方说那个LinearLayout跟RelativeLayout相对布局,我当时只答复了LinearLayout需要测量一次,而RelativeLayout需要测量2次,而后假如只嵌套一层首选LinearLayout,假如多层需要使用RelativeLayout,但是当具体问到RelativeLayout两次都测量什么的时候我没答上来。还有那个算法题。最后实现了,用数组实现的,但是我感觉应该是树,但是对树不熟习,所以用的就是数组。
二面感觉有点没怎样发挥好,由于面试官首先问了问我GitHub上的开源项目,但是他找了几个问题,问我怎样优化,而后又在我项目里面发现了几个问题,问我怎样优化,很显著那些问题都是他是比较熟练的,而且都是自己设置View相关以及性能优化方面的,最后又拿了马蜂窝APP里面的一个滑动动画问我如何实现,基本上都是在问自己设置View,基本上二面就是问了这几个问题,每个问题都扩展了很多,但是都是View相关的,没有涉及到其余的知识点,可能他们的对于自己设置View这块要求比较高,同时也要兼顾到性能调优,整体来说,自己设置View的确不是我的强项,最后还聊到组件化,他们现在也在做组件化,我说了我的方案,貌似他不是很满意,最后也能感觉到发挥地不行,所以被Pass掉了。
还有一个细节就是,一面面完,当时二面面试官不在,是第二天过来复试的,第二天来了签到之后又等了将分钟,而后他们说签到机坏了,当时感觉挺不好的,不过当我二面的时候在那里等面试官的时候,马蜂窝的一个员工,年纪挺大了,而后看到我的访客牌,单独给我倒了一杯水,的确挺感动的,这个员工不是他们的接待人员,让我肃然起敬,而后他就继续上班了,整体发挥很一般,不过那儿的环境的确特别好,很有风格。
面试机会来自于拉勾
爱奇艺的确要求比较高,面试题目难度特别大,让我说RV的时候,我说了很多,但是面试官感觉都不太满意,而后问地特别细,涉及到了AMS跟WMS,这些问题我答复地一般,除此之外,都答地还可以,最后面试官说可以看出我有些东西研究地比较深,但是没有抓住关键点。
二面感觉比一面要简单少量,但是也有几个问题我没答上来,当面试官说如何在Bitmap解码的时候复用申请的内存,我也是第一次知道原来这里可以复用,而后我提出了自己的疑问,说假如复用的话,那么什么时候回收,他说fresco有自己的回收机制。最后还有Context的了解,我只是看过郭霖的博客,有点影响,的确想不起来了,也是有些尴尬,包括那个用注解实现一个findviewbyid,也是有看过,但是没有完整的思路,最后支支吾吾地答复了一点,除此之外,别的还好。
三面面试官应该是技术总监,第一个问题就把我难到了,我凭感觉说是BaseAdapter,但是转念一想,不对,ListView还支持ArrayAdapter,
而后面试官笑着说让我回去看看源码,接着问了RecyclerView如何绘制的,我当时说了比较多,但是都没说到点子上去,面试官最后给我耐心地分析了下。给我印象最深的是那个算法题,面试官开始问我有没有搞过ACM我说没有,而后他就说看你不是非科班的,就出个简单点的,而后出了两道算法题,一题是实现一个链表,另外一个是写一个快排,但是我感觉面试官对非科班的有些偏见,而后我就说这个太简单了,我说你就把我当做科班的,而后说我希望能够跟科班的做一样的题目(后来想想自己有点飘),而后面试官就出了上面那道算法题, 我一看到O(lgn),感觉凉凉了,想着快排最多也是O(nlgn) ,所以当时想了很久,也没实现,而后面试官给了我提醒,说知道快排原理么,而后我在脑子里面过了一遍快排,忽然想到理解决思路,而后跟面试官说了我的想法,就是用改良的快排,他微笑着表示认可,而后最后说如何去找到标定元素,我说用随机数,他说随机数不太好,而后问了我数学怎样样,我说还行,他说可以采用正太分布,找到线性分布的那个中间点,的确是可以这样,由于没有规律的数据是可以看做正态分布的,也就是符合线性回归的。
面试机会来自于内推
1.APP启动流程
2.Webview内存泄露
3.组件间通信,如何传递对象
4.Arouter原理
5.如何取消一个网络请求
6.两个activity之间来回切换的生命周期变化
7.进程间如何通信,Binder机制
8.内存泄露及优化
9.自己设置view以及事件冲突
10.线程池参数及定义,多线程能否肯定会高效
11.电量优化
美团实际上面了三面,但是面试题跟前面的面试官很多重复的,所以就只写了上面几道题目,整体面试感觉都答上来了,但是问的有些问题的确没接触过,比方说Webview的性能优化,电量优化等,最后HR反馈的情况是基础很好,项目经验不足。
面试机会来自于Boss
笔试题,我答地感觉一般,由于我面试的是猎豹移动的Clean Master,所以偏底层少量,不过整体还好,而且笔试题在面试过程中基本上不怎样问,只是做一个参考。
一面面试官主要是从宏观的角度上看待业务,产品,由于可能看了我的博客跟GitHub,对我的技术有一个大致的理解,而后问了少量基础的东西,就进入了二面。
面试机会来自于拉勾
自己带电脑,他们提供一个接口,实现一个瀑布流,需要考虑动画,内存管理等,可以上网搜,限时90分钟
当时我去的时候出了个以外,HR给我的WiFi我没法连GitHub,当时想着用自己封装的ImageLoader,没想着直接用第三方,在使用RecyclerView的时候依赖也没法增加,所以最开始时间都白费了,直到一面面试官下来,给我连接了他们的员工wifi,我才能增加依赖,尴尬的一比,不过到最后时间到了还是没有实现预期的效果,面试官最后问我,我说了我的考虑,他说只是想看看我处理问题的能力,完全可以用第三方,没必要自己实现,不过对我的态度还是表示认可的,而后开始一面。
一面:
基本上在之前的面试都有涉及到,仍然是问我会的东西,一点点深入,第9道面试题我记得在掌阅面试的时候那个面试官说微信誉地是广播,但是摩拜的面试官说微信誉地是start ActivityForResult,这个我决定以后自己去深入研究下,看看他们究竟是如何实现的,别的问题都是比较常见的。
摩拜问地都是很常见的问题,我能感觉到面试官在问我问题的时候并不在乎我对这个问题掌握地有多好,而是更加关注我对待某个知识点的态度,更多地赋予面试题一个场景,而不是空谈理论,是我比较喜欢的面试官。
三面面试官跟我聊了聊少量新技术,还有就是我自己为什么要重复造轮子,我说为了保证项目的稳固性同时能够更好地去定位问题,而后聊了聊他们目前在做的项目,整体感觉特别好。
上面说地都是少量硬实力,下面简单说些自己在面试过程中总结的少量面试之外需要注意的东西
除了上面提到的公司之外,我还面试了人人车(Boss直聘),以及58同城(Boss直聘)而且也都收到了他们的Offer,因为他们面试的顺序排在后面,而且面试题跟之前的面试题有很多共同点,所以就没有放出来,此外还面试过快看漫画,面了两轮,而后CTO需要改天面,我心里其实比较反感这种公司的,由于作为面试者跑一趟本身就很辛苦,所以后来复试我就没去,还有一家是青橙科技也是需要我去复试,太远了,而且当时手里已经有了Offer就没去,真心希望这些招人的公司能够在一天内把流程能走完,毕竟像少量大公司在跟我沟通面试的时候都会商定个时间能把所有的面试流程走完。另外还有一家是豆果美食,面试官没怎样聊技术,基本上都是在谈人生,谈理想,最后互相加了微信,而后当时问我有没有别的Offer,我也知道自己不会去那里,而后就说爱奇艺给我Offer了,可能他也知道我不会去了,后来就没有通知复试什么的,不过感觉他比较自信,至少比我自信。
尽管自己这次没有进入到BAT等一线互联网公司,头条,滴滴还有陌陌的简历都被刷了,跟那些大佬比起来的确惭愧很多,感觉没啥必要写这个面试经历,但是总觉得写出来了可以帮到少量人,由于自己之前在技术的道路上也迷茫过,从最初的Android小白,当时看郭霖,张鸿洋还有主席的博客学习,而后在迷茫的时候看主席还有VB的知乎Live,也认识了很多小伙伴,在技术上给了我很多帮助,让我能够坚持走到今天,同时也感谢每一个给我面试机会的面试官,Android之路还会一如既往的走下去,希望这篇文章可以帮到少量人,就像当初帮到我的那些文章一样。
针对于上面的面试题我总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案做成了文档和架构视频资料免费分享给大家【包括高级UI、性能优化、架构师课程、NDK、Kotlin、混合式开发(ReactNative+Weex)、Flutter等架构技术资料】,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。