谈谈技术深度和广度

作为技术管理者,我面试过很多人,当然以前也被面试过不少次。面试不通过在技术方面的原因,大致有两个:

  • 会的太少,不具备职位需要的技能。

  • 懂的太浅,达不到职位需要的层级。


作为技术人员,我们平时学习知识和磨炼技术,大致也可以分为两类:

  • 学习新知识。

  • 深挖旧知识。


这两个场景描述的两种情况很容易统一:技术的广度和深度。我想大部分人也都知道,广度和深度兼备的人才是优秀和抢手的人。但是要想兼顾肯定很难,毕竟人的时间和精力是有限的,所以难免要做取舍。


更残酷的是,作为企业,往往对一个特定职位是有特定要求的,很容易和个人发展冲突。而员工在企业面前通常处于弱势地位,处境很容易就陷入矛盾的情况。“螺丝钉”和“中年危机”等等问题就是这么来的。


今天这篇文章重点要说的是,作为技术管理者,夹在企业和员工中间,需要怎样去协调好两者看似矛盾的诉求。


下面以我所在的大数据领域为例,再具体点,以数据平台这个部门为例来说说我的思路和做法。我想也足够有代表性了。


数据平台部作为一个基础设施部门,职责是建设好数据平台,为业务提供大规模存储、计算和分析能力。特点是处理的数据量特别大,涉及的技术特别多。


数据量大意味着技术挑战大,也就需要足够的技术深度。涉及的技术多意味着需要覆盖的技术方向多,要么多招人,但是成本高;要么每个人能搞定多点事情,也就是需要足够的技术广度。


所以,部门发展既要求深度又要求广度,员工发展也是既要深度又要广度。乍一看,好像刚好能对上,啥问题没有。实际不然,刚好能对上的前提是刚好有这么多深度广度兼备且技术方向对口的人可以用。现实情况自然没那么美好。


所以恰好相反,通常不仅不能刚好对上,反而处处对不上。碰到技术难题的时候发现没人能搞定,碰到新需求的时候又发现没人会弄。这种现象尤其在小公司非常普遍。


这个问题没有简单又完美的解决方案。但是有一个有效的指导思路,那就是有所取舍然后找准平衡


我的选择是,无论是部门还是个人发展,都取深度而舍广度(当然,这里的舍不是完全不要,只是降为次要)。原因很好理解,如果深度和广度不能兼顾,那自然是有一技之长的人更吃香。而部门的发展还是靠人,所以部门发展和个人发展最后都归结到人的发展,这样部门和人就能做到共同取舍,也才能到下一步的找平衡。


找平衡,或者我们常说的“把握好度”,实在是世界上最难的事之一。原因就在于不知道怎样算平衡、什么度最好。


我的方法是,横向划领域,纵向分方向,方向内求深度,领域内求广度


具体来说,我把数据平台部的工作分为几个大的领域甲乙丙丁,每个领域又分为几个具体的技术方向 A B C D。然后每个人都会被划分到具体的领域下的具体的方向。


如果小王被划在了甲领域下的 A 方向,那么我希望他大部分时间和精力都花在 A 方向上。在他在 A 方向的技术深度足以把这个方向建设地很好,能顺利解决大部分问题的情况下,我也非常鼓励他去学习甲领域下的 B C D 方向,这样广度也能兼顾。但是他不属于的乙丙丁领域就不鼓励去花太多时间了。


另一方面,按领域和方向来划分工作职责和内容,而没有按具体技术去划分,也给了大家足够的自由度去选择更合适的技术,也是对技术广度的扩展。顺便也能激发大家以主人翁的心态自主地去把工作做好。


而对于求广度的 B C D 方向,甚至是虽然不鼓励但也不禁止的乙丙丁领域下的其他方向,我会建议小王从实际问题出发,尝试把那些方向的技术运用起来解决自己主攻方向的问题。这样就是深度和广度非常好的结合了。


比如主攻 HBase 的同学,如果对 Spark 非常感兴趣,同时又发现 MapReduce 版的 bulkload 太慢,那完全可以考虑写一个 Spark 版的 bulkload 出来。岂不妙哉?


今天是从技术管理者的角度来谈怎样平衡技术深度和广度,实际上作为普通员工,也可以采用类似的方式来分配自己的精力。


你可能感兴趣的:(谈谈技术深度和广度)