获得BAT技术专家Offer,他到底做了什么?,音视频时代你还不会NDK开发

62 阅读7分钟

说实话,大家看了上面那些问题,可能会觉得说,哦,其实我也可以答出来,没什么特别的。

但其实并不是这样,如果只是拿高级岗位的 Offer,你的技术会占很大比重。

但是如果要拿专家岗位的 Offer,你到底有没有线上真实的高负载的系统架构经验,非常重要。

同样的问题,普通人会回答的很普通,但是经历过真实几十亿流量请求的人一定会说出大量经验总结、教训以及踩坑。

而且对整套复杂的大型系统到底是如何抗住高并发的,会了然于胸,熟悉所有的细节。

所以针对一面,一般就是结合项目,深挖细扣,看你到底有多少水平,做过多复杂的系统。

这块说实话,做过就是做过,没做过就是没做过,是不可能作假的。很多同学可能自己平时也看过很多书和博客,但是看书和博客只是基础,如果没有真实的线上生产环境的历练,是肯定不够的。毕竟实践出真知!

二 二面

一面就顺利通过了,紧接着安排了第二轮面试。二面面试官应该是这个团队的 Leader,P8 级别的,如果进去,应该就是朋友未来的顶头上司。

据朋友讲,二面面试官态度非常好,很和蔼,看来一面面试官反馈之后,这个 Team 对朋友还是比较重视的。

技术深度

二面内容就从广度变成深度了,面试官技术实力很深厚,应该是有十几年经验。对相关技术深挖了很多东西。

比如,

  • Bitmap 使用时候注意什么?

  • Oom 是否可以try catch ?

  • 适配器模式,装饰者模式,外观模式的异同?

  • ANR 如何产生?

  • Jni 用过么?

  • 多进程场景遇见过么?

  • 关于handler,在任何地方new handler 都是什么线程下?

  • glide 使用什么缓存?

  • 简述消息机制相关

  • 进程间通信方式?

  • Binder相关?

  • okhttp源码?

  • RxJava简介及其源码解读?

面试官声音略显慵懒疲惫……我怀疑他是不是面了太多人已经麻木了

系统设计、工程素养、带团队

同时二面非常重视考察系统设计能力、工程素养、带团队的能力。比如面试官就这个部门负责的一块业务

需要阐述以往自己带团队项目的整体设计思路,从哪点出发考虑,存在哪些挑战以及最后如何完成的

带团队,让朋友说一下,如何招人、面试标准、如何搭建团队的人才梯度,等等

三 三面

三道算法题,要求在一个小时之内做完。

  • 翻转一个单项链表 1->2->3->4->5->null =====> 5->4->3->2->1->null

  • string to integer

  • 合并多个单有序链表(假设都是递增的)

另外,考察了各种软素质。比如说责任心、抗压能力、自我驱动,让朋友举例说明自己过去的一些事情,来证明软素质。

同时还会聊聊职业价值观,是否愿意加班,等等吧。最后也聊了聊朋友的职场期望,包括这个团队是干什么的,未来的发展方向之类的。

朋友觉得最重要的还是前面两面,其实这一面,只要人品端正,平时干活儿认真负责,一般的都没什么太大的问题。

**绝对不要裸面!绝对不要裸面!绝对不要裸面!**重要的事情说三遍!裸面必败,而且如果一问三不知,那么给人的印象就是很差的。

如果要冲着心仪的大公司去,最起码精心准备 1 个月以上,大家务必记住这一点,这也是朋友这次的一个重要心得,准备充分了,才能有备无患。

四 四面:

总监面:问了一些java 同步相关的。 HR:聊了一些价值观的东西,比如之前觉得做过最难的事情是啥,怎么克服的,当时啥 心态。

还有就是为啥要离职,没有发展空间?那当时没考虑过公司内部 transfer(转岗)吗?你的绩效平时怎么样?你觉得你跟同事相处的怎么样?

终面内容,总结起来,其实还是一句话,你人品正就好了,一般都问题不大,老老实实的踏实回答。

总结

我自己面试了一些公司,拿了一些offer,但是还是想去BAT,所以那些offer最终都拒了

结合我的面试经历与同事们的面试历程,总结几点:

  • 有些规模小的公司很注重你是不是全能的,恨不得你什么都会,又给不起钱,福利待遇很不好,各种避税措施。

  • 马爸爸的公司很注重项目经验是否匹配,往死了问项目,项目简单的话是很吃亏的,鹅厂希望你是聪明的机灵的,度娘希望你基础好,热爱技术;

  • 有些猎头朋友是非常专业的,不仅给你安排面试流程,还给你提供很多有价值的信息,另外猎头一般推荐的都是高级职位;

  • 面试真的很看眼缘,很多时候你和面试官一见面,如果你觉得面试官和你气场不合,那很可能就没戏了

  • 我认为一面必须表现的很好,因为二面的面试官会参考一面的评价,一旦一面评价一般,第一印象就不好了

  • 如果你出身很好,学校认可度高,那你会有优势,请联想“好学生犯错与坏学生犯错时老师的表现“

最后,可能很多人对自己到底需要学习进阶那个方面不是很清晰,我找了一份图希望可以用得上 进阶篇.png 3333.png ####想学习更多Android知识,或者获取以上相关资料请加入Android技术开发交流2群:862625886。本群可免费获取Gradle、RxJava、小程序、Hybrid、移动架构、NDK、React Native、性能优化等技术教程!

如何做好面试突击,规划学习方向?

面试题集可以帮助你查漏补缺,有方向有针对性的学习,为之后进大厂做准备。但是如果你仅仅是看一遍,而不去学习和深究。那么这份面试题对你的帮助会很有限。最终还是要靠资深技术水平说话。

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。

学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。

同时我还搜集整理2020年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节

image

在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多。

image

点击:《Android架构视频+BAT面试专题PDF+学习笔记》即可免费获取~

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。