这篇文章太好了!转载在此!
活该如此
几年前在家门口的一家小饭馆吃饭的时候,我想明白了“为什么所有的服务员都这么糟糕”的问题:老板只愿意为一个服务员的职位出这些钱,而一个服务员好到远不止这些钱的时候,她就不会去干服务员了。当然,引申的还有为什么老板只愿意出这些钱,因为你去吃饭给他带去的利润只值这些,等等。
佐证我这个观点的是去年跟河北某 IDC 托管主机的时候,那个客服很不错,办事很麻利很干净,也试着自己搭站点什么的,偶尔还会问我一些问题,我当时就奇怪这样的人怎么会甘心当客服,果不其然,几个月之后他就辞职了,之后换过两三个客服,不用说,都很糟糕,我还投诉过其中的一个。
后来看到《卧底经济学》的时候,还知道有人做过正统的归纳、论证,提出一个词叫“比较优势”,末了作者还自嘲自己之所以可以靠写经济专栏为生,是因为更牛逼的人虽然可以写经济专栏写得比他更好,但是人家可以靠别的方式挣到更多的钱。
在充分的市场竞争环境下,所有人都会坐到相对于自己来说最正确的位置,我还是喜欢更为简短且粗俗的描述:所有人活该如此。
举个例子,公司和员工个人的利益有很大分歧,如 lifesinger 所说
偶尔去蓝色理想转转,感慨JS版为啥这么多人在重复造轮子?感慨之后又感慨不重复造轮子的话,又怎么能学会JS?对于老板来说,复用性节约money,对于程序员来说,重复造轮子是学习的好途径。
而最近碰到些事情,让我第一次认真琢磨一个以前从来不认为是问题的问题:为什么有人愿意屈就公司的需要而自毁前程。当然,答案也是上面说过的,活该如此。
具体事情没法多说,只是一直做网站的我,从来没细想过,对倭外包、或者对 discuz/uchome 做二次开发的人,会有这么这么多,其实他们才是所谓 IT 行业的主流,而自己实际是被边缘化了的。
在不同角度看这个问题是不一样的,首先事情本身到没到“毁前程”这种程度,以及对“屈就”的定量问题,就像物理性质的“弹性”概念,玻璃也有弹性的,看你跟什么东西比了。
我最大的“屈就”是在 05 年的时候写了几个月的 JavaScript,不过相信真正对 JS 很懂的人不会认为我这句话是冒犯。当时公司的那个客户端,本身界面要经常改动,还要跟网站本身有一些交互,所以我把这部分工作接下来了,软件的 GUI 部分只有一个 IE 窗口控件,除了常见的浮动窗口之类的效果,还要做个进度条效果,而且是很多进度条,总之我在给我自己定目标、找动力。但那总之都不是一个让人愉快的工作,会在各种各样的地方出现所谓的“偶然复杂度”(不知道现学现卖的这个词是否恰当),比方说,当时蹩脚的杀毒软件会让我绘制的 DIV 菜单消失、某个版本的 msn activex 会导致页面出现离奇错误(尽管那页没用到 activex,但是禁用 msn activex 后就一切都好了)、某特定语言的 win 98 下的正则不能用两个 / 而必须用 new RegExp,等等等等,并且当时除了 prototype 刚刚在世界掀起波澜,还没有任何框架,我也只是在学习,也不可能马上用在产品上。等做得差不多了,也有一两个人可以勉强接替我这部分工作的人,我跟经理说,我不想干这个了,假设接替的人胜任不了,界面的变动也只能暂时放放了。
我的理由是基于直觉的:干这个有天花板。前几天还在一次面试的时候解释过这问题:互联网对高水平的 JS/CSS 的需求量太少了,如果全国需要 1000 个能解决 c10k 问题的人,可能相同等级的 JS 程序员也就需要 3 个,显然后者更有竞争难度。
但直到两天前,我在买阮一峰翻译的《软件随想录》时顺便买的一本《Joel 谈优秀软件开发方法》里,重新看到了 Paul Graham 的《伟大的黑客》,我早就忘了作者和文章标题,也忘了是什么时候看到的了,但我记得其中每一段话的要素,下面这两段对我尤其重要,我一直把他作为判断工作的准则之一:
所有这类讨厌的小问题都有一个共同特征,既您从中学不到任何东西。写一个编译器很有趣,那是因为您可以从中学会编译原理。为充满 BUG 的软件编写接口程序您却什么也学不到,因为那些 BUG 是随机的。因此,优秀的黑客会尽量回避那些讨厌的小问题。这不是挑三拣四,更主要的是为了自保——长期面对那样的小问题会使人变得愚蠢。黑客们的做法其实与模特们戒食乳酪的道理是一样的。
我不知道您能否培养出这些品质,但至少可以不去抑制它们。如果您有希望成为一名伟大的黑客,那么我建议您最好做到:一方面,绝不在枯燥的项目上浪费生命(除非不这么做您和家人就会饿死);另一方面,做事必须有始有终、滴水不漏。我所认识的所有伟大黑客似乎都是如此,也许他们根本就没想过还有其他什么选择。
纵使自己最终无法达到 Paul Graham 笔下的黑客标准,起码,你不遵守这些就肯定无法达到了。另外这还是我不沾酒的一个漂亮的理由:我觉得那玩意伤脑子,哪怕只损伤万分之一我也无法接受。半年前基于同样的理由我连可乐都戒了。
回到最初的问题上,让我直白(可能会有尴尬)地把话说出来,如果你觉得你干的活挺傻逼的,马上跟老板说辞职,然后再考虑找工作的事,除非你自己也觉得,你只配干这种傻逼活。这是对我的几个同事想说而没能说出口的话。
最近常常在想,03 年急于找工作的时候,是由于幸运,还是性格使然,而没沦落到改模板/做外包的工人,在目睹了像蔡學鏞所说的“大多數的工程師並不是「做了五年的系統開發」,而是「做了一年的系統開發,然後重複五次」”的实例后,还是有些后怕。