而立之年再谈大龄程序员要不要转管理路线


引子

        很多程序员都有一点技术情节,喜欢“专心搞技术”,不喜欢管理,尤其管人。甚至为自己是“专注于技术”而自感清高,有点看不起那些“外行管理内行”或者急于转型管理的Leader。 而且IT这个行业,有些时候确实是拥有技术就拥有很大的话语权,这个行业中确实不乏一些技术牛逼、敢和Leader叫板,甚至和老板拍桌子的人。 那么我们是应该在技术路线上一根筋钻到底,还是“为五斗米折腰”去转型呢?  

我的个人经历

        是的,鄙人也曾经持有上面的想法,只是技术从未达到那种炉火纯青、登峰造极的境界,年龄却越来越大(虽然年轻时也偶尔反驳领导几句,但好在未曾拍过桌子),而职位却原地踏步。曾经Boss有两三次找我面谈,在对我表示认可的同时提出让我带团队,都被不识时务的我以各种理由拒绝了。


        当然细细回想起来,也并非是我情商太低,而是错误的预判了部门的发展形势,以及没有想到不做Leader的后果...

  •          Boss第一次找我谈想不想管人的时候,我大概二十五六岁,还算年轻。当时觉得自己技术积累还不深,走管理方向必然分散很多精力,怕一不小心成了在公司熬资历的混子,万一想出去的时候在没有技术竞争力。而且当时部门才十多个人,Boss一个人就管的妥妥的,我没想明白还要这种小管理人员作何用(而且大家组织关系都挂载Boss下面,绩效考核权也在Boss手中)?    

哪知道此后部门发展迅猛,从十几个人到三十多、五十多,呼啦一下就到一两百。曾经只是象征性管着一两个人的“鸡肋”管理,突然之间手下一二十号人,也拥有了招聘、考核权利,俨然生杀大权在握。而Boss自然越来越忙,忙到只有这些Leader才有资格和他开开会,其他小兵几个月可能都见不上Boss一面,更别说面谈的机会了。


  •          Boss最后一次跟我谈的时候,我28岁。当时刚刚带队完成一个大版本的开发,做的还不错,但也很累,可以说精疲力竭。女儿刚出生几个月,基本上每天加班、平时都见不到面。Boss说想让我带一个新团队,具体业务就不细说了,免得被对号入座。但我又错判了形势。因为我觉得他讲的是一个内部支撑的项目,我们公司虽然规模还可以,但仍比不了BAT,TMD以及某为、某易,鄙人认为恐怕内部支撑的项目很难得到重视、而且当时确实也没有人力支撑,再加上鄙人对该技术领域基本没有了解,以我一贯的性格,肯定不希望被别人骂“外行指挥内行”。于是我犹豫了。 
       此后的形势既如我所料,又出乎意料。Boss从其他公司挖了一个对该领域比较擅长的专家作为新团队Leader,项目人员上也通过招聘、内部抽调等方式补充到位。我不看好的内部支持项目,后来确实没什么下文(因为我从来没听说有哪个团队在用)。但他们依然是Boss眼中的核心项目,因为其定位已经由内部支持转为直接对外销售(虽然业绩还不明朗)。


我的观点和理由

       讲了这多,似乎都是流水账,文不答题。接下来言归正传,结合我的这些经历说说要不要转管理路线。 首先说结论:
  •  如果在一个很优秀的平台,拥有技术无限成长的空间(比如很多朋友都对鄙人讲某baba公司,有很多资深的技术大牛,P8,P9都在写代码),那么我想这不是问题,海阔凭鱼跃,你可以随便选择;  
  • 如果种种原因,你不在这种平台,那么尽量在二十五六岁之前打好技术基础。二十七八岁就要好好拓展知识面,关注更多的技术领域和框架、管理和沟通技巧,有机会就要牢牢把握(这叫勇于承担);
  •  如何判断你所在的平台是否拥有无限的技术成长空间呢?那些新成立的互联网小公司我不敢妄下结论,但对于有一定规模的公司,看看你身边那些30岁及以上的程序员,有多少真正成为了令人钦佩的技术专家?有多少人在混日子?有多少人已经离职?有多少人转了管理?那么我想这个问题不难回答。   

 至于这么选择的原因,总结下来有以下几点:  
  1. 基于前面所分析的,你所在的公司能否在技术发展方向提供足够大的平台? 如果不能,而且你也不打算换一个平台,那么应该如何选择,显而易见。 
  2. 你的技术水平能否和工作年限成正比?很多时候,受个人努力和公司平台局限,往往工作了十几年的人,由于身体和家庭的原因,放在工作上的精力越来越少,而且一直以来都是写一些上层业务的代码,业务逻辑变来变去,代码流程改来改去。却很少有机会深入分析深层原理、专注于把技术优化到极致、不断拓宽自己技术视野,甚至对自己产品的了解都仍然只局限在一个较小的领域。打个比方,今天还在做外卖平台,明天可能又要支持打车功能了。可能很多用到的很多核心代码都已被封装成通用的库,你只负责调用、组装(亦称:搬砖)。这样做很容易导致的后果就是,你工作十多年之后做的事情,那些毕业三四年的人也能做,而且人家精力比你更充沛,薪资要求比你更低。看看17年网上流传的中年程序员危机,这其实是一个很致命、而且无法回避的问题。不要抱怨公司不养老,公司是盈利机构,养的闲人太多,失去竞争力,最终还是会倒下的,到时候倾巢之下安有完卵。
  3. 那么有人说,这个问题不做技术也存在啊,想把管理做好也很辛苦很累啊。是的,但就我的理解来看,在很多不需要很深的技术就可以成为Leader的中小公司,这两种辛苦是不一样的。对于非大神级别的码农来说,很多时候写代码是不求有功但求无过,是需要非常精确逻辑,一点考虑不周就是一个bug,甚至是致命问题。但是如果你的大局观还不错,沟通能力也可以,对产品较深的理解和前瞻性,做管理的话则只需要把握好正确的方向,在一些很细小的问题上,往往没有精确的是非评判标准。比如说,一个Leader可能需要周末出差去见客户,可能需要深夜给Boss写汇报PPT,但不需要今天晚上一定要把某个bug定位出来并且fix掉。再打个比方,在一些中小公司,可能做管理你只需要告诉团队,我们走京沪高速从上海去北京,这是地图,预计需要XX个小时,可能收费XX元,请务必预留足够时间,确保在XX时间之前到达。但如果你是码农,一路上你就必须时刻关注这里限速多少,下一个匝道要不要出去?一旦错过一个出口,你可能就会背负很大骂名。
             总结一下就是做Leader,你的大局观、良好的前瞻视野、沟通管理协调能力、良好的总结概括汇报能力,都是你核心竞争力的一部分。这些能力一旦形成,往往不需要很精确的学习,只要保持这种努力的惯性就可以。而写代码则不同,业务一变,你要重来;新出一种语言,你要重新学。Java 10发布了,C++ 20都快要出来了,你发现一夜之间你好像不懂java、不懂C++了。更不要说近些年新兴起的一些语言和开源项目…      
             当然这是就鄙人自身经历体会总结的,说的不对也请大家不要骂娘~~相信在大神如云的一流公司肯定不是这样。但是这些大神肯定也不会有时间来看我瞎逼逼跟我抬杠。^_^  
  4. 如果你不去做Leader,那么这个空缺的岗位就一定会由别人来做,而你往往就是他的下属,而且可能几年之内都不会再有这种升迁的机会。这一点,领导在和你沟通时可能不会明说,但千万不要像鄙人一样愚钝。也许你确实不看重名利,但你要考虑如果你不去做Leader,那么领导可能会任命他眼中的第二、第三人选。换言之,可能某个能力暂不如你的人会成为你的上司。你是否愿意被他指挥? 再进一步想想,当你三十五六,甚至40多岁时,还被一个二十六七的小伙子带着每天写代码、改bug、通宵发版本,这画风……
  5.  对于很多人来说,写代码很难以一当十。你精通Linux内核吗?你精通网络安全吗?你精通性能调优吗……如果这些都做不到,那么或许只有成为Leader,把团队带好,才能创造更大价值。否则你充其量也就只能是一个“优秀的程序员”,那么在收入等方面的发展空间也可想而知。 
  6. 随着年龄增大,你会深刻明白平台的作用,以及只有整个团队做出成绩,个人价值才能更好得到体现,正所谓水涨船高。那么如果你有足够的能力,成为Leader无疑是帮助团队走向成功的最佳途径。否则你可能会发现,航空母舰上的普通士兵似乎也比你这个破船上的“大副”过得好。
  7.  虽然我们说是金子总会发光,但不可否认很多时候关键任务更容易出成绩,而一些脏活累活往往有苦劳没功劳。成为Leader,有利于你远离脏活累活,只处理核心工作。虽然有些不厚道,但职场生存就是这样。同样道理,你可以相对灵活的安排自己的时间,把别人做脏活累活的时间用来给自己充电,逐渐积累和扩大自己在技术、视野等各方面的优势,到最后很可能就是有很多事情只有你能hold住了。  
  8. 很多公司里,Leader掌握的信息量和其他人完全不对等(当然某些非常open、共享的互联网公司除外)。比如某些项目的核心设计,未参与进来的人可能接触不到;比如某某问题的定位报告,可能当事人只发给了Leader;比如和客户的沟通交流,可能只有Leader参与了。其结果和7类似,导致Leader的成长速度远比其他人更快。
  9. 当机会摆在你面前时,你的退让在自己看来或许是“让贤”,觉得自己不够完美,担心把事情搞砸。但是在领导看来,是当他需要有人来分担一部分管理职责的时候,你退缩了,而别人勇敢站出来,主动承担。那么你是领导,你会更看好谁? 此时最好的选择当然是迎难而上,当然你可以把自己的顾虑直接说出来,需要领导提供什么帮助支持,比如:提供内训机会、在公开场合宣布对你的任命、在必要时候给你“撑腰”等等。

你可能感兴趣的:(项目管理,职业规划)