谈工程师的价值和发展
我一直认为,工程师,尤其是一线的,是最接近真相的人,也是最懂业务的人,应该有充分自由去实现自己想做的事情,去改造存在问题的项目,去颠覆陈旧的观念,可惜中国的土壤不好,公司的文化和观念也不是一天能改过来的,如果你能有机会去硅谷,那恭喜你,工程师在那里的地位是最高的,有像Facebook一样的工程师驱动的文化,有自由的空间和足够大的舞台。但在中国,作为工程师,想改变大环境很困难,那么只能改变自己,自己寻求更高的价值和更好的发展。
我经常跟朋友说,一个工程师的价值取决于两个方面:
一是你的内功,即综合能力、技术水平、思考力等等自己本身的素质,内功的价值如果有一个标尺的话一般由你公司给的年薪确定;
另一个是外延,或曰影响力系数,就是将你的内功表达出来,让他人能够欣赏到你的价值。也取决于你在行业的被认知度,有多少高质量的connection,你的代码有多少开发者用了,在开源社区有多少代码被approve了,你做的产品有多少用户等等,这个系数变数较大,一般的业界公认的牛人这个系数可以做到100,两个因素相乘就是你的价值。比如,对于这样的牛人,如果在公司的年薪是20万,那么在资本市场上,如果要收购你,需要花2,000万,真不贵,看看美国公司的人才并购中,基本上团队中单个人都大于这个价值。
提升内功我就不说了,作为工程师,不能不知道如何提升内功。这里更多分享一下如何提高外延。根据我最近一年多的经历和感悟总结了三点:
分享
高质量的分享,认真去写你每一博客,有干货,有思考,有原创性,不要有废话,即使是微博,也要言之有物,有观点和态度。如果有好的文章,不防投稿到网络媒体如InfoQ,杂志如《程序员》广泛传播。如果你功底足够强,同时对某方面有非常系统的理解,写书也是一个不错的渠道。公众演讲也是一个极佳的分享机会,当然要想收到演讲邀请必须先经营好自己的『自媒体』,让别人觉得你很有价值,想听到你的发言。
开源
开源社区,尤其是著名的开源社区,比如Linux, OpenStack等,有patch被approve进主干,是对工程师能力的一个背书,而且是公开的,谁都能看到,大家都能感知到,如果这个patch还非常重要,一些大牛和公司会赞赏你。无形中,你的个人价值就提升不少。只为自己公司写代码,再牛逼,也只有同事或公司知道你的价值,在HR面前议价能力不大。换一家公司在评估你价值的时候也很困难,
国际化
国际化有两个重要原因:一是由于中国特殊的不重视工程师的环境,我们就要寻求外部的支持,比如价值背书、融资支持;二是通过国际交流,缩短与老外在境界、思想以及方法论上的差距,提升自信心,有助于设计出有国际竞争力的产品,更有助于你站在浪潮之巅去思考问题,如果没有足够的交流,总是认为老外高人一等,无法平等对话,一辈子活在大公司的屋檐下,无法超越。
做到这三点,你已经不是一般人了。
提醒一下,扩大外延不就是你主动是攀附某些比较层次高的人,而是尽量去提升自己的层次,以跟其他人能够Match,这样才能平等的交流和对话,更能找到好伙伴和真心朋友。
以上是我这么长时间对工程师价值和发展的思考,好多想法和结论都是亲身经历体会出来的,一般人我不说的。价值和发展谈到这里,刚突然又想到另外一个故事:
去年第一次参加OpenStack Summit让我印象最深刻的还不是美国那些有活力的OpenStack创业公司,而是一个老太太,Nextenta的一位工程师,约莫60-70岁的样子,头发发白,牙齿也掉光了,在讲Swift存储优化的方案,如果没有记错的话应该是讲排重和多版本支持,用了到很多Nextenta存储里面的技术,非常深入地讲解架构和一些技术细节,思路非常清晰,应该还在写代码。演讲结束后与她交流,还是讨论技术,完全感受不到对方是一个老太太,而是一个资深的架构师。
中国工程师的优势是学习能力强,上手快,聪明,但遗憾的是一般生命周期很短,平均只有2~3年,要想发展必须向Manager的Level晋升,但很有可能,你就远离你钟爱的代码了,所以在中国很难有像老外一样做几十年coding的工程师。工程师普通缺乏的是全局掌握和架构能力,更缺乏长远规划。 这是为什么这么多年来,中国软件行业真正自主研发的基础软件很少的原因:一批生命周期只有2~3年的工程师却要自主研发需要有10年甚至更多生命周期的基础性软件,是多么不靠谱的一件事情。
因此,对于我们这帮年轻的中国工程师需要充分认识自己不足和优秀,在基础性、平台性大软件领域,尤其是偏底层的,我们要避免重复造轮子,多学习国外这些真正的资深架构师设计的工具或平台,最好的办法是参与开源,通过contribute back,与社区那些资深工程师一起工作,进而提升自己。