程序员生存定律

声明
本文由「理想流」原创,本人整理后重新发布,版权归原作者所有。另外,我已把完整的 PDF 文档放在百度网盘,有需要的小伙伴可以下载。
链接: https://pan.baidu.com/s/1n8cEXY3UuNeNMlxhhCdNiA 提取码: 8mry
谁 | 干嘛 | 啥时候 |
---|---|---|
理想流 | 首发 | 2014-06-08 |
阿基米东 | 整理 | 2019-10-03 |
写完《完美软件开发:方法与逻辑》后,想写本通俗点给刚入行的人看的书,干过软件这行当的可能都有这么种感觉,太多的事情真是该明白的时候不明白,真明白的时候基本就晚了,不说别人我自己就有点这样,所以就想总结下自己的过往认识写点对后辈来者有点帮助的东西。本来是想再出本书的,可是写来写去都还是有点抽象,看过我之前那本书的可能有感觉,这不是给入门的人看的文字,但一下子又改不过来,事情就耽误了。
所以把这些章节陆续整理下放出来,希望对刚入行的小朋友们有些帮助。有些事真是入行很久后才明白,感觉上如果能预先明白了,应该挺有帮助的。下面故事开始。
前言:解码程序人生
有这样两个人,他们一个1966年出生于陕西长安和一个1968年出生于山西阳泉,而后经过自己的努力两个人又先后以长安县第一名和阳泉市第一名的成绩,在85年和87年考进北京大学。在近50岁的时候两个人一个历经社教、装饰业、卖肉最终在档案馆找到了归宿,一个则在留学、Infoseek 打工、回国创业之后成为知名公司的 CEO。前一个是卖肉才子陆步轩,后一个则是百度 CEO 李彦宏。两个人起点类似,但现状的差异又是如此的巨大!究竟是什么力量造成了这种人生差异,其中又是否有规律可寻?
对上面这个问题,我想至少在程序员的职场里答案是肯定的,在这里人生是有一种内在的支配规律的。
本书中试图用四个可控变量来定义程序人生的规律,它们分别是:
- 自身价值——也就是你能干什么;
- 自身价值上的表达力——也就是别人认为你能干什么;
- 自身价值的稀缺性——也就是在特定时空背景下,市场对某种技能的渴求程度;
- 身处公司的特质和未来——也就是公司提供了怎样的平台给人发挥。
本书认为这四个变量一起决定了一个人在职 场中的市场价值,个人的一切选择主要是为了在这四个变量上有所收益,并使市场价值最大化。
程序员是一个非常离奇的职业,虽然名字都是程序员但现实中的程序员各方面差异却极大。单纯从物质收益的角度看超级程序员可以驾着游艇度假休闲,而有的程序员却只能怀揣仅剩的180元而看不到明天。这是身处职业路径上不同位置所带来的差异。职业路径确实就像分了级的梯子一样,走到那个高度就有那个高度的荣光。而为了在这梯子上走的顺畅,则需要使努力与规律契合,并在关键时刻做对选择,惟其如此人生整体表现出来的效能才会高。
在《黑客帝国》这部电影中曾经出现过这样一种场景,尼奥带着钥匙匠走在一条满是门的走廊里,必须开对门,尼奥才能见到 Matrix 的架构师。人生与此类似,每个人都面对和尼奥一样的问题:未来处于未知之中,每一次选择就是一次对人生未知部分的解码,选择之后人生的确定性增强而不确定性减弱,当所有未知褪去,人生也就瓜熟蒂落。
就像尼奥历尽许多辛苦才来到众多选择之门前面一样,要想主动选择而不是被动承受,首先要争得选择权。这种选择权往往来之不易,大多时候一个人许多年的努力拼搏才能换来一次选择的权利;但选择权的浪费却又无比的容易,这在软件行业尤为突出。看看周围,就可以感觉到有多少本来可以很杰出的人因为选错公司、选错行业、选错领域而默默无闻。
这是由软件独属于自身的特征所决定的。比如说:软件本身并不是一个边界清晰的领域,当软件和数学相结合时,它具有数学的特征,当软件和管理结合时,它就具有管理的特征。这种特别之处使程序员的选择权更容易被误用,因为待选项实在太多。
要想争得选择权并尽可能 避免误用,事实上需要对程序人生中所内蕴的规律洞若观火。为此,我们就需要知道程序员可能的人生出口、需要知道左右这种人生出口的职场定律、需要知道定律之下哪些是可控变量、哪些是预设前提、需要知道可控变量应该如何去改变。其中可控变量是争得选择权并避免误用它的关键。这也正是本书的根本目的。通过对规律的解析来为程序员的成长提供一点参照,让人少走一点弯路。
最后为了避免被人指责为功利心太重,不懂人生价值,补充一点关于人生价值的说明。 一个人变成什么样是有规律可循的,比如:陆步轩最终成为档案馆的职员、李彦宏成为 CEO,这背后是有一种支配规律的;但变成这个样子是否有价值,则只依赖于人的内心世界和自身的选择。陆步轩可以认为自己很成功,李彦宏可以认为自己很失败。这样的想法依赖于人的价值系统,就像只有原点、X 轴、Y 轴定了才有坐标可以标记位置一样,价值系统定了才能判定某种现实是否有价值,比如说:忠诚的神父可能并不会认为成为 CEO 是有价值的事情。这种价值系统与个人关联很大,也只有个人才有定义个人价值系统的权利。本书中基本不谈这种人生价值,而只谈如何取得更大的成绩。
程序人生的出口
很多人非常想知道自己的未来是什么样子的,迫切到一定程度甚至会找算命先生。如果并不是想得到一个精确结果,这事儿其实并没有想的那么难。程序员的人生看起来五花八门,可以是 Windows 系,可以是 Android 系,可以是 iPhone 系等等,但如果为之做点抽象,那就会发现人生出口的类别其实不多,接下来我们就结合例子来看看程序员的人生中最可能的几个出口。这些出口里有大部分人的未来景象。
成就超一流高手
袁峰先生是《Windows 图形编程》一书的作者,也是一位纯粹的程序员。从袁峰先生公开的简历(www.fengyuan.com)来看,袁峰先生从1993年加入 HP 一直到现在在微软从事 CLR 的开发始终是在编程第一线。在他的 Blog 上可以看出清晰的技术路线:
Printing → GDI/GDI+ → XPS → WPF → Parallel Computing → Debugging → Performance → CLR
考虑到袁峰先生是1978年入学的大学生,今年估计已近60岁,我们可以想象在剩余的职业生涯中,袁峰先生应该会一直从事编程工作。这也就意味着袁峰先生的职业生涯以编程开始,以编程结束,是非常典型的纯技术流的程序员:一生中不涉其他,唯有编程。
如果你很仔细的读过《Windows 图形编程》,你就会对袁峰先生在技术上的造诣佩服得五体投地,无论是深度还是广度。可惜的是,随着技术更迭,这本书里讲的很大一部分东西已然失去了现实意义,所以大概是买不到了。
这是程序员比较典型的一个出口,其特征是走比较纯粹的技术路线,其要点是技术上要能达到一定高度,最终成为顶级程序员。常说的 CodeGuru 和架构师都可以归在这一类别下,虽然这两者间还是有差异。走这条路时最怕陷入平庸,那样的话高不成低不就,很容易被新入行者超越。一旦成为技术路线上的低值人群,那就有被 提前淘汰的风险,同时几乎必然会转变成失意者。
积累、爆发、开始创业
与袁峰先生成为鲜明对比的是大家很熟悉的求伯君先生,这两个人虽然八竿子打不着,但参照意义其实很强。
袁峰先生1982年本科毕业,而求伯君先生1984年本科毕业,可以讲他们是同龄人。袁峰先生毕业于南京大学,求伯君先生毕业于国防科技大学,可以讲两个人起点、天分估计也差不多,但两个人走的道路却完全不一样。
求伯君先生在1994年前可以说是比较典型的程序员,这段时间里他和袁峰先生非常类似,其中值得写入软件开发史册的事情是几乎一个人完成了 DOS 下的 WPS。
在这个时间段上,求伯君先生无论在技术上还是产品上应该都是超绝的高手。这点可以从小米 CEO 雷军先生的回忆上看出来:
1990年初,我在一个朋友那用了 WPS 汉卡,当时就被震住了。界面易用美观,更强的是打印结果可以先模拟显示出来。署名是香港金山公司求伯君,觉得这个 “香港” 软件写得真好。
1994年求伯君先生创立珠海金山电脑公司,自此人生路径与袁峰先生开始有绝大分歧。在这之后,求伯君先生更多的是以企业家,而非是程序员的身份出现在大众面前,直至2011年求伯君先生宣布退休,退出公众视线。
求伯君先生的履历昭示了另一种程序员的道路,即以技术和热情创造辉煌产品,再以产品为创业基石。
IT 行业本来就是个智力密集型的行业,想想创造一家水泥公司和软件公司的差别可以更好的理解 IT 行业与传统行 业间的这种差异。互联网、云计算的兴起使创业的门槛进一步降低,理论上讲只要能做出优秀的产品并找到风险投资,几乎每个人都可以开始创业。虽然创业并非是这本书主要探讨的内容,但在当前的形势下创业确实也是少部分程序员的一个人生出口。
转向管理之路
由程序员转管理者是一条非常常见的道路,很像是程序世界里的学而优则仕。
现在很多软件企业中的中级管理人员(包括部门经理、产品经理、项目经理等)里70后、80后比较多,他们大多在2000年之后毕业。
这部分人员中的很大一部分走的是这样一条道路:在毕业后往往会从事3~5年的编程工作,接下来由于工作表现不错,同时也具备比较好的表达和沟通能力,于是开始肩负起部分管理工作。一旦开始从事管理工作后,接下来在工作中管理的成分越来越重,和程序的距离越来越远,已经算不得是纯粹的程序员了。从时间开销的角度看,他们同 PPT 打交道的时间稳步上升,而直接同编译器打交道的时间则稳步下降,并有变0的趋向。
这条道路是如此普遍,以至于每个程序员只要往四周一看,就都可以看到这条道路上的人。好奇者可以问问身边的中层管理人员,看看是不是这样一个成长故事。
走上这条道路的人需要爬的是另一种梯子,比如从项目经理到技术总监再到 CTO。当然每一层的选拔都会卡死相当一部分人。某些前行无路的人往往需要做一个艰难的选择,要么安全的维持现状,要么冒点险切换公司。
在很多技术路径较短,不以技术为核心的公司里,为了收入的提升这往往是一条必走的道路,所以可以讲这也是一个比较常见的人生出口。但很多人所认为的 “程序员30岁前需要向管理转行,这碗青春饭没法持续吃下去”,并不永远正确,在很多场合下这类选择反倒相当于自废武功,使自己管理上没什么成绩,技术又荒废了,这点会在后面的章节里进一步提到。
维持原状的老码农
维持原状的含义是加入程序员队伍后,工作内涵并无实质性变化,只是体现为一种简单的重复——这是与第一种程序员不同的关键,第一种程序员要不停的有技术上的深化和提高。
这类程序员所做的工作的表象形式会有所不同,比如可能今天做的是处理服装公司的网页,明天处理的则可能是化工厂的网页,但实质上各种工作本质上差别不大,从技术上看,没有层级差异。
下面是走到这条道路上的程序员的常见经历:姑且把这个程序员称为 X,他大学毕业后,加入一家对日外包类公司。接下来他工作的公司和地点就不停的变化。去过苏州、南京、北京、上海,由于总是不太如意,迫于经济压力也曾经到过日本,做过派遣社员,但当无法被派遣出去时,无奈之下就又回到了国内。
在不停的迁移过程中,工作内容变更得比较频繁,横跨多个领域,比如:银行、证券、GPS 等。但从层次来看,基本上是在应用层打转,工作内容也趋于简单化,基本上是在设计好的文档指导下做编码。由于自身能创造的价值没有显著突破,作为结果收入、职位基本上改善不多。挣扎10年之后,他很苦恼,因为自己做的事情,毕业生往往也很快就 可以做,而生活的压力却在不停地随着年纪的增加而增加。
上述这样的经历应该并不特殊,在很多人的身上应该都可以看到类似的人生轨迹。差别只是 X 可能是公司 A,具体到某个人可能是公司 B;X 可能去的是华东,具体到某个去的可能是华北。这类程序员如果不退场,不升级,那接下来的生命中工作和生活只会以某种模式继续重复。如果运气不好,甚至可能会失业。
更可怕的是到一定年纪后,很大一部分这类程序员会发现自己连退场的资格也没有,因为除了会写程序,并不会做其他的事情,与此同时房贷、家庭却成为一种长久的负担。这个人生出口虽然很让人叹息,也没人愿意选择,但它确实存在,并且很多人可能一不小心就走到了它的面前。
本书更主要的目的真的不是让人成为辉煌伟大的人物,我也不认为任何一本书有这样的能力。本书最主要的目的就是希望能尽可能帮助初入行者不要走到这条道路上来,毕竟一旦走到这条道路上来,人生就过于凄惨了。
提前退场,向代码说再见
对于喜欢闲聊的人,有时候会在闲聊中发现些让人吃惊的事情。很久以前一个房地产中介在听说我在软件公司工作后,告诉我:我也曾经是做软件的。我很惊讶地问他,怎么就不做了,却跑来做房产中介,这不是自废武功么。他回答我:做程序员太累,没前途。
在那之后,接下来这些年里,身边断断续续总会有人退出程序员这个行业。有的去销售电子产品,有的去做公务员,去做纯黑盒的测试诸如此类。2013年最 吸引大家眼球的退场事件是新浪架构师徐佳在奋斗数年后,告别 PHP,告别互联网开始卖水果。
据说徐佳先生因此而焕发了青春,但我个人并不看好这类选择,也不认为这是一种正确的选择。提前退场大多时候是对之前选择的一种否定,从人生整体收益的角度看,大致上是亏了,至少亏掉了做程序员那几年的时间。
这类事情一旦上升到人生价值的层次上,那就没有是非,只有个人选择,所以本书中不从这个视角考虑问题,而主要从功利且现实的角度来考察这类事情。
虽然退场大多时候从投资收益的角度看并不怎么好,往往是无奈下的选择,但这确实也是程序员群体的一个人生出口——“悄悄地我走了,正如我悄悄地来;我挥一挥衣袖,不带走一片云彩。”
哪个是你的人生出口
上一篇里主要写了几个可能的人生出口,接下来讲这些出口依赖于什么,这篇有点过渡性质,嫌烦可以不看。
对于一个程序员,大致的结局多是上述五种中的一个。其中转管理的程序员和成就高手的程序员算是稳中有升。创业者算是生死未卜。维持原状的老程序员则是失意的。他的选择权会被收得越来越窄,在工作层面,他需要和毕业生竞争,在家庭支出方面他所要承担的比别人一点不少。人生总是这样,向你索取的一端往往是确定的,而你所能获得的却往往是不确定的,人就夹在这个中间,如果无法给自己撑开足够大的空间,那就会很难受。
初入职场的程序员看到这里,最为关心的几乎一定是:这么多出口,我的未来可以是其 中哪个?
很不幸这并非是一个可以立刻给出答案的简单问题,为了回答这个问题不只要考虑哪个是适合自己的出口,也要考虑如何走到这个出口面前,并避免那些代表失意的。
为了回答上述问题,需要对未来做点预测,而为了对未来做点预测,那么需要为人生建立一个大致的模型,接下来把个人的努力等作为输入,这样输出端会因此而有各种相应的变化。但这个模型就像被藏起来的密码,需要费点心思才能找得到——这也正是这本书要做的事情。
这时尝试以写程序的方式建立一种精确的人生模型是非常困难的。一旦试图这样做很容易进入一个误区,即期望为人生建立一个真理式的公式。
比如:如果你努力,那么你一定成功。如果你有责任感,你一定成功。如果你人品好,你一定成功。如果你读书,那么一定成功。如果你注意细节,那么你一定成功。如果你时间管理做好,你一定成功。......
上边的这些逻辑并非凭空想象,而是很多成功学书籍的基本出发点。这种种来自成功学书籍的陈词滥调很像一个拙劣的程序员把分支、选择、循环硬套在人生上的结果,虽然看着有几分道理,但实际上是不对的。在分析人生规律时,事实上很难找到类似自然科学中的、精确的绝对真理。据说某位行为科学家曾经总结过:上帝把所有容易的问题都留给了物理学家。言下之意是,社会学科的问题都大不易。
其根本原因在于,人生是不精确的。太多偶然因素可以影响最终的结果,而这些因素本身又大多不可量化,试想一下你应该如何量化一份时运,一场姻缘。但这并不意味着不可以对人生的方向进行大致的分解和预测,比如:如果一个人每天除了吃饭就是睡觉,那他的人生一定没有成绩,这就很容易预测。
这里的关键是要找到起关键作用的可控因子和权变变量。我们可以说 X 导致 Y,但这只能在 Z 所限定的条件下。而又由于权变变量太多,偶然性无法完全去除,我们也必须在结果中接受一定的模糊性。一个人可以是天才程序员,也很努力,但他跑到了一个外包的公司做简单重复的工作,那么就可能他的才能始终无人发现,人生一样可能没有闪光点。这就是人生的偶然性。
人生其实是条曲线,其振幅则随着时间的流逝而逐渐收窄。对婴儿而言,其未来具有无限的可能性。对耄耋老翁而言,其未来则唯一而确定。而一个人最终振幅的高度则同时取决于:机缘、天分和努力。家世,时代种种皆可归为机缘。智商、情商、体质种种皆可归为天分。机缘和天分皆是命数,无从左右的起。也即是说,一个人持有的,可以打破既定命数的砝码也只是努力而已。从人生长短的角度来看,上帝是公平的,每个人可用时间大致相同。
不同的则是努力的效能。
努力本身并不只是简单的付出,还牵涉到方向的选择,形势的顺应,环境的驾驭诸如此类。考虑了这些的努力更容易在收入、职位等有形收获上看见结果,忽视这些的则更可能辛苦却颗粒无收。这就是在下一章中将会展开的生存定律。
交换是职场里一切的根本
支撑职场的基本规则是交换,交换的两端分别是你可创造的价值与你的职场位置(包含收入)。交换就像任督二脉间的通道一样,越是通畅,人生也就越顺风顺水;堵得越死,人也就越寸步难行。
这点要刻在脑子里,一旦要忘记了,就赶紧打自己两个耳光。忘了这点的人一旦被炒,就会很委屈地发 “不要拿公司当家” 这类感慨。
那什么是交换?
在一般人眼里,交换就是你有个东西我要,我有个东西你要,大家互通有无这样一个过程。但在学者眼里,事情却要更复杂一点。何新先生在《反主流经济学》中,对交换进行了深度剖析,他说:
- 社会交换成立之第一前提,就是人类之有欲求与需要,而靠自身不能满足。
因此,事物是否具有使用价值,决定于其能否满足人类之某种欲求与需要。所以,事物之内在属性形成其使用价值。
- 私有制,占有,占有权利,是社会交换得以发生之第二前提。
人有需求之物,而先为他人已据有者,若欲取之,只有二途:或强取(掠夺、战争、索要),或巧取——后者即交换。
- 随机之交换,导致对交换品的偶然随机定价,故成交之价格有极大随意性。
而常态之交换,则必然趋向理性之定价,即均衡定价。买卖双方经协商而接受的均衡定价之尺度,其依据乃参照商品所内涵之真实价值。
故:
- 商品确有真实价值存在。
- 真实价值乃是一种无形的、形而上的虚拟实体。(马克思说:价值是一种社会关系的反映。)
因此,商品价值之评估有三重性:
- 使用价值
- 内涵价值
- 外化的实际交换价值
交换价格是内涵价值的外化表现。内涵价值与价格之不同,在于内涵价值是内在的、非外现的。
物品买卖成交之交换量,谓之价格或市场价格。
价格具主观性,是商品内涵固有之价值之外化。内涵价值能否得到 实现,取决于需求者之购买评估。内涵价值得到市场实现,意味着商品转换为货币。
但是,价值在市场中之二重化,价格对价值之背离,造成等价交换规律之破坏。等价交换意味着等价价值品之交换,并非意味同等价格品之交换。同等价格对同等价格之交换,未必是等价交换。因市场价格之形成,受市场之需求度影响,而非单纯决定于价值之同等性。
上面这段文字说的是经济,所以很多人会看的云里雾里,但其中对交换的解析入木三分,只要我们还承认工作本身也是一种个人和法人间的交换,那么就逃不出这些约束——虽然有杀鸡用牛刀之嫌疑。
尽管上面的解释已经非常清楚,但为了让其更加的通俗易懂,这里附加一点说明:交换本身起源于互有所需,比如某一公司开发打印机驱动程序,那么就需要了解页面描述语言(PDL)、操作系统打印子系统技能的程序员。
交换本身的基本原则是等价交换,但这种原则往往会被市场需求度等因素破坏。比如:TTS 可能很难搞,一个人学习了数十年,本应获得较高的市场价格,但很不幸,如果搞这个的人碰巧很多,或者应用还不广,这时候交换价格也可能很低。想想同样是在科大讯飞,工作实质没什么太大变化,但在移动互联网兴起前和兴起后交换的价格会不会有很大差异。
破坏这一原则的因素还有很多,比如说垄断。如果一个人掌握的技术只有一家公司用,那么这个公司具有破坏等价交换原则的权利。反过来讲,如果某项技术只有某个人掌握,那么这个人具有破坏等价交换的权利。
工资可以表示为一种成交价格,这一价格具有一定的随意性,具体表现为同样工作内容,不同公司,不同时间点,收入差异可能非常巨大。比如:同等技术能力下,表现力好的程序员可能更容易获得较好的薪资。但总体市场行情却在一定范围内趋向于稳定,比如毕业生的起薪大致在10K/月以下,Google、Facebook 这些公司的平均薪资相差也不大。
这也就意味着,影响最终交换价格(即工资收入的)的主要是两个因素:内含价值和市场因素(稀缺性等)。
在程序员与公司进行交换的过程中,其中最为基础的一点是你要有维护自身权利的能力,即程序员自身要有选择权,在只能被选择时,事情会趋向于另一个极端:必须不停的让步,放弃各种可争得的权利,最直接的表现是收入上没有议价能力。
很少有公司会主动宣传工作首先是一种交换,但这一事实本身却应该没什么太多的争议。但细想下来这个基础支撑点也只能是交换,恰如食物、水与生命间的关联。对外,企业有所产出,与客户交换获取利润;对内,则是员工有所产出,与企业交换获取工资等等。这是经济形态所决定的,在这一前提下,裁员与跳槽都是一种必然出现的现象,反倒是雇佣终身制是反其道而行。
认清交换是第一支撑之后,我们就可以推导出职场生存定律。
定律的概要
如果我们承认交换是职场里一切的根本,那么就可以基于交换的特征推导出生存定律的纲要。
假设说一个人的技能所带来的价值是 S,实现程度是 A,那么 S x A 即为一个人可以为公司创造的可见价值,也即是可以从公司交换到的最大价值。
其中技能 S 是指一个人所能做的事,即自身的价值,可以是编程语言、设计知识也可以是管理知识等等。实现程度 A 则是指各种技能 被周围的人认知的程度。
这好像有点绕,但实际上一个人的实际能力水平和被认可的能力水平往往存在偏差,极端的情形就是一个人确实很优秀,程序也确实写的很好,但周围的人都认为他不行,并只分配他做周边性的工作,这个情形下这个人的价值实现程度很低,创造的价值也很低。
这就是我想说的生存定律总纲,并不复杂,也不抽象。下面我们来进一步做点分析。
如果收入水平为 I,那么当 S x A > I 时一个人是有选择权的也是安全的,否则一个人对于公司而言是负资产(至少是被认为是负资产),潜在的有被剔除的风险。一旦一个人在多家公司里都处于这样一种情形下时,这个人的选择权会越来收的越窄(只有公司可以选择个人,个人却没可能选择公司),人生也就会越来越被动。
当然无论技能 S 和实现程度 A 都很难清楚量化只能做定性分析,但确实有几个因素会使实现程度 A 急速膨大。这几个因素可以概括为:自身价值表达力,自身价值的稀缺性,公司的特质和未来。
就日常的感受来看,这往往是程序员这个群体不太关注的地方。作为结果很多人的真实价值可能并没有得到体现,或者说被低估了。
自身价值的表达力
简单来讲,一个人可以有屠龙的本事,但如果所有周围的人都认为你只能杀鸡,那么现实中,你的能力就是杀鸡而不是屠龙。
一个人的真正自我和别人眼里的你往往是有差距的。这种差距可能来源于不熟悉,也可能来源于误解等,但确实是一个不能忽视的因素。特别是对于毕业生 或者刚刚开始工作这类还处在被评判位置上的人。
假如一个人身处任人唯亲的环境之中,那么表达力的作用会被无限放大,这时候个人价值的作用反倒会缩小。比较良好的情形是身处公平竞争的环境中,这时候表达力的作用会有相对清晰的边界。但由于每个人对公平都有属于自己的定义,所谓的公平竞争也只是相对的公平,表达力的作用并不会减少为 0。
自身价值的稀缺性
假如开发某一产品时,必须某项技术,而这一技术只有某人才掌握,这时这个人的价值会被高估。这时起作用的影响因素可以称之为稀缺性。稀缺性存在与否即取决于自身高度,也取决于大势,而对于后者而言,个人改变余地很小,大多时候只能顺应。
比如说:在 IT 行业刚开始的时候,产业本身急速膨胀,但程序员的人数却相对较少,这就导致10年前程序员的起点工资反倒很高。而10年之后,由于介入门槛一再拉低,大批人员涌入程序员队伍,起点的工资反倒下滑。这种行业的时间特征主要是稀缺性所造成的,反倒是很难讲10年前的程序员更加努力,水平更高,而今天的程序员就不努力,水平变差了。
公司的特质和未来
最后一个影响实现程度 A 的关键因素是公司自身的特性。公司更像是一个平台,往往对平台上的人所能达到的平均高度有所影响。假设两个人同样是很优秀 的程序员,一个进了 Google 这样的公司,另一个进了一家外包公司,他们两个加入公司后都表现非常优秀,公司也对其非常认可,但从收入、技术高度等来看,这两个人却会有所差异,时间越长差异可能越大。这种差异并非努力所造成的,而是由于公司在生产链条上所处的位置不同而导致的。
程序员生存定律——细论影响人生成绩的四个要素
定律要素之一:自身价值
在金庸先生构建的武侠世界里,最犀利的杀伐武功应该是《独孤九剑》,但学会了独孤九剑却失了内功的令狐冲一样会被一堆无赖按到地上揍个鼻青脸肿。待到学会了吸星大法,内力大进,那就再没这回事了。
根据打铁还要自身硬的道理,修炼确实应该先从内功开始,但不是说招式就不必要了,这很辨证。至于究竟那个更重要这样的问题不在具体的时空背景下是没有答案的。
从最终表现来看,一个人的价值(或者说内功)可以体现在几乎无限多的地方,如:编程语言、分析设计、沟通、管理、估算、流程改善等等。但如果为各种技能稍做一点分类后就会发现,人创造价值的基本途径只有两个:一个是完全依赖于自身的技能,另一个则是假于他人 之手。
后者也许不太容易理解,这里举一个简单的例子:假设张三和李四的技术能力都非常的优秀,但两者性格不合,一旦在一起工作就非常容易各自固守己见,寸步不让,每天争吵不断。这个时候王二出现了,王二的技术能力并不优秀,但比较擅长协调各个人的意见,有王二在,张三和李四就可以配合的比较好。在这种情形下,王二创造了价值,虽然很大程度上这种创造依赖于A和B。
具体来讲,编码、设计、测试、估算、需求分析等更类似于直接通过自身的技能创造价值,而管理、流程改善等则类似于后者。专注于设计、编码、测试等实现工作的人在现实中往往被定义为程序员,而专注于管理、流程改善等方面的人在现实里则往往被定义为管理者。
从可创造价值大小的角度看,一般情形下两者似乎都没有一种准确限度:伟大的政治家和伟大的科学家可以同样的伟大。但从现实来看,至少是在国内,很多时候人们更倾向于认为管理类职位拥有更高的价值。现实中很多公司中确实如此,但这并不总是对的。
似乎可以在某一条线上把公司安放在不同的位置上,越过某条界限之后,直接做事的人所创生的价值才可能超过管理人员。这反过来要求岗位的技术附加值要比较高。想象下在制造类企业中,从收入的角度看,生产线上的工人的收入总是会偏低。同理,在软件公司中,越是技术含量低的开发工作,这点体现的越为明显。而一旦到了顶级软件公司中故事就可能会不一样了。
在《微软的秘密》这本书中有这样一段描述:
我们中有些人对开发人员怀有极度的不满,那简直就是嫉妒。达瑞尔•希文斯是 Windows NT 的主要开发人员之一,他有9辆保时捷,我当然也希望能够拥有9辆保时捷。但我 怨恨达瑞尔么?当然不。他绝对受之无愧,他真的棒极了。如果用我的支票来给他开工资,我也愿意。不过从长远来看,过一两年你肯定就能得到应得的报酬。如果由于某些原因,我们引入了达瑞尔,并付给他足够买9辆保时捷的薪水,而他一旦干得不够好,就不会在这里工作很久...... 但这些开发人员都是精心挑选出来的人才...... 唯一的不利之处在于,总有一部分人感到开发人员才是 “主角”,但这正是这一行业的本质。
持上述看法的人是 Windows NT 的高级产品经理理查德•巴斯,从描述来看,这个管理者的收入是要低于被管理的技术人员的。
促成这一结果的三个关键词是:微软、Windows NT、主要开发人员。微软抓住天时雄霸 PC 的操作系统市场,而在操作系统中 Windows NT 正是核心,在前两者基础上达瑞尔•希文斯又是主要的开发人员。为使技术人员的收入超过管理人员的,这三个因素恐怕是缺一不可。这在以销售为核心的公司里很难复制,但在以产品为核心的公司里却始终存在着可能性。
单以方向自身而言,很难单纯讲那条是金光大道,而那条是华容道。关键点首先在于要避免选择自身内部蕴含矛盾,比如你想做技术却选了不以技术为核心支撑的公司,选了管理,却在纯研发环境里。其次在于无论那条路上都要努力走到专业和高端。
而不管技术还是管理,影响增值整个过程的因素都比较多:知识体系上的认知、方向的选择、博与专的平衡、知识的可流动性等都要分别进行考察。对这些点的考察将在后面逐渐展开。