提出一些最近的想法,旨在剖析一下为什么工作这么累以及我做不到什么
程序员累,尤其是互联网程序员,网络运维人员其实比程序员更累,然而比这些更累的还有,比如刑侦人员,最后,我认为考古人员的辛苦程度远在刑侦人员之上。
当然,我如此提出这种以“累的程度”为度量的说法并没有站在作业者和雇主任何一方,我的意思是,假设你对你的工作是极其感兴趣的,不是为了得到什么报酬,你想得到的仅仅是成就感,解决问题后的快感,诸如此类的东西,所谓累的真实含义是,你为了这件手上要解决的事导致了多少其它事情的无限期搁置,比如你为了破解玛雅语言而没有结婚生子,也没有时间参加任何社交活动。
按照纯劳动量考虑,我提到的几种职业“累的程度”从低到高排行为:程序员,运维工程师,刑侦人员,考古人员。我的意思是按照最极端情况考虑。

1.程序员

程序员是按照逻辑进行思考和排查问题的。如果发现了一个问题,和自己的预期不符,一定是逻辑出了问题。所谓的应用程序,一定就是一个流程图在代码上的体现。如果程序出了问题,只有一点,那就是程序员考虑的不周全!当然我不会考虑编码失误,比如把零判断写成了:
if (var = 0)
之类的。
      因此,程序员最大的悲哀就是排查别人代码出现的问题,如果是自己的代码,那好办,只要理清思绪即可,但是如果是别人的程序,你就要理解别人的思绪,因此注释和编码规范就显得很重要了,当然,这已经超出了本文的范围。
      试想,运行在客户那里的代码出了一个问题,你到了现场,怎么排查?很显然,要理清思路,把程序运行的行为和自己(或者已经离职的别人)编程时的思绪作比对。

2.运维人员

运维人员面对不是自己的思绪和现场的程序行为之间的矛盾,而是现场程序行为和标准之间的区别。你需要做的是,把RFC或者运维手册拿来细细阅读,一定是哪里自己理解错了。
      你需要做的是细品标准,如果搞不定,那一定是因为你术业还不精。记住,你面对的是人制定的标准,这个人或者这群人可能是高人,但是必定是人,并且属于一定的组织,你不能将IP地址写成1.2.3.456,因为标准不允许那么做。
      和程序员一样,发生问题时,你面对的都是要理清别人的思绪,和程序员不同的是,程序员要理清自己以前或者其它程序员的思绪,而运维人员需要面对的是一帮专家的思绪,不管是谁,都是有章可循。

3.刑侦人员

一直以来,我都觉得刑侦人员很酷,像007,福尔摩斯,狄仁杰...其实后来发现,他们的工作和程序员以及运维人员差不多,这三类人总是在不停地问:到底哪里出了问题。只是侦探面对的凶手是别人,而程序员或者运维人员面对的凶手是自己或者自己的同事。
      但是侦探是无章可循的,他们没有作案手法RFC之类的可供参考,凶手作案的手法也不可能标准化,凶手只是违犯了法律,比如一条法律规定:不允许做A!然而一个凶手做了A!侦探需要做的就是找出这个凶手,并且一定程度上证明他真的就是凶手。另外一种职业,比如法官,可能和程序员以及运维人员更加类似,他们是有章可循的,章程即法律本身!
      一个侦探如果面对一个真实比自己聪明又富有经验的凶手时,他就为难了,他需要任何的蛛丝马迹,并且把这些连贯起来成为一个整体,最终形成一个可以自圆其说的猜测,然后去找这个人证实自己的猜测,大多数情况下,凶手还活着的情况下,这是不难的。

4.考古人员

对于侦探而言,证实自己的猜测是相对容易的-不含屈打成招的成分。但是另外一种职业就没有这么幸运了,那就是考古人员。
      考古人员面对的凶手是几千年上万千年前的先辈,用凶手描述他们有点不敬,但是在对抗的意义上,他们对于考古人员就是凶手。悲哀的是,考古人员能找到的仅仅是一些零散的蛛丝马迹,它们之间起初没有任何关联,最终需要考古研究者自己将其关联起来,形成一套自圆其说的理论,比如发现了一个陶片,上面有一个图案,现在要搞清楚这个图案代表什么意思,那怎么办呢?没有RFC,没有标准,甚至没有可供猜测的任何东西,仅仅就是一块带有图案的陶片!此时又发现了一个墓穴,里面几根骨头,摆成了另一个形状,由此可以推论死者葬于此时的姿势,但是这个陶片上的图案有什么关联呢?...
      iPhone和筷子有关联吗?即使是我们自己也无法强加一些关联给它们,试想几万年以后,假如还有人,或者出现了另外一种智能生物,他发现了一根筷子和一个iPhone,他能做些什么呢?他需要发掘更多的物件,找出它们之间的关联,还原我们21世纪的场景,比如“那时北纬X东经的人们用筷子吃饭,吃饭前他们喜欢用一个叫做iPhone的东西把食物拍下来,...假如此时由于电池不好发生了爆炸,...”,想要如此精细的还原21世纪,需要耗尽考古人员多少脑细胞啊。

总结

该总结一下了,程序员和其他人员相比最大的优势在于可以不断地模拟,不断地试错,反之,运维人员试错会造成生产环境瘫痪,侦探试错会造成冤假错案,考古人员也能试错,但是会造成XX中心论,达尔文主义之类的不良影响。