美文网首页Android开发经验谈
还原一场入职百度Android岗的面试经历

还原一场入职百度Android岗的面试经历

作者: 今日Android | 来源:发表于2021-01-03 21:06 被阅读0次

    九月份的时候有了换工作的躁动,然后投了某度的Android岗位,本以为像我这种非211、985没工作经验的渣渣只能被直接pass,结果却意外的收到了电话,真是受宠若惊.经过电面,技术三面,然后就是等通知到最后拿到了OFFER,如梦一般,真是挺激动的.


    专业技能

    我的简历里写的专业技能比较全面,包括这些:

    Java 的知识(反射、泛型、注解、List 等集合源码、并发、JVM 相关)

    Android 知识(四大组件、View、Binder、Handler、SP、Activity 启动、插件化等)

    性能优化(包体积、布局、内存优化)

    Gradle(Task、打包流程、自定义 Plugin、编译优化等)

    计算机基础知识(计算机网络、设计模式等等)

    项目经验

    上家公司做过组件化和 MVP,写过 Gradle Plugin,做过 Gradle 编译优化,做过包体积优化

    简历评价 & 问题导向

    从专业技能来看,对于毕业一年的 Android 开发者来说,Java、Android、计算机基础知识是必备技能,性能优化、Gradle 算加分项了

    从项目经验来看,我的毕业一年做了不少事情,算是比较难得了,其中的 Gradle 编译优化、包体积优化就是亮点了

    所以总体上来看,这份简历可以体现出小欧比较出色的能力(学习能力和做事能力),所以面试问题路线大概是两点:

    先确认项目是否真实做过,做的多深,对项目中用到的知识、工具掌握有多深
    考察专业技能的深度和广度

    面试题目及考察点

    下面是面试的题目和考察点,对于一些比较敏感的问题,没有展示出来(以下观点仅代表个人,不代表任何组织和公司)

    组件化如何实现?和 Arouter 的区别?优势?(考察项目中对组件化的参与程度,以及对组件化的一些思考)
    此类问题其实和项目关联度很大,需要对所做的项目有详细的了解,同时也需要对已有方案的了解
    组件间如何通信?(考察对组件化的了解程度)
    MVC、MVP、MVVM 区别?MVP 的缺点?(考察对 MVP 以及相近的架构的理解)
    对于 MVC、MVP、MVVM 的分析其实有很多文章,如果在回答的时候有一些自己不一样的思考就更好了
    包体积如何优化?(考察项目具体的实现)
    关于包体积优化,网上其实有很多通用方案,如果自己真的做过,有一些自己不一样的思考就更好了
    Png 和 webp 的区别?(考察细节点)
    知识类问题,知道即可
    Arsc 是怎么用的?(考察细节点)
    知识类问题,知道即可
    Gradle 构建优化做了什么事情?(考察 Gradle 构建优化做的事情)
    网上有关的文章其实也很多,如果能答上来,会往更深层次问下去,需要有一些准备
    Gradle 6.5.1 相比 4.4.1 的变化?(考察细节)
    Gradle 的生命周期?分为哪些阶段?(考察对 Gradle 的掌握程度)
    网上有关的文章其实也很多,如果能答上来,会往更深层次问下去,需要有一些准备
    Android 打包流程?(考察基础知识)
    网上有关的文章其实也很多,如果能答上来,会往更深层次问下去,需要有一些准备,下面的几个问题都属于打包流程引申出来的深入问题了
    Aapt2 和 Aapt 和 有什么区别 (考察细节点)
    Class 和 Dex 文件的区别?(考察细节点)
    V1 V2签名?(考察细节点)
    为什么要分 Dex?(考察细节点)
    多 dex 怎么加载?(考察细节点)
    View 的绘制流程?(基础知识考察)
    关于 View 的绘制流程,网上讲解的文章也比较多,如何区分是看文章还是看源码了解的知识呢?本质上还是根据对细节的了解程度来区分的
    如何重绘?requestLayout 和 invalidate 的区别?(基础知识考察)
    View 事件分发 cancel 事件什么时候触发?(基础知识考察)
    事件如何从点击屏幕传递到 View 的?(基础知识考察)
    Java 内部类如何访问外部类方法?(基础知识考察)
    如何访问 private 方法(基础知识考察)
    如何检测线上 ANR?(知识广度考察)
    如何检测 crash?(知识广度考察)

    总结

    但是整体问下来,可以看出来本人的知识还是比较扎实的,深度和广度都有的,项目中的内容了解也比较好,作为刚毕业一年的同学来说还是很优秀的(自夸)

    上面的问题其实更多的局限在知识掌握的层面,对工作经验更多的面试者来说,考察点可能又会不一样了,可能重点就在项目和对项目的思考上了

    因为时间关系,还有很多问题其实是没有考察的,比如 Java 集合、多线程、四大组件等等

    面试的过程其实就是抽样检测,各个公司、面试官考察的重点也不一样,但不变的目标都是考察面试者的工作、学习能力,挖掘潜力,以及和岗位的匹配程度

    另外对于一些基础知识,面试之前还是要复习一下的,不然可能出现的情况是知识点就在口中,但是说不出来

    最后,一个小目标

    自从在网上更新一些安卓知识文章以后,收到了很多读者朋友们不错的反馈,我也很高兴能给大家带来帮助和启发,至少说明这些文章还是有一些价值的

    在新的一年里,我想给大家提供一些更实质的帮助,希望能 2021 年能 【帮助 100 位安卓开发者入职大厂】

    我觉得这件事,在一定程度上是有意义的
    可能对于一些大佬来说,在大厂之间游走是很随意的事情,但是还有更多的是希望能进入大厂的开发者,他们可能缺少一些机会,可能缺少一些方法,可能缺少一些指导,而且进入大厂这件事可能会给后面的人生带来不一样的可能性

    而且这件事其实是互利互惠的,对开发者来说,获得进入大厂的机会,对公司来说,也有更多的选择范围,对我来说当然是有发文的话题了,另外也是一个提升的机会,对其他读者来说,从面试题目中应该也能得到一些启发

    所以我想来尝试做这件事

    具体怎么做呢?

    尽可能提供大厂内推的机会(当然目前内推可能比较少,不过我相信后面会多起来的)
    提供简历修改建议
    提供模拟面试以及面试建议
    大厂面试过程中遇到的问题讨论
    后面应该还会有更多的想法

    岗位内推、学习交流

    我们大量需要前端岗位、Java 岗位、Android 和 iOS 的开发岗位,工作地点:杭州阿里巴巴,由于社招最低要求是 P6 起,所以需要至少 3 年以上工作经验。点击我

    如果你觉得自己学习效率低,缺乏正确的指导,可以加入资源丰富,学习氛围浓厚的技术圈一起学习交流吧

    群内有许多来自一线的技术大牛,也有在小厂或外包公司奋斗的码农,我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。

    35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。

    相关文章

      网友评论

        本文标题:还原一场入职百度Android岗的面试经历

        本文链接:https://www.haomeiwen.com/subject/uhypoktx.html