Android开发

985本3Android程序员40天拿下阿里P6口头offer,面试成功后整理了这些面试思路

本文主要是介绍985本3Android程序员40天拿下阿里P6口头offer,面试成功后整理了这些面试思路,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

背景

面试成功的面经大家都非常需要,近日,在逛脉脉的时候,看到一位985本科毕业3年的程序员,称自己40天拿下阿里p6口头offer。由于自我感觉没什么问题了,所以和广大网友分享一下自己的面经。

原贴如下:

不少网友表示羡慕的同时想让楼主内推。“好羡慕啊”、“老铁,熬过来了,厉害啊”

也有网友问面试时的详细情况:“第三轮技术是老大面吗?主要问些啥呢”、“请问下楼主的11天是hr面试完到谈薪资吗,还是谈薪资了之后的offer审批”、“可以咨询下hr视频面流程怎么样,问了什么嘛,目前也到这一步”

楼主也很热心的在评论区回复了。

在毕业生眼里,阿里是他们最想去的公司中之一,虽然每年投阿里的简历有十几万,但每年也就招一千来人。其竞争可想而知。

在阿里,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期 这个阶段主要投递你的目标企业,切记面试优先级从最不意向的公司开始投递。投递的方式也是通过猎头,这样可以加快面试流程。以上的初中期更多的是完善你的技术覆盖度,以及你的面试感。为了是让你以最好的姿态去挑战你最想去的企业,这样一路走来你面试的成功率会大大提高。

  • 沟通能力

面试除了考察你的技术实力以外,还有一点是比较重要的,那就是沟通能力,你面试的岗位越高,对你沟通能力的要求也就越高。

沟通是特别重要的一个点,这决定你是否能非常清晰的把你所知所想完整的阐述出来。

我们面试的过程就是自我营销的一个过程,所以当你觉得自己沟通能力不是很强的时候,那么你就需要定向的去总结几个点。

比如一个出色的自我介绍, 项目中遇到的最难解决的一个问题,如果让你设计一个架构你应该怎么设计,简单的介绍一下你负责的业务 等..

如何提升技能提高大厂通过率?

下面我提供一下我多年工作以来收集整理的学习路线,给大家做个参考:

学习一线大厂的各项技术:

大厂是我们的技术先驱,不仅仅是各种技术,还有很多令你大开眼界的使用方法,学习这些有利于自己竞争力的提高,深入理解后也可以提升你的学习效率。

现在竞争这么激烈,只有通过不断学习,提高自己,才能保持竞争力。

1.2020大厂面试高频知识点

  • 图片
  • 网络和安全机制
  • 数据库
  • 插件化、模块化、组件化、热修复、增量更新、Gradle
  • 架构设计和设计模式
  • 性能优化
  • Android Framework
  • Android优秀三方库源码

2.Jetpack架构组件从入门到精通

  • Android Jetpack - Navigation
  • Android Jetpack - Data Binding
  • Android Jetpack - ViewModel & LiveData
  • Android Jetpack - Room
  • Android Jetpack - Paging
  • Android Jetpack - WorkManger
  • Android Jetpack架构组件之Lifecycle
  • Android Jetpack Compose 最全上手指南

3.Framework精编内核解析

主要内容包含:

  • 深入解析Binder
  • 深入解析Handler
  • Dalvik VM 进程系统
  • 深入解析 WMS
  • PackagerManagerService

4.Kotlin强化实战(附Demo)

  • 第一章 Kotlin入门教程
  • 第二章 Kotlin 实战避坑指南
  • 第三章 项目实战《Kotlin Jetpack 实战》
    • 从一个膜拜大神的 Demo 开始
    • Kotlin 写 Gradle 脚本是一种什么体验?
    • Kotlin 编程的三重境界
    • Kotlin 高阶函数
    • Kotlin 泛型
    • Kotlin 扩展
    • Kotlin 委托
    • 协程“不为人知”的调试技巧
    • 图解协程:suspend

5.Android设计思想解读开源框架

  • 热修复
  • 插件化
  • 组件化框架设计
  • 图片加载框架
  • 网络请求框架
  • RXJava 响应式编程框架设计
  • IOC 架构设计
  • Android架构组件Jetpack

6.NDK模块开发

  • NDK 模块开发
  • JNI 模块
  • Native 开发工具
  • Linux 编程
  • 底层图片处理
  • 音视频开发
  • 机器学习

定期面试:

光学习了大厂的技术还不够,如何了解当下Android市场需要哪些技术呢?

定期的面试足以让你了解当下市场需要哪些技术,也更加容易确定自身的短板在哪,同时,也可以督促自己学习提升(小伙子,你了解的技术有点落伍了呀…)

万一拿到了高薪Offer,岂不是更赚?

《379页Android开发面试宝典》

《379页Android开发面试宝典》

多看大佬的学习笔记,学习大佬的设计思想:

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。

《486页超全面Android开发相关源码精编解析》

《486页超全面Android开发相关源码精编解析》

以上这些内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。或者点击 【这里】 查看获取方式。

这篇关于985本3Android程序员40天拿下阿里P6口头offer,面试成功后整理了这些面试思路的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!