【阿里巴巴】客户端岗-一年安卓面试经验分享~

一面

1.询问了我博客上写的一些东西,从项目立意谈起,到设计,再到详细的技术实现,由于自己写的博客还是比较熟悉,回答的还不错

2.GLSurfaceView的相关知识,OpenGL,Shader,绘制流程
3.当前做的项目,以及到具体的实现和优化
4.多进程间的通讯,Binder机制
5.询问看过哪些框架源码,EventBus,Volley讲了一下

大概聊了一个小时左右,聊得还可以,基本上都回答上了,中间给了我很多建议,不懂的地方,也会仔细跟我讲解一番,其实有一半的时间都是跟我聊产品,为什么这个产品好,怎样做才能迎合市场,然后怎么设计整个产品等,感觉跟我现在水平不是一个层次的,果然,第二天就给我发了一封邮件,说我现在暂时不太合适投递的岗位。

总结

自己对于互联网有一些小小的见解:随着资本的冷却,整个互联网市场也逐渐的冷静下来。
归根到底并不是工作难找了,而是iOS应用开发工程师这个职位已经趋于正常,再也不是没什么技术也能拿高工资的香饽饽。当然这个也不是绝对的,对于中高级的开发人员来说,市场还是比较缺少的,尤其是知名企业对于招聘员工来说,不仅要求有过硬的技术,还要求有高素质,好的教育背景等等。总的来说,高工资可以给你,但是前提条件是你要足够优秀,或者说让面试官觉得你很优秀。
其实面试过程就是一个把你自己推销给别人的过程,对于毕业不久的同学来说就是要让面试官感觉你技术好,有培养价值。感慨有点多了,还是来点干货吧,大概列举一下每一轮面试的大概范围和深度,但是也不是绝对的,还是要看具体情况。

笔试

对于社招的同学来说,基本上不需要笔试,但是也有公司是需要的。笔试都是比较基础的一些知识,Java、Android等方面的,一般不会有网络,计算机等方面的笔试,一般情况下大家都能答出来。

一、二面

近一段时间的面试经历来说,一、二面的问题没有什么很大的区别(公司基本上都有3面技术面,但是也有例外,我在美团就是2面技术面),基本上都是一线开发人员。主要考察你是否有牢固的基础知识和是否在平常开发中能熟练使用。是否能讲解清楚你所做的项目,以及使用到的相关知识。

  • Android基础知识
  • Java基础知识,大概是多线程,线程安全,集合类,JVM,类相关知识等。
  • Android一些源码的阅读
  • 优秀的第三方框架源码阅读

三、四面

一般公司都是三轮技术面,但是也有四轮技术面的,不过不多。很多公司基本上每一轮面试官都会录他所询问的问题,以便给下一轮面试官作参考,还有就是避免对同一个知识点多次询问。所以到了这轮面试,基本上不会再询问比较基础的知识。会从两个方面考察:

  • 广度:比较新的技术(Rxjava,插件化等),JVM,GC,网络,数据库,Android(一般不会询问之前面试官问过的问题)。
  • 深度:一般会通过1或2个问题来考察
  • 项目中的贡献,所做的优化
  • 设计能力,基本上不多,这个要看面试的岗位,因为我这里面试的只是高级开发,并不是架构
  • 工作中的亮点和突出

HR面

基本上到了这轮,你就算通过面试了。hr会询问一些你的经历,最主要的还是和你商定薪资待遇。

在这轮,大家应该要对自己的薪资水平有一个大体的了解,一般都是在原来的工资基础上增长20%~30%的样子,当然,如果你在面试过程中表现非常优秀,也可以不受这个限制。当然如果公司诚心要你,就算你要的工资过高,hr也会委婉的告诉你,不会直接把你pass。

选择公司

我觉得选择公司应该从以下几个方面来考虑:

  • 公司是否在上升期。
  • 所做的东西是否有市场价值,自己是否感兴趣。
  • 通过面试基本了解将要共事的同事技术情况,毕竟如果你周围的人很优秀,那么你肯定也不会差,一定要跟优秀的人一起共事,你会获得很大的成长。
  • 薪资待遇,毕竟我们找工作就是为了养家糊口,我相信这一条也是很多人决定一家公司的重要理由之一。