苦逼的面经之路,历经20天最终才拿到阿里的offer(面试过程分享)

涂程 涂程     2022-12-23     364

关键词:

背景描述

首先描述一下背景,小编是一个在 Android 开发行业摸爬滚打5年多的开发,呆过的互联网公司有三家,均从事的Android 开发的工作。最后离职的一家公司也是做的最久的一家,工作了将近3年多时光。

至于离职原因?

其实这个问题一直都不是一个单一性的问题,它是一多元化多维度的问题。对我来说主要是体现在以下几个方面:

1.当前所使用的技术对自身成长不是很大;
2.当前负责的项目发展空间到达了一定的瓶颈;
3.认为自己的职场履历需要有一段大厂经历;(相信每个程序员都想这样在履历上添加这么一笔)
4.那就是组织架构频繁变动,导致业务线频繁变更,这一点对业务很不利,需要一直磨合。

面试目标顺序

当时我的面试大厂目标并不是单一的,大家看下图就知道了:

因为这次面的都是大厂,所以面试的准备周期有点长,准备了2个多月的时间,进行复习学习、刷题等操作。

面试思路

面试时一个漫长的过程,这个过程不单纯只是面试这么简单,它也是一个 自我考察 的过程,在这个过程中也是讲究方式方法。下面我从自我考察和方式方法两个方面来进行简单的阐述。

自我考察

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

比如我工作时间4年多,我要面试的岗位是高级Android工程师,那我这个自身素质是否能满足面试岗位所要求的条件?

其实这一点在我刚刚面试的时候也是拿不准的,因为在公司已经3年,这段时间对外界的发展其实是不了解的,所以我做了以下几件事:

1.把自己负责的项目业务进行整体总结。
2.把项目中用到的所有技术进行整体总结。
3.复习常用 框架/系统 源码,比如Glide,Okhttp,Reteofit,Activity启动流程,Hander,HashMap,锁等等常用的源码原理。
4.查看BOSS,拉勾对应岗位所要求的技能。

方式方法

面试环节中即便你技术很好,项目经验很丰富,你也不乏有知识盲区,也有未能顾及的技术点,当这些点集中出现的时候你面试的成功率也会大大降低。所以针对面试我总结了以下几个流程:

1.面试分为3个阶段(初期,中期,高offer期)。

初期: 主要通过(BOSS,拉勾投递即可),初期主要投递小公司,这部分公司有两个目的。第一是相互交流技术点,不断完善自己的技术覆盖度。第二是了解当前市场的需求点。
中期: 主要通过猎头去投递,这个阶段主要投递中场,这类公司要求技术深度会比初期公司要深一些,算法的考察会加重,同时面试官的技术水平也会偏高一些,甚至有的中场面试难度会达到大场的水平,这个中期尽可能的持续长一些,非常有利于后续的面试经验总结。
高offer期: 这个阶段主要投递你的目标企业,切记面试优先级从最不意向的公司开始投递。投递的方式也是通过猎头,这样可以加快面试流程。以上的初中期更多的是完善你的技术覆盖度,以及你的面试感。为了是让你以最好的姿态去挑战你最想去的企业,这样一路走来你面试的成功率会大大提高。

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

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

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

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

3.面试频率
面试周期我建议15-30天。

初期:小公司,我建议一天面试3个,如果有精力的话可以4个,这里需要注意一点,小公司有很多不靠谱的,比如还用Eclipse的,比如上来还没问技术就先打击你的,这种可以找机会离开,不要浪费时间。面试时长建议控制在60分钟以内,不要太抠细节。有条件的可以打开录音器,方便结束后晚上复盘。你复盘3-4天的时候你会发现面试内容开始大批量重复了。
中期:这个时期我建议一天最多2个公司,因为中场一般都是3轮或者以上的面试,有一部分是一路走完的。所以你需要给二面三面留出时间以方便充分沟通。千万不要一面完就打算走,因为一二三面所考察的完全不同,一面主要是基础,二面主要是框架/源码/简历里的技术,三面一般会聊项目,方案或者思路。
高offer期: 这个环节需要你按实际情况伺机而动,因为有的大厂是一条龙面完,有的是每一次面试都单独约,但是大厂一般的流程都比较慢,都在1周以上才能完成整场面试。一般都在4-6面之间。但是建议一天最多安排2场面试,这个面试时长不确定性因素会比较多。如果面试官不是很讨厌你,一般都会在60分钟以上。

面试的基本流程

我先后面试了差不多20几家公司,最后到手的OFFER有8个左右,最后选择的是自己想去的 阿里,面试内容我下面会简单总结一些,共分为两部分。一个是面试中出现的频率比较高的问题,二就是面试的这些公司的一些体验分享。

面试高频问题区:

1.HashMap 1.7,1.8的差异,1.8中什么情况下转换为红黑树,构造函数中参数代表的意思
2.用什么Map可以保证线程安全,为什么?ConcurrentHashMap为什么能保证线程安全?1.7和1.8原理有什么差异。
3.有多少种单例模式,枚举算不算单例,单例模式中不用volatile会导致什么问题?volatile特性是什么?为什么android中不推荐使用枚举。
4.Glide中怎么实现图片的加载进度条,Glide的缓存是怎么设计的?为什么要用弱引用。
5.implementation 和 api的区别是什么?
6.事件分发的流程,以及怎么解决滑动冲突?
7.事件是怎么产生的?mFirstTarget 为什么是一个链表?
8.自定义View需要经历哪几个过程?
9.A 跳转到 B页面,两个页面的生命周期怎么走?什么情况下A的stop()不会执行。
10.Activity 的4中启动模式分别是什么,有什么不同。
11.okhttp中有几个队列?分别干什么用的?怎么取消一个请求?
12.Rxjava中map和flatMap有什么区别,都用过什么操作符。
13.如果Rxjava组合发送任务,中间任务出现异常,其他任务该怎么处理。
14.哪个场景会发生内存泄露,内存泄露怎么检测,怎么解决。以及leak cannery内部原理是什么?为什么新版本的不需要在Application中注册了。
15.手机适配问题怎么处理,都有什么方案。
16.Android9 10 11 都更新了什么新特性,新版本中无法获取IMEI怎么处理。
17.数据序列话有那俩种方式,Serialization和Parcelable区别,如果持久化需要用哪一个
18.组件化怎么分层,各个组件之间怎么通信。
19.怎防止程序崩溃,如果已经到了Thread.UncaughtExceptionHandler是否可以让程序继续运行。
20.Handler Looper mesaageQueue message 之间的关系。
21.子线程一定不能更新ui么?什么时候可以?什么时候不可以。检测逻辑是在什么阶段初始化的。
22.ANR发生的原理是什么, 怎么排查。
23.说下路由ARoute的实现原理,怎么处理页面过多内存占用过大问题。
24.线程池都什么时候用,怎么创建,构造函数中的参数分别代表什么意思?
25.进程优先级
26.反向输出字符串
27.两个有序链表合并
28.字符串移除多余空格,且技术单词首字符大写。
29.二叉树中和为某一值的路径
30.本地广播和正常广播的区别
31.二进制低位转高位
32.字符串数组判重
33.二叉树 判断是否为搜索二叉树
34.Activity启动流程,Launcher启动流程

公司面试体验分享

拟合未来

  • 这公司面试体验很好,一共三轮面试,技术面二面,HR一面。
  • 一面:自定义view、Handler机制、组件化和插件化、HashMap的源码、retrofit和okhttp的源码用到了哪些设计模式、NDK静态库和动态库编译流程、openGL渲染模式、Android中的动画有哪些它们之间的区别、谈谈mvvm。
  • 二面:讲之前做的项目负责哪块,根据业务采用什么架构、使用过哪些设计模式,项目中遇到哪些棘手的问题,如何解决的。
  • 三面:HR整体问下以前公司的情况等问题
  • 总体下来基本面试官都是根据简历来问的。体验心得就是要对自己以前做的项目也好好梳理,提前组织好语言,挖掘项目闪光点。

百度

  • 这里主要负责的业务是手机百开发,总共面试了三次。
  • 一面内容:

1:java引用,以及引用队列,以及使用场景
2:拆装箱
3:LeakCanary
4:map
5:线上性能监控
6:SharedPrefrence 遇到的问题
7;手写算法

  • 二面内容:

1:Handler
2: 进程间通信
3:序列化
4:动画,
5:native崩溃捕获原理
6:结合项目提问
7:Recyclerview的点击事件原理
8:启动一个空的apk,回启动几个线程
9:手写算法

  • 三面内容:

1:跳槽原因
2:原来公司规模
3:预期薪资
4:个人优势

  • 个人体验心得:

1;简历上写的一定要了解,并且知道原理
2:多熟悉项目,找出一些能聊得功能点
3:崩溃捕获,以及解决(java ,native)
4:优化需要知道(大厂都会问)
5:了解由点到面,需要把知识连贯起来

中软国际

  • 岗位业务荣耀手机内置APP-主要负责推送,一共两面
  • 一面:问的项目中哪些用到了hook技术,是怎么实现的,Okhttp底层原理,点击应用图标的启动流程,hashmap在java7和java8的区别,为什么要引入红黑树
  • 二面:项目是怎么搭建的,用到了哪些技术点,arouter用到了什么技术点,是用来解决什么问题,socket底层原理,是如何带领团队的,一个功能是如何从分析需求到落地的
  • 个人体验心得:尽量围绕简历上的点来刷面试题,不一定都要研究透彻,被问到自己不熟的点,可以尽量尝试着往自己熟悉点带,例如之前我被问到pms是怎么管理package信息的,我就说目前我对pms了解不深,主要也是研究了ams,然后就把自己了解的说一下就好了。

杭州红花朵朵(总共三面)

  • 一面:Fragment和Activity生命周期联动,及Fragment显示与隐藏的一些方法,Handler原理, View绘制流程,事件分发,APP从安装到启动都做了什么,设计模式相关。
  • 二面:线程都有那些状态,线程锁相关的东西,对称与非对称加密,HTTPS请求过程,数组,链表,红黑树二叉树等一些数据结构相关的东西,还有一些开放性的问题
  • HR面:自由回答
  • 个人体验:基础最重要,不仅要会用,还要知道其中的原理。

京东到家(总共三面)

  • 一面:线程,进程,消息,通信,handler,okhttp
  • 二面:事件分发,java一些基础,算法
  • 三面:聊项目
  • 体验:除了技术,沟通,理解能力要好

apus(总共三面)

  • 一面:问了java基础,java synchronized和volatile 关键字的作用,问了hashMap数组大小为什么是2的次方,如果经过一次扩容,元素下标会变吗,sharedPreference commit与apply的区别,还有apply为什么会造成anr,view的绘制流程,如何检测应用帧率,gradle的一些知识(没答出来,具体问题忘了)
  • 二面:可能是看我对view的绘制流程比较了解 就主要问了这一块的内容,测量、布局、绘制,然后拿出了一个效果,问我怎么实现
  • HR面:公司是北京和郑州这边协同办公,经常要和那边协作,如果出了问题,如何解决
  • 个人感受:基础要熟悉,如果一面有哪一个方向回答的好的话,二面就可能深入到那个方向深入的问

阿里巴巴

  • 面试的岗位是音视频开发,总共是 3轮技术面+1轮HR面。
  • 一面内容

1.MediaCodec连环炮:MediaCodec报错,只有错误码,没有任何其它信息,如何解决?使用MediaCodec遇到了哪些问题?同步使用和异步使用有什么区别?
2.如何计算音频帧,一帧音频帧有多大
3.YUV基础知识,相比于RGB减少了多少空间,YUV 各个分量都是0实际渲染出来是什么颜色的,NV21和NV12有什么区别
4.MP4是如何存储音视频文件的,它是什么结构
5.OpenSL 相关的问题,如何使用。可以干什么不可以干什么
6.结合项目问题

  • 二面内容

1.SurfaceView和TextureView区别
2.OpenGL ES相关问题,MVP矩阵左乘和右乘有什么区别,什么是外部纹理,为什么叫外部
3.OpenGL如何渲染一个View
4.VBO是用来干嘛的解决什么问题
5.结合项目问问题

  • 三面内容

1.项目是什么架构,如何设计的,为什么这么设计
2.算法题:字符串反转
3.平时如何学习的

  • 个人感受:音视频开发感觉OpenGL ES问的比较多,这方面多看看LearnOpenGL这个网站的教程,多加体会。

其实还有几家小型公司的面试,我就不在此一一的说明了,因为文章篇幅长度有限,所以就挑选了几个自己觉得面的还不错的公司进行跟大家分享。庆幸的是等到了自己想要的 阿里 OFFER,看了自己前期的2个多月的面试准备没有白费。

推荐分享

小编之前在做面试准备的时候,从网上查找收集整理了一些 Android 开发相关的学习文档、面试题、Android 核心笔记等等文档,进行算题复习 Android 相关的知识,通过这次的面试效果检测,也体验出了结果。这次面试能通过一半原因是自己的技术还过的去,另一半的原因就是吸收了这些学习文档精华。

所以我想拿出来跟大家进行分享,希望能帮助到大家学习提升,在面试中能顺利通过。如有需要参考的可以直接去我 CodeChina地址:https://codechina.csdn.net/u012165769/Android-T3 访问查阅。

闭关苦修半年,最终靠着这份面试题,我成功拿到了阿里的offer!

...年12月份开始看书学习,到今年的6月份,一直学到看大家的面经基本上百分之90以上都会,我就在5月份开始投简历,边面试边补充基础知识等。也是有些辛苦。终于是在前不久拿到了阿里的offer,定级P7。我现在也来写面经,把... 查看详情

我的阿里之路+java面经考点(建议收藏)!

我的2020是忙碌的一年,从年初备战实习春招,年三十都在死磕JDK源码,三月份经历了阿里五次面试,四月顺利收到实习offer。然后五月怀着忐忑的心情开始了蚂蚁金服的实习。八月,又经历了两轮面试,总... 查看详情

历时30天的腾讯软件测试岗面试血泪史,最终拿到offer25k+16薪

...,招聘黄金时间已经来临,在网上看了很多大佬的面经,也加了很多交流群,受到了很多朋友的提点,今天终于轮到我来分享面经啦,之前面试了几家公司,最后历时30天在八月初拿到了腾讯测试岗的of... 查看详情

历经一个月,终于拿到金蝶offer,分享一下四面面经+复习资料

到昨天接到金蝶的Offer,我想我为期三个星期的找工作面试之旅应该是告一段落了。原以为接到Offer会有点高兴,但是一回味这三个星期的起起落落,便实在是高兴不起来,虽然手上有好几个Offer可供选择,但... 查看详情

全凭这份核心笔记,android研发历经20天面试终提offer喜进阿里!

作者:酱爆大头菜这是一篇面试总结文,是一篇从作者本身出发,把面试过程中遇到的问题,以及一些小小的建议阐述出来,希望对正在面试或者将要面试的你有一些小帮助。背景描述首先描述下背景,楼... 查看详情

拿到字节抖音拼多多美团三个offer的牛人,分享自己的面经和心得体会!

前言曾无数次假设过毕业找工作的样子,却没想到这个求职季走地异常平淡,在一个星期内相继接到了字节、美团的橄榄枝,之后又在打酱油的霸面中拿下了拼多多。几经考虑之后,选了一个在很多人眼里也许不... 查看详情

8年android老司机的面经,教你如何进入阿里腾讯华为等大厂

前言因为离职,前段时间面试了很多公司,其中有让我心血沸腾的经历,也有让我感到失望到无助的经历,我将这些体会都记录下来,细想之后很值得,面了这么多公司,要是最后什么也没有留下来... 查看详情

让程序猿不再苦逼的四大神器

做程序猿「媛」是一个苦逼的活,大周六地早起在技术群里招呼。看到没有啥人响应,说了一句。「预计都没有醒」。然后一位哥们抛过来,「在加班」!做Web开发更是一个苦逼的活。不像是做iOS,搞定client。基本上就万事大吉... 查看详情

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

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

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

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

秋招总结双非本小菜鸡的坎坷秋招之路(附面经)

前言因为大环境的影响,今年秋招hc骤缩,导致竞争的激烈程度比往年高了不少。在秋招的时候,经历过简历石沉大海的无奈,也体验过人家收割offer而自己却依旧0offer的焦虑,不过好在最终也拿到了还算满意... 查看详情

秋招总结双非本小菜鸡的坎坷秋招之路(附面经)

前言因为大环境的影响,今年秋招hc骤缩,导致竞争的激烈程度比往年高了不少。在秋招的时候,经历过简历石沉大海的无奈,也体验过人家收割offer而自己却依旧0offer的焦虑,不过好在最终也拿到了还算满意... 查看详情

苦逼的程序人生

2017-09-12~ 2017-09-28深入学习oracle、spring、设计模式、博客2017-10-08~ 2017-10-30深入学习linux、spring、设计模式、博客2017-11-01~ 2017-11-30深入学习spring、spring源码、博客2017-12-01~ 2017-12-30深入学习spring源码、多线程、高并发... 查看详情

大佬有用的面经总结

清水河畔上大牛的面经10年大牛的面经直接上链接地址专业技能的问题:Linux编程---所有互斥方法,多线程编程,进程间通信网络编程---网络编程范式,非阻塞connect,TCP/IP(time_wait状态,如何更改这个状态的时间,OSI/TCP/IP)简单数据... 查看详情

我的面经-1

我的面经-1开个新系列?一直想有一天找个机会写一下退役总结,但是总是无法下笔。感觉自己就是一个acm的半桶水选手,在“两年半的练习”过程中,可能失败的压力大于对acm的热爱,对得失的在意大于对算法的研究。我想也... 查看详情

一个程序媛的面试之路(字节百度美团网易等面经分享)

前言先说一下本人背景:211本,985硕,女生,方向都是Java开发或者后台开发。目前拿到了字节,百度,网易(白菜价,已拒),美团,小米的意向书,等最终结果通知的是华泰(... 查看详情

「面经分享」阿里大佬的5年android开发求职之路(代码片段)

作者:yechaoa前言前段时间在看机会,本文就是我对求职过程的一个总结。同时,也作为一个面试官,来说说求职中需要注意的点。各大厂的面试会考核哪些知识点5年开发应该具备哪些技术要点当下市场行情如何,... 查看详情

摘抄产品经理面经:3个产品offer是如何拿到的

...chang/223846.html#摘抄:  ※这是一份关于应聘产品经理的面经,在读这篇文章之前,希望你能先找到一个安静的地方,闭上眼睛,问问内心为什么要当一名产品经理,找到自己要当产品经理的初心。  ※相... 查看详情