在毕业生眼里,阿里是他们最想去的公司中之一,虽然每年投阿里的简历有十几万,但每年也就招一千来人。其竞争可想而知。
在阿里,P6对应的title叫做高级XX工程师,高级XX产品经理,或者高级XX运营专员。一般来说本科毕业3-5年,专科毕业5-8年能定级到阿里P6,如果是硕士,可能工作1-3年后就能拿到P6的职级。
阿里P6的税前月薪在20K-30K之间,按照阿里标准16薪计算,薪水区间在32万-48万之间(现金部分),中位数一般是40万左右,25k*16个月=39万。
个人情况
首先描述下背景,楼主是一个3年多经验的Android开发工程师,先后服务于3家互联网公司,均从事于Android开发的工作。离职前我在最后这家公司已经工作了将近2年的时间。
那为什么要离职呢?
其实这个问题一直都不是一个单一性的问题,它一定是一个多元化多维度的问题。对于我来说,主要体现在以下几个方面。
-
当前所使用的技术对自身成大不是很大了。
-
当前所负责的项目发展空间到了瓶颈。
-
认为自己的职场履历需要一段大厂经历。
-
这一点本来不太想说,但是确实也是自己比较在意的一点,那就是组织架构频繁变动,导致业务线频繁变更,这一点对业务很不利,需要一直磨合。
面试目标
其实当时的面试目标也不是单一的,比如我的面试目标按以下排序:
阿里巴巴 > 头条 > 美团 > 小米
阿里的面试经历
阿里一面
简历上写的项目问了一遍,然后开始问知识点。
-
volley的源代码,在图片缓存部分讨论了挺长时间,http中缓存机制,Last-Modify的作用等;
-
fragment的生命周期 ;
-
service一些知识 ;
-
事件分发机制 ;
-
Binder实现机制,Stub类中asInterface函数作用,BnBinder和BpBinder区别;
-
gradle中buildToolsVersion和TargetSdkVersion的区别是什么;
-
手机适配一些方案 ;
-
hashmap的实现原理 ;
-
静态方法是否能被重写;
这些大概聊了1个半小时,开始的时候还有些紧张,慢慢聊开了,就好多了,面试官的语速有点快,老是需要面试官重复一遍,我也不经意间语速也变快了,不过能看出来面试官还是很厉害的。
阿里二面
-
3次握手和4次挥手的原因,以及为什么需要这样做;
-
数据结构,搜索二叉树的一些特性,平衡二叉树;
-
hashmap是如何解决hash冲突的;
-
进程与线程区别;
-
写了一个二分查找和单例模式;
-
http中的同步和异步;
-
聊了一些项目上做的东西,问了问职业规划;
由于二面面试官不是做Android,本来面试我的人临时开会去了,所以这一轮面试没怎么问android相关知识,不过二面面试官一直是微笑,所以这一轮很轻松,更像是一起讨论问题。
面试完已经是下午4:30了,由于面试当天是星期五,而周五会议比较多,所以等了会,二面面试官说三面面试官在开会,面试另约时间,我还是说这次一次面试完吧,这一等就等了2个半小时,期间hr跟我说三面面试官是个大牛。
阿里三面
-
我认为Android做的优秀的几个地方,然后又根据我说的问了问比较深入问题;
-
Android是如何进行资源管理的;
-
java比较重要的几个特性;
-
网络五层结构,每一层协议,由于我网络不是很好,还问了一些其他的问题(例如MAC地址和ip地址的区别等);
-
为什么离开原来公司,以及职业规划,然后因为面试完大概就晚上8点了,就先让我回去,下周让hr跟我联系,我想这是应该通过面试了吧;
阿里HR面
企业智能事业部Leader面后又收到了HR面的面试通知,这一轮面试大致问了以下问题:
-
你为什么要离开现在的公司
-
你们公司的岗位等级是怎么评定的,你现在是什么岗位等级
-
谈谈你在公司的绩效情况
-
你觉得你做的最有成就感的一件事
-
你一般解决问题的方法有哪些
-
你是因为什么契机选择做前端
-
你有对你所在的公司做过什么流程或制度规范上的改进么
-
你最近在看什么书,和工作相关么,你为什么要看这些书
-
看到你之前还面试了其他两个部门都挂在了一面,你感觉是什么原因
-
你期望的薪资待遇是多少
**小提示:**这里HR会问的其实不止这些问题,例如你为什么喜欢Android开发这个岗位、你未来的职业规划、你觉得你的优点和缺点有哪些、为什么选择阿里巴巴、对之前几个面试官做下评价、你用过阿里的哪些产品顺便谈谈这些产品的优缺点、你对于互联网是怎么理解的…
面试感受:
阿里技术还是很厉害的,从面试官的水平就可以看出来,尤其是外卖核心部门,办公环境是不错,但是感觉就是有点乱,不知道是不是因为今天面试的人很多,基本上一直有很多人来回走动,有一些嘈杂。
分享一些面试思路
面试过程即是一个 自我考察 的过程,同是也是一个 非常讲究方式方法 的过程,接下来通过这两个方面来展开阐述。
- 自我考察
技术实力是面试的大前提,你需要非常清晰的了解自己,了解自己所要面试岗位,这是决定面试是否成功的先决条件。
比如我工作时间3年多,我要面试的岗位是高级Android工程师,那我这个自身素质是否能满足面试岗位所要求的条件?
其实这一点在我刚刚面试的时候也是拿不准的,因为在公司已经3年,这段时间对外界的发展其实是不了解的,所以我做了以下几件事。
-
把自己负责的项目业务进行整体总结。
-
把项目中用到的所有技术进行整体总结。
-
复习常用 框架/系统 源码,比如Glide,Okhttp,Reteofit,Activity启动流程,Hander,HashMap,锁等等常用的源码原理。
-
查看BOSS,拉勾对应岗位所要求的技能。
-
方式方法
面试环节中即便你技术很好,项目经验很丰富,你也不乏有知识盲区,也有未能顾及的技术点,当这些点集中出现的时候你面试的成功率也会大大降低。所以针对面试我总结了以下几个流程。
1.面试分为3个阶段(初期,中期,高offer期)。
初期 主要通过(BOSS,拉勾投递即可),初期主要投递小公司,这部分公司有两个目的。 第一是相互交流技术点,不断完善自己的技术覆盖度。 第二是了解当前市场的需求点。
中期 主要通过猎头去投递,这个阶段主要投递中场,这类公司要求技术深度会比初期公司要深一些,算法的考察会加重,同时面试官的技术水平也会偏高一些,甚至有的中场面试难度会达到大场的水平,这个中期尽可能的持续长一些,非常有利于后续的面试经验总结。
高offer期 这个阶段主要投递你的目标企业,切记面试优先级从最不意向的公司开始投递。投递的方式也是通过猎头,这样可以加快面试流程。以上的初中期更多的是完善你的技术覆盖度,以及你的面试感。为了是让你以最好的姿态去挑战你最想去的企业,这样一路走来你面试的成功率会大大提高。
- 沟通能力
面试除了考察你的技术实力以外,还有一点是比较重要的,那就是沟通能力,你面试的岗位越高,对你沟通能力的要求也就越高。
沟通是特别重要的一个点,这决定你是否能非常清晰的把你所知所想完整的阐述出来。
我们面试的过程就是自我营销的一个过程,所以当你觉得自己沟通能力不是很强的时候,那么你就需要定向的去总结几个点。
比如一个出色的自我介绍, 项目中遇到的最难解决的一个问题,如果让你设计一个架构你应该怎么设计,简单的介绍一下你负责的业务 等…
尾声
以薪资待遇为基础,以发展为最终目标,要在高薪资的地方,谋求最好的发展!
下面是有几位Android行业大佬对应上方技术点整理的一些进阶资料。有**Android架构视频+BATJ面试专题PDF+核心笔记等资料。希望能够帮助到大家提升技术。如果大家想要获取的话,可以私信我【666】免费获取哦**
么设计,简单的介绍一下你负责的业务** 等…
尾声
以薪资待遇为基础,以发展为最终目标,要在高薪资的地方,谋求最好的发展!
下面是有几位Android行业大佬对应上方技术点整理的一些进阶资料。有**Android架构视频+BATJ面试专题PDF+核心笔记等资料。希望能够帮助到大家提升技术。如果大家想要获取的话,可以私信我【666】免费获取哦**
[外链图片转存中…(img-T00SmC8k-1710331809319)]