程序员生存定律[一] 程序员的出口

【前言:解码程序人生】

本书中试图用四个可控变量来定义程序人生的规律,它们分别是:自身价值---也就是你能干什么;自身价值上的表达力---也就是别人认为你能干什么;自身价值的稀缺性---也就是在特定时空背景下,市场对某种技能的渴求程度;身处公司的特质和未来---也就是公司提供了怎样的平台给人发挥。本书认为这四个变量一起决定了一个人在职场中的市场价值,个人的一切选择主要是为了在这四个变量上有所收益,并使市场价值最大化。

程序员是一个非常离奇的职业,虽然名字都是程序员但现实中的程序员各方面差异却极大。单纯从物质收益的角度看超级程序员可以驾着游艇度假休闲,而有的程序员却只能怀揣仅剩的180元而看不到明天。这是身处职业路径上不同位置所带来的差异。职业路径确实就像分了级的梯子一样,走到那个高度就有那个高度的荣光。而为了在这梯子上走的顺畅,则需要使努力与规律契合,并在关键时刻做对选择,惟其如此人生整体表现出来的效能才会高。

在《黑客帝国》这部电影中曾经出现过这样一种场景,尼奥带着钥匙匠走在一条满是门的走廊里,必须开对门,尼奥才能见到Matrix的架构师。人生与此类似,每个人都面对和尼奥一样的问题:未来处于未知之中,每一次选择就是一次对人生未知部分的解码,选择之后人生的确定性增强而不确定性减弱,当所有未知褪去,人生也就瓜熟蒂落。

就像尼奥历尽许多辛苦才来到众多选择之门前面一样,要想主动选择而不是被动承受,首先要争得选择权。这种选择权往往来之不易,大多时候一个人许多年的努力拼搏才能换来一次选择的权利;但选择权的浪费却又无比的容易,这在软件行业尤为突出。看看周围,就可以感觉到有多少本来可以很杰出的人因为选错公司、选错行业、选错领域而默默无闻。

这是由软件独属于自身的特征所决定的。比如说:软件本身并不是一个边界清晰的领域,当软件和数学相结合时,它具有数学的特征,当软件和管理结合时,它就具有管理的特征。这种特别之处使程序员的选择权更容易被误用,因为待选项实在太多。

要想挣得选择权并尽可能避免误用,事实上需要对程序人生中所内蕴的规律洞若观火。为此,我们就需要知道程序员可能的人生出口、需要知道左右这种人生出口的职场定律、需要知道定律之下那些是可控变量、那些是预设前提、需要知道可控变量应该如何去改变。其中可控变量是挣得选择权并避免误用它的关键。这也正是本书的根本目的。通过对规律的解析来为程序员的成长来提供一点参照,让人少走一点弯路。

最后为了避免被人指责为功利心太重,不懂人生价值,补充一点关于人生价值的说明。 一个人变成什么样是有规律可循的,比如:陆步轩最终成为档案馆的职员、李彦宏成为CEO,这背后是有一种支配规律的;但变成这个样子是否有价值,则只依赖于人的内心世界和自身的选择。陆步轩可以认为自己很成功,李彦宏可以认为自己很失败。这样的想法依赖于人的价值系统,就像只有原点、X轴、Y轴定了才有坐标可以标记位置一样,价值系统定了才能判定某种现实是否有价值,比如说:忠诚的神父可能并不会认为成为CEO是有价值的事情。这种价值系统与个人关联很大,也只有个人才有定义个人价值系统的权利。本书中基本不谈这种人生价值,而只谈如何取得更大的成绩。

【程序人生的出口】

很多人非常想知道自己的未来是什么样子的,迫切到一定程度甚至会找算命先生。如果并不是想得到一个精确结果,这事儿其实并没有想的那么难。程序员的人生看起来五花八门,可以是Windows系,可以是Android系,可以是iPhone系等等,但如果为之做点抽象,那就会发现人生出口的类别其实不多,接下来我们就结合例子来看看程序员的人生中最可能的几个出口。这些出口里有大部分人的未来景象。

1 成就超一流高手

袁峰先生是《Windows图形编程》一书的作者,也是一位纯粹的程序员。从袁峰先生公开的简历(www.fengyuan.com)来看,袁峰先生从1993年加入HP一直到现在在微软从事CLR的开发始终是在编程第一线。在他的Blog上可以看出清晰的技术路线图:Printing →GDI/GDI+ → XPS →WPF →Parallel Computing → Debugging → Performance → CLR

考虑到袁峰先生是78年入学的大学生,今年估计已近60岁,我们可以想象在剩余的职业生涯中,袁峰先生应该会一直从事编程工作。这也就意味着袁峰先生的职业生涯以编程开始,以编程结束,是非常典型的纯技术流的程序员:一生中不涉其他,唯有编程。

如果你很仔细的读过《Windows图形编程》,你就会对袁峰先生在技术上的造诣佩服的五体投地,无论是深度还是广度。可惜的是,随着技术更迭,这本书里讲的很大一部分东西已然失去了现实意义,所以大概是买不到了。

这是程序员比较典型的一个出口,其特征是走比较纯粹的技术路线,其要点是技术上要能达到一定高度,最终成为顶级程序员。常说的CodeGuru和架构师都可以归在这一类别下,虽然这两者间还是有差异。走这条路时最怕陷入平庸,那样的话高不成低不就,很容易被新入行者超越。一旦成为技术路线上的低值人群,那就有被提前淘汰的风险,同时几乎必然会转变成失意者。

2 积累、爆发、开始创业

与袁峰先生成为鲜明对比的是大家很熟悉的求伯君先生,这两个人虽然八竿子打不着,但参照意义其实很强。

袁峰先生1982年本科毕业,而求伯君先生1984年本科毕业,可以讲他们是同龄人。袁峰先生毕业于南京大学,求伯君先生毕业于国防科技大学,可以讲两个人起点、天分估计也差不多,但两个人走的道路却完全不一样。

求伯君先生在1994年前可以说是比较典型的程序员,这段时间里他和袁峰先生非常类似,其中值得写入软件开发史册的事情是几乎一个人完成了DOS下的WPS在这个时间段上,求伯君先生无论在技术上还是产品上应该都是超绝的高手。这点可以从小米CEO雷军先生的回忆上看出来:

1990年初,我在一个朋友那用了WPS汉卡,当时就被震住了。界面易用美观,更强的是打印结果可以先模拟显示出来。署名是香港金山公司求伯君,觉得这个“香港”软件写得真好。

1994年求伯君先生创立珠海金山电脑公司,自此人生路径与袁峰先生开始有绝大分歧。在这之后,求伯君先生更多的是以企业家,而非是程序员的身份出现在大众面前,直至2011年求伯君先生宣布退休,退出公众视线。

求伯君先生的履历昭示了另一种程序员的道路,即以技术和热情创造辉煌产品,再以产品为创业基石。

IT行业本来就是个智力密集型的行业,想想创造一家水泥公司和软件公司的差别可以更好的理解IT行业与传统行业间的这种差异。互联网、云计算的兴起使创业的门槛进一步降低,理论上讲只要能做出优秀的产品并找到风险投资,几乎每个人都可以开始创业。虽然创业并非是这本书主要探讨的内容,但在当前的形势下创业确实也是少部分程序员的一个人生出口。

3 转向管理之路

由程序员而管理者是一条非常常见的道路,很像是程序世界里的学而优则仕。

现在很多软件企业中的中级管理人员(包括部门经理、产品经理、项目经理等)里70后、80后比较多,他们大多在2000年之后毕业。

这部分人员中的很大一部分走的是这样一条道路:在毕业后往往会从事3~5年的编程工作,接下来由于工作表现不错,同时也具备比较好的表达和沟通能力,于是开始肩负起部分管理工作。一旦开始从事管理工作后,接下来在工作中管理的成分越来越重,和程序的距离越来越远,已经算不得是纯粹的程序员了。从时间开销的角度看,他们同PPT打交道的时间稳步上升,而直接同编译器打交道的时间则稳步下降,并有变0的趋向。

这条道路是如此普遍,以至于每个程序员只要往四周一看,就都可以看到这条道路上的人。好奇者可以问问身边的中层管理人员,看看是不是这样一个成长故事。

走上这条道路的人需要爬的是另一种梯子,比如从项目经理到技术总监再到CTO。当然每一层的选拔都会卡死相当一部分人。某些前行无路的人往往需要做一个艰难的选择,要么安全的维持现状,要么冒点险切换公司。

在很多技术路径较短,不以技术为核心的公司里,为了收入的提升这往往是一条必走的道路,所以可以讲这也是一个比较常见的人生出口。但很多人所认为的“程序员30岁前需要向管理转行,这碗青春饭没法持续吃下去”,并不永远正确,在很多场合下这类选择反倒相当于自废武功,使自己管理上没什么成绩,技术又荒废了,这点会在后面的章节里进一步提到。

4 维持原状的老码农

维持原状的含义是加入程序员队伍后,工作内涵并无实质性变化,只是体现为一种简单的重复---这是与第一种程序员不同的关键,第一种程序员要不停的有技术上的深化和提高

这类程序员所做的工作的表象形式会有所不同,比如可能今天做的是处理服装公司的网页,明天处理的则可能是化工厂的网页,但实质上各种工作本质上差别不大,从技术上看,没有层级差异。

下面走到这条道路上的程序员的常见经历:姑且把这个程序员成为X,他大学毕业后,加入一家对日外包类公司。接下来他工作的公司和地点就不停的变化。去过苏州、南京、北京、上海,由于总是不太如意,迫于经济压力也曾经到过日本,做过派遣社员,但当无法被派遣出去时,无奈之下就又回到了国内。

在不停的迁移过程中,工作内容变更的比较频繁,横跨多个领域,比如:银行、证券、GPS等。但从层次来看,基本上是在应用层打转,工作内容也趋于简单化,基本上是在设计好的文档指导下做编码。由于自身能创造的价值没有显著突破,作为结果收入、职位基本上改善不多。挣扎10年之后,他很苦恼,因为自己做的事情,毕业生往往也很快就可以做,而生活的压力却在不停的随着年纪的增加而增加。

上述这样的经历应该并不特殊,在很多人的身上应该都可以看到类似的人生轨迹。差别只是X可能是公司A,具体到某个人可能是公司BX可能去的是华东,具体到某个去的可能是华北。这类程序员如果不退场,不升级,那接下来的生命中工作和生活只会以某种模式继续重复。如果运气不好,甚至可能会失业。

更可怕的是到一定年纪后,很大一部分这类程序员会发现自己连退场的资格也没有,因为除了会写程序,并不会做其他的事情,与此同时房贷、家庭却成为一种长久的负担。这个人生出口虽然很让人叹息,也没人愿意选择,但它确实存在,并且很多人可能一不小心就走到了它的面前。

本书更主要的目的真的不是让人成为辉煌伟大的人物,我也不认为任何一本书有这样的能力。本书最主要的目的就是希望能尽可能帮助初入行者不要走到这条道路上来,毕竟一旦走到这条道路上来,人生就过于凄惨了。

5 提前退场、向代码说再见

对于喜欢闲聊的人,有时候会在闲聊中发现些让人吃惊的事情。很久以前一个房地产中介在听说我在软件公司工作后,告诉我:我也曾经是做软件的。我很惊讶的问他,怎么就不做了,却跑来做房产中介,这不是自废武功么。他回答我:做程序员太累,没前途。

在那之后,接下来这些年里,身边断断续续总会有人退出程序员这个行业。有的去销售电子产品,有的去做公务员,去做纯黑盒的测试诸如此类。2013年最吸引大家眼球的退场事件是新浪架构师徐佳在奋斗数年后,告别PHP,告别互联网开始卖水果。

据说徐佳先生因此而焕发了青春,但我个人并不看好这类选择,也不认为这是一种正确的选择。提前退场大多时候是对之前选择的一种否定,从人生整体收益的角度看,大致上是亏了,至少亏掉了做程序员那几年的时间。

这类事情一旦上升到人生价值的层次上,那就没有是非,只有个人选择,所以本书中不从这个视角考虑问题,而主要从功利且现实的角度来考察这类事情。

虽然退场大多时候从投资收益的角度看并不怎么好,往往是无奈下的选择,但这确实也是程序员群体的一个人生出口---“悄悄的我走了,正如我悄悄的来;我挥一挥衣袖,不带走一片云彩。”

【那个是你的人生出口】

对于一个程序员,大致的结局多是上述五种中的一个。其中转管理的程序员和成就高手的程序员算是稳中有升。创业者算是生死未卜。维持原状的老程序员则是失意的。他的选择权会被收的越来越窄,在工作层面,他需要和毕业生竞争,在家庭支出方面他所要承担的比别人一点不少。人生总是这样,向你索取的一端往往是确定的,而你所能获得的却往往是不确定的,人就夹在这个中间,如果无法给自己撑开足够大的空间,那就会很难受。

初入职场的程序员看到这里,最为关心的几乎一定是:这么多出口,我的未来可以是其中那个?

很不幸这并非是一个可以立刻给出答案的简单问题,为了回答这个问题不只要考虑那个是适合自己的出口,也要考虑如何走到这个出口面前,并避免那些代表失意的。

为了回答上述问题,需要对未来做点预测,而为了对未来做点预测,那么需要为人生建立一个大致的模型,接下来把个人的努力等作为输入,这样输出端会因此而有各种相应的变化。但这个模型就像被藏起来的密码,需要费点心思才能找得到---这也正是这本书要做的事情

这时尝试以写程序的方式建立一种精确的人生模型是非常困难的。一旦试图这样做很容易进入一个误区,即期望为人生建立一个真理式的公式。

比如:如果你努力,那么你一定成功。如果你有责任感,你一定成功。如果你人品好,你一定成功。如果你读书,那么一定成功。如果你注意细节,那么你一定成功。如果你时间管理做好,你一定成功。... ...

上边的这些逻辑并非凭空想象,而是很多成功学书籍的基本出发点。这种种来自成功学书籍的陈词滥调很像一个拙劣的程序员把分支、选择、循环硬套在人生上的结果,虽然看着有几分道理,但实是不对的。在分析人生规律时,事实上很难找到类似自然科学中的、精确的绝对真理。据说某位行为科学家曾经总结过:上帝把所有容易的问题都留给了物理学家。言下之意是,社会学科的问题都大不易。

其根本原因在于,人生是不精确的。太多偶然因素可以影响最终的结果,而这些因素本身又大多不可量化,试想一下你应该如何量化一份时运,一场姻缘。但这并不意味着不可以对人生的方向进行大致的分解和预测,比如:如果一个人每天除了吃饭就是睡觉,那他人生一定没有成绩,这就很容易预测。

这里的关键是要找到起关键作用的可控因子和权变变量。我们可以说X导致Y,但这只能在Z所限定的条件下。而又由于权变变量太多,偶然性无法完全去除,我们也必须在结果中接受一定的模糊性。一个人可以是天才程序员,也很努力,但他跑到了一个外包的公司做简单重复的工作,那么就可能他的才能始终无人发现,人生一样可能没有闪光点。这就是人生的偶然性

人生其实是条曲线,其振幅则随着时间的流逝而逐渐收窄。对婴儿而言,其未来具有无限的可能性。对耄耋老翁而言,其未来则唯一而确定。而一个人最终振幅的高度则同时取决于:机缘、天分和努力。家世,时代种种皆可归为机缘。智商、情商、体质种种皆可归为天分。机缘和天分皆是命数,无从左右的起。也即是说,一个人持有的,可以打破既定命数的砝码也只是努力而已。从人生长短的角度来看,上帝是公平的,每个人可用时间大致相同。

不同的则是努力的效能

努力本身并不只是简单的付出,还牵涉到方向的选择,形势的顺应,环境的驾驭诸如此类。考虑了这些的努力更容易在收入、职位等有形收获上看见结果,忽视这些的则更可能辛苦却颗粒无收。这就是在下一章中将会展开的生存定律。

【交换是职场里一切的根本】

支撑职场的基本规则是交换,交换的两端分别是你可创造的价值与你的职场位置(包含收入)。交换就像任督二脉间的通道一样,越是通畅,人生也就越顺风顺水;堵得越死,人也就越寸步难行。

这点要刻在脑子里,一旦要忘记了,就赶紧打自己两个耳光。忘了这点的人一旦被炒,就会很委屈的发“不要拿公司当家”这类感慨。

那什么是交换?

在一般人眼里,交换就是你有个东西我要,我有个东西你要,大家互通有无这样一个过程。但在学者眼里,事情却要更复杂一点。何新先生在《反主流经济学》中,对交换进行了深度剖析,他说:

  • 社会交换成立之第一前提,就是人类之有欲求与需要,而靠自身不能满足。

   因此,事物是否具有使用价值,决定于其能否满足人类之某种欲求与需要。所以,事物之内在属性形成其使用价值。

  • 私有制,占有,占有权利,是社会交换得以发生之第二前提。

   人有需求之物,而先为他人已据有者,若欲取之,只有二途:或强取(掠夺、战争、索要),或巧取——后者即交换。

  • 随机之交换,导致对交换品的偶然随机定价,故成交之价格有极大随意性。

  而常态之交换,则必然趋向理性之定价,即均衡定价。买卖双方经协商而接受的均衡定价之尺度,其依据乃参照商品所内涵之真实价值。

  故:(1)商品确有真实价值存在。

        (2)真实价值乃是一种无形的、形而上的虚拟实体。(马克思说:价值是一种社会关系的反映。)

  • 因此,商品价值之评估有三重性:

  一为使用价值,二为内涵价值,三为外化的实际交换价值。

  交换价格是内涵价值的外化表现。内涵价值与价格之不同,在于内涵价值是内在的、非外现的。

  • 物品买卖成交之交换量,谓之价格或市场价格。

    价格具主观性,是商品内涵固有之价值之外化。内涵价值能否得到实现,取决于需求者之购买评估。内涵价值得到市场实现,意味着商品转换为货币。

  • 但是,价值在市场中之二重化,价格对价值之背离,造成等价交换规律之破坏。等价交换意味着等价价值品之交换,并非意味同等价格品之交换。同等价格对同等价格之交换,未必是等价交换。因市场价格之形成,受市场之需求度影响,而非单纯决定于价值之同等性。

上面这段文字说的是经济,所以很多人会看的云里雾里,但其中对交换的解析入木三分,只要我们还承认工作本身也是一种个人和法人间的交换,那么就逃不出这些约束---虽然有杀鸡用牛刀之嫌疑。

尽管上面的解释已经非常清楚,但为了让其更加的通俗易懂,这里附加一点说明:

交换本身起源于互有所需,比如:某一公司开发打印机驱动程序,那么就需要了解页面描述语言(PDL)、操作系统打印子系统技能的程序员。

交换本身的基本原则是等价交换,但这种原则往往会被市场需求度等因素破坏。比如:TTS可能很难搞,一个人学习了数十年,本应获得较高的市场价格,但很不幸,如果搞这个的人碰巧很多,或者应用还不广,这时候交换价格也可能很低。想想同样是在科大讯飞,工作实质没什么太大变化,但在移动互联网兴起前和兴起后交换的价格会不会有很大差异。

破坏这一原则的因素还有很多,比如说垄断。如果一个人掌握的技术只有一家公司用,那么这个公司具有破坏等价交换原则的权利。反过来讲,如果某项技术只有某个人掌握,那么这个人具有破坏等价交换的权利。

工资可以表示为一种成交价格,这一价格具有一定的随意性,具体表现为同样工作内容,不同公司,不同时间点,收入差异可能非常巨大。比如:同等技术能力下,表现力好的程序员可能更容易获得较好的薪资。但总体市场行情却在一定范围内趋向于稳定,比如毕业生的起薪大致在10K/月以下,GoogleFacebook这些公司的平均薪资相差也不大。

这也就意味着,影响最终交换价格(即工资收入的)的主要是两个因素:内含价值市场因素(稀缺性等)。

在程序员与公司进行交换的过程中,其中最为基础的一点是你要有维护自身权利的能力,即程序员自身要有选择权,在只能被选择时,事情会趋向于另一个极端:必须不停的让步,放弃各种可争得的权利,最直接的表现是收入上没有议价能力。

很少有公司会主动宣传工作首先是一种交换,但这一事实本身却应该没什么太多的争议。但细想下来这个基础支撑点也只能是交换,恰如食物、水与生命间的关联。对外,企业有所产出,与客户交换获取利润;对内,则是员工有所产出,与企业交换获取工资等等。这是经济形态所决定的,在这一前提下,裁员与跳槽都是一种必然出现的现象,反倒是雇佣终身制是反其道而行。

认清交换是第一支撑之后,我们就可以推导出职场生存定律。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值