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

  • 认为自己的职场履历需要一段大厂经历。

  • 这一点本来不太想说,但是确实也是自己比较在意的一点,那就是组织架构频繁变动,导致业务线频繁变更,这一点对业务很不利,需要一直磨合。

面试目标

其实当时的面试目标也不是单一的,比如我的面试目标按以下排序:

阿里巴巴 > 头条 > 美团 > 小米

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

阿里的面试经历


阿里一面

简历上写的项目问了一遍,然后开始问知识点。

  • 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面的面试通知,这一轮面试大致问了以下问题:

  • 你为什么要离开现在的公司

  • 你们公司的岗位等级是怎么评定的,你现在是什么岗位等级

  • 谈谈你在公司的绩效情况

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

  • 你觉得你做的最有成就感的一件事

  • 你一般解决问题的方法有哪些

  • 你是因为什么契机选择做前端

  • 你有对你所在的公司做过什么流程或制度规范上的改进么

  • 你最近在看什么书,和工作相关么,你为什么要看这些书

  • 看到你之前还面试了其他两个部门都挂在了一面,你感觉是什么原因

  • 你期望的薪资待遇是多少

**小提示:**这里HR会问的其实不止这些问题,例如你为什么喜欢Android开发这个岗位、你未来的职业规划、你觉得你的优点和缺点有哪些、为什么选择阿里巴巴、对之前几个面试官做下评价、你用过阿里的哪些产品顺便谈谈这些产品的优缺点、你对于互联网是怎么理解的…

面试感受:

阿里技术还是很厉害的,从面试官的水平就可以看出来,尤其是外卖核心部门,办公环境是不错,但是感觉就是有点乱,不知道是不是因为今天面试的人很多,基本上一直有很多人来回走动,有一些嘈杂。

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

分享一些面试思路

面试过程即是一个 自我考察 的过程,同是也是一个 非常讲究方式方法 的过程,接下来通过这两个方面来展开阐述。

  • 自我考察

技术实力是面试的大前提,你需要非常清晰的了解自己,了解自己所要面试岗位,这是决定面试是否成功的先决条件。

比如我工作时间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设计思想解读开源框架

  • 热修复

  • 插件化

  • 组件化框架设计

  • 图片加载框架

  • 网络请求框架

你可能感兴趣的:(程序员,面试,android,移动开发)