Talking is cheap之程序猿为何话少
今天看到消息GitHub 被微软收购了,我五年的心血感觉有点悬了,会不会被微软这个老狐狸给弄没。
程序猿界有一句名言“talk is cheap,show me the code”,话语出自linux作者linus。可能大家对Windows 更熟悉一点,但是其实linux无处不在,比如用的Mac系统,其实就是改的linux,上至卫星轨道,下至超市收银结算,背后都是linux。Windows 只是个人用得多。
Linus在22岁就写出了linux,在他的小房间里连续几周没出过家门。如果说,他也像盖茨一样收专利费的话,世界首富早该是linus,然而他选择了免费开源了linux,对了,开源这个理念也是最早由他提出的。我们今天能用到很多很好用又免费的软件,得益于他的开源理念。同时,他后期又创造了git这个版本管理工具,GitHub内核也是git,今天被卖出75亿美元,它是世界上最大的版本管理平台,目前有两千万个程序员在上面安家,号称最大同性交友平台。它的标志是一只猫,大概是很多程序员以猫为伴吧。

或者这个

GitHub 是一个协作平台,世界上任何地方的任何人都可以在任何时间与其他人共同开发一个软件,他们的代码开发和管理都可以在这上面完成,以前还看到有人拿这个写书,十几个作者共同写一本书。GitHub 主页看起来大概是这个样子

我的GitHub 创建于5年前,地址为 https://github.com/shartoo,还有我的技术博客主页shartoo.github.com,累积阅读量应该超过十万。这个网站在百度里搜不出来的,只有谷歌可以。
目前有了68个项目,37个粉丝(•‿•),GitHub 上的粉丝可是一票难求的感觉。项目地址可以从 https://github.com/shartoo?tab=repositories,

有兴趣可以参观下哈。
回到正题,为什么程序员不喜欢说话。主要原因是,很多时候说话太慢了,可能大多数人的印象里说话是最快的沟通方式。但是在一个大型系统里面,很多东西是用话语说不清的,说话可以快速地让你知道从A到B或者到C怎么走,但是如果从A到Z,估计说话的人还没说完,听这话的人已经睡着了。简单来说,我说了你也不懂,你懂了也会忘。所以我们沟通的时候用文档,一篇篇的文档,这些文档都有着特定的格式,只有程序员看得懂。如果有兴趣看看文档长啥样,可以移步 http://ad8d8ac3.wiz03.com/share/s/2JzoH31--kTv28Uf5X0sisR60RiBmx0jWQFR2_Ee9z0noGFN这个最通俗的文档,这个是写给产品经理看的,不是直接面向程序员。
要知道我们所使用的软件背后那成千上万的代码都是由人一个字符一个字符的敲出来的,Windows 系统的代码已经超过6000万行了,或者简单的说,当你点进这篇日记的时候,其实背后完成这个操作的代码早已超过一万行。写一万行文字可能会很简单,但是把一万行代码写好,不仅连一个标点符号都不能写错,还得保持正确的逻辑。看文档,写文档是基本能力。
其次,说话很容易打断思路,因为经常要思考很深很长的线索链。当程序员写一个软件或者其他东西时,脑子里得有这个软件的所有流程功能的架构,还得知道用代码是一步步怎么写出来,尤其有些算法问题或者代码bug需要极高的耐性和细心才能去解决,一个bug卡住一两个星期是很正常的。这一两个星期可能一句话都不想说,说了别人也没法帮你解决,这样的时间,得冥想,得把所有的过程在脑子里反复捋捋才能发现问题,不过我觉得代码问题终究是有据可依的,然而女生的情绪问题实在毫无征兆毫无线索,这比bug还难。比如,如果导致某个bug原因可能有一千个,一个个试就行了,可是女生生气了,可能完全就不知道哪个原因了。可能大多数人是无法忍受这个繁琐的操作的,但是这可能是写代码的日常。为什么这一行能撑到最后的,不是高收入,而是兴趣爱好,因为这些繁琐的操作,伤脑筋的算法,排除不完的bug,靠钱财是无法支撑的。
印象深刻的是,我在读研的时候在宿舍写一个项目,连续想了三天都没出门,第四天出省教育超市的时候说买吃的,问有没有樱桃面包,话在说出口之前卡了半天,说出来的时候还结巴,长久的不说话导致语言能力退化。如今上班之后,发现同事大多都很安静,市场那边天天像打架,设计那边和声细语,程序这边各自戴着耳机盯着屏幕,安安静静。
今天看到朋友圈有人发了这张图

对程序猿而言,技术才是衡量一切能力的标准。只有技术不行的人才会去当CEO(并不是)记得工作第一年,有个项目经理,跟我们抱怨说,因为写不动代码了,所以只好去当项目经理。当然,这个观点显然过于片面和偏激,技术并不是衡量一切的标准,比写代码难得多的事太多,技术不是所有。不过,就我接触下来的同事里看,技术顶尖的人都是偏执的,这大概是属于程序猿的极致吧。