• 获得BAT技术专家Offer,他到底做了什么?


    本文我们通过一篇真实的一线面经,带大家去体验一下 BAT 等互联网公司的面试现场氛围!面试者是笔者以前的下属,多年的好朋友。这是他去年早些时候出去面试,拿到 BAT 等多家一线互联网公司技术专家 Offer 的面试经历。

    本文我们通过一篇真实的一线面经,带大家去体验一下 BAT 等互联网公司的面试现场氛围!

    面试者是笔者以前的下属,多年的好朋友。这是他去年早些时候出去面试,拿到 BAT 等多家一线互联网公司技术专家 Offer 的面试经历。

    先介绍一下这位朋友的个人经历:

    • 本科毕业,接近 10 年工作经验。跳槽之前,在国内某大型互联网公司里带一个 8 人左右的技术团队。
    • 由于公司业务发展较为平缓,所以职业上升机会较少。
    • 朋友对其负责的系统架构和技术已经非常熟悉,薪资上也较难有大幅度的增长,至于晋升更高的级别,短期内也不容易。

    因此,在仔细思考一番之后,决定出来看看机会,能否在带团队的规模、技术以及薪资上实现一个突破。

     一  一面

    一面是一个猎头给朋友推的一个职位,BAT 中某一个大厂的某个团队,具体就不说是哪个部门了。

    一面就直接过去当面聊了一次,大概从下午 2 点聊到了下午 4 点多,时间很长,炮火相当猛烈。

    一面面试官也是专家职级,上来就是先聊项目,针对项目中的各种细节仔细问,就项目展开,而且极其注重细节。

    面试同样是通过互联网公司最喜欢的连环炮形式发问。比如在面试过程中,聊到了缓存,连环炮如下。接着,面试官继续深扣了很多细节。

    面试官

    • Android开发中,可能会造成导致内存泄漏的问题及使用Handler造成内存泄漏的分析和解决?
    • 连接复用 :节省连接建立时间,如开启 keep-alive。
    • Android客户端和服务端如何使用Token和Session,使用过程中出现的问题以及解决方案?
    • 线程池。线程池的使用?如何合理配置线程池的大小
    • Java和JS的交互,以及遇到的问题如何解决
    • ContentProvider了解多少?
    • Android中提供哪些数据持久存储的方法?
    • Java中的I/O流读写怎么做?
    • SharePreferences适用情形?使用中需要注意什么?
    • 了解SQLite中的事务处理吗?是如何做的?
    • 使用SQLite做批量操作有什么好的方法吗?
    • 如果现在要删除SQLite中表的一个字段如何做?
    • 使用SQLite时会有哪些优化操作?
    等等等等,朋友:纸笔翻飞,大脑高度运转,一个接一个的回答。。

    如上所述,所有问题,全部结合项目,落地到生产中,同时注重聊技术的很多细节,包括技术的一些原理。

    简单总结:

    • 一面其实关注了技术广度,同时结合项目死扣各种细节。
    • 另外也兼顾了一定的技术深度,会就一个技术往深了问下去。

    总体来说,一面还算顺利,毕竟都是结合项目来问的,各种细节平时朋友进行架构设计时,都会仔细考虑过。

    但是这里给大家提醒一句,一般某个同学出去面试,回来之后其他人问他面试经验,一般都是问:都有啥面试题?面试官是怎么问的?

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

    但其实并不是这样,如果只是拿高级岗位的 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最终都拒了

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

    • 有些规模小的公司很注重你是不是全能的,恨不得你什么都会,又给不起钱,福利待遇很不好,各种避税措施。
    • 马爸爸的公司很注重项目经验是否匹配,往死了问项目,项目简单的话是很吃亏的,鹅厂希望你是聪明的机灵的,度娘希望你基础好,热爱技术;
    • 有些猎头朋友是非常专业的,不仅给你安排面试流程,还给你提供很多有价值的信息,另外猎头一般推荐的都是高级职位;
    • 面试真的很看眼缘,很多时候你和面试官一见面,如果你觉得面试官和你气场不合,那很可能就没戏了
    • 我认为一面必须表现的很好,因为二面的面试官会参考一面的评价,一旦一面评价一般,第一印象就不好了
    • 如果你出身很好,学校认可度高,那你会有优势,请联想“好学生犯错与坏学生犯错时老师的表现“

    最后,可能很多人对自己到底需要学习进阶那个方面不是很清晰,我找了一份图希望可以用得上



  • 相关阅读:
    “菜鸟”程序员和“大神”程序员差距在哪里?别告诉我你连菜鸟都不算!
    Android开发:为什么你的学习效率如此低,为什么你很迷茫?
    Android架构师吐槽腾讯王者荣耀的程序员,排位匹配算法怎么搞的,每次都输
    程序员如何回答面试官“请介绍一下自己”这类问题
    Android程序员事件分发机制学习笔记
    面试时,问哪些问题能试出一个 Android 应用开发者真正的水平?
    List、Set、Map的区别
    在Eclipse中使用JUnit4进行单元测试(图文教程一)
    1
    2016、11、17
  • 原文地址:https://www.cnblogs.com/876013676ch/p/10268402.html
Copyright © 2020-2023  润新知