大数据方向招人难啊!!

金三银四,铜五铁六,今年快过去一半了,团队的动荡也接近了尾声,这半年的时间里我面试了大数据方向上百位候选人(主要负责二面或三面),包括实习生、中级工程师、高级工程师、架构师,最大的感受是做大数据这一行的人真的是越来越多了,五六年前大数据招人还得从 Java 开发工程师里面捞人,苦口婆心地劝候选人转方向,现在一个岗位就有上百人号人竞争,我本以为这样的大环境下候选人会准备地更充分,质量会更高,但是我还是花了半年时间,面试了上百人才捞到合适的候选人。

招人的标准这些年一直没变,目标就是找到一个能干活的人,那么怎么判断候选人能否干活,就大体上衍生出了以下这些维度:

  • 代码能力
  • 底层原理(技术深度)
  • 问题定位(实践能力)
  • 系统优化(实践能力)
  • 架构设计(大局观)
  • 理解表达(沟通能力)
  • 项目复杂度、参与度、业务理解(综合能力)

根据不同的职级,会有不同的要求,比如实习生重点考察基础,包括原理和代码能力等,对于项目或者系统设计方面要求可以降低;高级工程师在上述某一两项上可以有些取舍,但是对于架构师来说则必须每一项都得达到80分以上。

代码能力是最最基础的,毕竟招聘的是一个程序员,所以很多大厂面试二话不说先来几道 leecode 把场子热起来,力扣是最省事,最容易考察到候选人编码能力的一种方式,所以建议想要进大厂的小伙伴有事没事刷几道力扣,保持一下状态,不要等到真的要跳槽了才匆匆忙忙开始刷。

底层原理就是大家私底下常吐槽的“八股文”,比如:HBase 的读写流程、Spark 的内存管理机制、 Flink 的一致性原理 等等等等,吐槽归吐槽,背还是得背的,边理解边背诵可以事半功倍。也可以关注一下我去年写的专栏《详解大数据面试核心知识》,可能是最全的大数据面试“八股文”了,有兴趣可以去订阅下。

问题定位和系统优化能力考察的是实践能力,光会吹原理还不够,还得会动手,比如线上 Spark 跑得慢了得知道怎么去定位问题,怎么分析日志或者dump文件,定位到问题之后还得知道怎么去优化,得有一套自己总结的问题定位和解决优化方法论,防止人招进来之后遇到问题像无头苍蝇一样。

系统设计能力考察的是候选人的大局观,比如设计一个数据治理平台,需要考虑这个平台是解决哪些问题的,开发需要多少人力成本,如何管理功能的版本迭代,还有对于平台本身的功能来说,如何管理元数据,如何制定数据质量标准,如何定义指标,如何做前端展示,以及这个平台可能对数仓 ETL 造成的影响等等,对于这些问题都要能够把握住。

项目是重中之重,上面所说的所有的能力其实都是为项目服务的,如果在一个项目中,候选人从业务的调研、架构的设计,到技术的选型、核心代码的研发,再到后期线上问题的定位、系统的优化迭代等完整的流程都深度参与,且每个步骤都踏踏实实地完成,了解每一个细节,有自己的思考,并形成了一套自己的方法论,那么这样的候选人谁会拒绝呢?

上面所说的这些维度一轮问下来就造成了“半年面试上百人,通过者寥寥无几”的场面。写上面的内容不是想要吐槽什么,而是希望能够给需要面试的小伙伴一些启发,少走一些弯路,更好地应对面试。

另外,这半年的面试经历也遇到了不少让人哭笑不得的事件,比如:

  • 被候选人反问 :“知道原理有什么用?网上一堆答案我为什么要硬背下来?”(因为你在面试啊)
  • “这个问题我之前知道的,但是我忘了。”(。。。)
  • “做大数据为什么要问Java?”(。。。)
  • 当我问到如何优化时,答到:“我做优化都是直接百度的,然后一个一个试的”(可不可以不要那么诚实)
  • 面试前和HR沟通要涨薪30%,面试后:“稍微有一些涨幅就可以了”。
  • 候选人反问环节:“如果大数据方向在未来消失了,我们该怎么办”(小伙操心的东西还不少)

关于面试如果有其他疑问可以在后台留言,关注公众号:老蒙大数据,欢迎持续关注后面的文章更新。