• 2014-11-30

    读《不敢止步》

    Tag:书评

    十几年前,我刚开始工作那会儿,我如饥似渴地找各种的与软件开发相关的材料来读,包括《程序员》杂志。于是,我注意了一个叫“透明”的家伙,写东西文笔很好。后来,因为讨论一些技术问题,我们俩就联系上了,然后,就把“熊节”,“透明”,“gigix”划上了等号。再后来,我加入了ThoughtWorks,第一次见到了活的熊节。

    我依然记得那天,我在新笔记本上装了Ubuntu,我问他怎么联网,他说,你上网,我传个驱动给你。汗……

    从那天开始,我们俩已经同事了七年半的时间,在很多项目上合作过,以ThoughtWorks如今的标准看,我们俩的合作次数和时间也算是很多了。我早就知道他在写一本书,关于他自己这十几年的故事,作为一个和他认识了十几年,共事了七年半的人,我也很好奇他会怎么写我。如今书出版了,我当然会读一下。

    于我而言,这是一本岁月随想,把我带回了那些过去的日子。我很自然地将书分成了两个部分,以他加入ThoughtWorks为界。

    即便是今天,我偶尔也会调侃熊节是搞媒体的。他做媒体人那段日子,恰逢软件开发世界风云突变,有很多大家不断争论的东西。是.NET还是Java,是EJB还是Without EJB,是瀑布还是敏捷。那些年,各路大神你来我往,各种观点风起云涌,争论很大,每个人都有自己的思考,不断地拓展着理解,即便是作为看客,也很过瘾。时至今日,虽然新技术依然层出不穷,但大方向已定,那种思维之争已一去不复返了。抑或是今天的人都忙着各自创新去了,没有闲做思维之辩了。对于错过那段历史的年轻程序员,这本书可以带着回到那个唇枪舌剑的年代。

    他加入ThoughtWorks之后的事情,我都知道。即便是在我加入之前的故事,这么多年吃饭聊天下来,也都听了几遍了。但是,跟着他一起回顾ThoughtWorks这么多年走下来的历程,也颇为感慨。其实,许多人不知道,ThoughtWorks中国区在最初的几年里,有几次已经危在旦夕了。直白地说,不赚钱。在那些不怎么赚钱的日子里,其实作为基层员工,大家活得还是很开心的,拼了命地研究各种各样的技术,经常会有神秘兮兮地跑过来,展示他刚刚做好的东西,那时候,招聘的标准也很高,几乎个个身怀绝技。后来,这些家伙几乎个顶个是现在公司的顶梁柱。

    为了生存,公司调整了方向,随之而来的就是规模的扩张,这也不断地挑战着这些“老员工”的思考方式。从只写代码到带人,甚至做管理,ThoughtWorks中国区的思路不断地调整着,这些老家伙们也不断改变着自己的角色。如今,最初的程序员,留在公司的,似乎只有我还在一线每天写代码了。其他更多人已经各方面的管理者了。即便是我,也干了很多跟程序不搭边的事,比如,郑大晔校。

    熊节在2012年去了成都,开辟新办公室。作为老战友,我也在下半年跑到成都支持他,一干就是一年半。以战绩论,成都的结果真是惊人,第一年就超过了西安办公室两年的发展速度,而且这样的高速一点都没有停下来的迹象。由程序员转成管理者,熊节做得还真不赖。这些年是ThoughtWorks不断发展变化的一段时间,所以,我们这些土鳖程序员为了支撑公司发展,不断地拓展着自己的视野和思路。随着一个公司长大,这样的机会不常有,现在更多的人加入多半是在享受发展的结果。当然,机会永远是有的,只要有心。

    我还是很贪心的,2013年并没有出现在这本书里,否则,我的Moco一定会位列其中,因为2013年,我们玩出了创新的新花样。后来,熊节去了非洲,支援其他办公室建设去了。

    抛开我和熊节熟人的关系不论,我个人还是很喜欢看这种个人发展的真实故事。尤其是像熊节这样的文笔写出来,一定是比较好看的。多谢熊节用这本书带我回忆那过去的事情。勘个误吧,至少关于我,也算是补充一下那段历史:

    • 2007年,敏捷中国大会,原本是我和Ola Bini一起讲东西,结果,他没来,我只好一个人上了。
    • 2008年,Starwood项目,关于IE上出Bug的故事,其实我用的是Dell笔记本,但是,装的是Ubuntu,所以,没发现IE的问题。
    • 2011年,熊节说他叫我去西安,可是,我2010年就已经转到了西安。
    • 2011年,索勤的故事,当时,我其实在墨尔本,那个时候的熊节不太相信人是可以培养的,而我则刚好相反。现在索勤已经是公司里面独挡一面的高手了。

    这其实算不上一篇书评,只是借着这本书,回想一下过去的日子罢了。我个人还有个期待,再过十年或是十二年,我希望看到这个故事的新篇章。

  •  

     

     

     

     

     

    多年前,我读过《DOOM启世录》,那是一个英雄传奇,看得我热血沸腾。那本书曾提及,有一本书让John Carmack产生了极大的共鸣,给予了它在这个领域前行的动力。Carmack的启示录是《黑客:计算机革命的英雄》(Hackers: Heroes of the Computer Revolution)。

    我一直很好奇这是一本怎样的书,不过,作为Carmack的启示录,一本1984年撰写的书,在这个技术日新月异的领域,指望重新读到这本“古代”著作似乎不是一件很容易的事。

    当我在网上书店里看到这本书时,我简直不敢相信自己的眼睛。还有什么好说的,下订单。

    终于读完了这本书,我也终于可以理解为什么John Carmack的激动了,那是一部波澜壮阔的黑客史,那是一群发自内心喜欢计算机的人,对技术最简单、最纯粹的热爱,那是一种超凡的魅力。如果真心热爱计算机,你会发现,其实你并不孤单。

    我们可以看到五六十年代,一群黑客乐此不疲地探索着初生计算机的威力,也可以看到七十年代,一群硬件黑客努力把神秘的大家伙开始走进寻常百姓家,还有八十年代初,游戏黑客们推动了计算机的普及。

    这本书里出现了“家酿计算机俱乐部”的名字,如果你读过《乔布斯传》,或是了解过苹果公司的历史,这个名字不应该让你感到陌生。是的,苹果公司正是从这里起步的。史蒂夫·沃兹尼亚克(简称沃兹),就是通过这个俱乐部分享的一些信息打造出了Apple I,后来,才是史蒂夫·乔布斯和他通过这台电脑起步,开创苹果神话。在这本书里,有一个专门属于沃兹的章节,由此可见,沃兹在黑客历史中所起的重要作用。

    这里还有出现了许多如今看来响当当的名字,比如比尔·盖茨,他的那封公开信,并不像后人描述的那样,在软件历史上是浓墨重彩的一笔,更多的还是年少盖茨的处事不够圆润。比如理查德·斯托曼,他称自己为最后一个黑客,他的个人能力在书中得到了极高的评价,一个人可以顶上十几个一流黑客。所谓最后一个黑客,更多的是对纯真年代的一种追思。

    作为《Wired》杂志的资深作者,Steven Levy的写作功力是相当深厚的,在他的黑客世界里,每个人都是那么有血有肉。其实,对于一个中译本来说,巨大的挑战在于翻译,感谢这本书的几位译者,在我看来,这本书算是翻译得相当流畅,少有因为语言的原因造成阅读的障碍。

    工作很多年,我经常面对的是一张张无辜的面孔,他们努力在软件焦油坑中挣扎。他们中的很多人选择计算机作为自己的职业,并非因为他们多么热爱计算机,而是因为他们要找一份养家糊口的工作。周边的环境告诉他们,只要低着头写代码就好了。他们根本不知道,原来计算机也可以很有趣。常常与这样的人打交道,

    久而久之,我都几乎忘记了自己最初选择写程序为职业的初衷:乐趣。感谢《黑客:计算机革命的英雄》,它帮助我重新找回了写程序之初的追求:探求事物本质的乐趣。

  • 天才,人人都羡慕,但那是天赋的事,羡慕一下就好了,于己,我行我素。不过,如果有人告诉你,其实,根本就没有天才,所谓的天才,只不过是大量的练习造就的,你会做何感想呢?

    哪来的天才》就是这样一本打破神话的书。

    这本书的内容说穿了简单得一塌糊涂:刻意练习。没有天才,只有坚持不懈的刻意练习。所谓的天才,只不过是做了大量的刻意练习而已。用一句老话说,要想人前显贵,必须背地里遭罪,如此而已。

    刻意练习,不同于我们通常所说的练习,它具有如下特征:

    • 为了提高绩效而被设计出来的
    • 可以重复很多次
    • 可以持续得到对结果的反馈
    • 非常费神
    • 没有多少乐趣

    第一条是非常重要的,为提高绩效而被设计出来的,这使得它不同于普通的练习。这就需要有个评价,怎么算是提高。这也是一个教练很重要的地方,旁观者清,所以,有第四条,可以持续得到对结果的反馈。从刻意练习的描述来看,这着实是一个比较无趣的过程,这也是很多人难以坚持的原因。

    大多数人习惯于在自己的舒适区练习,这是很多人水平停滞不前的重要原因。10年工作经验,到底真的是10年工作经验,还只是一年的工作经验重复了10遍,这是有差别的。刻意练习就是把人踢出舒适区,进入学习区练习。

    异类》告诉我们,要想有所成就要练一万个小时,《哪来的天才》则告诉我们,怎么练这一万个小时。

    或许,你只打算做个普通人,并不准备在某些领域花一万个小时,但刻意练习依旧可以让人从中受益,在我们的专业领域得到最基本的训练,很快通过最初的菜鸟期。比如,如果你是一个程序员,那我们可以选择一个程序反复实现,这会极大程度上锻炼自己对于编码的熟练程度,练习对于快捷键的使用。如果有个水平比你高的人愿意帮忙,同样,可以反复实现一个程序,让他来帮助检查,给予反馈,提高自己写程序的质量。

    所谓天才说,给了我们足够的懒惰理由:人家是天才,我不是。所以,我有理由做得没有人家好,有理由不如人家出色。《哪来的天才》无情的击碎了这样的借口,让懒惰无处遁形。

  • 读过《Effective Java》之后,我一直觉得,学习一门语言至少要读两本书,一本教人基础知识,一本教人如何用好这 门语言。现在,这个观念被打破了,它叫《JavaScript语言精粹 》(JavaScript: The Good Parts )。很简单,它一本书干了两本书的事,而且它还很薄。

    不同于其它语言,谈及JavaScript,我们指的很少是单纯的语言,大多数情况下,还暗含着对网页的操作,对浏览器的控制。了解和接触到的很多项目里,JavaScript也运用得极其平凡,让人觉得JavaScript是一杯简单得不能再简单的白开水,甚至不需要专门学习。

    Node.js 给了我一个丢开网页,抛开浏览器的机会,这时,我才发现原来JavaScript也是一门很有趣的语言,比如,它没有通常意义的类,我们却依然可以如面向对象语言一样使用对象,比如,函数在它里面早已扮演了重要的作用。

    我翻出那本买了许久却未拜读的《JavaScript语言精粹》。刚买的时候,我也曾翻过,始终找不到读这本书的感觉,一直觉得哪不对劲。这次翻开,我终于明白了,这本书真的是讲JavaScript语言的,指望用它学会页面上的开发,无疑于痴人说梦。

    Node.js的存在,让我们有机会独立操练JavaScript。二者相互配合,就可以大踏步的在学习JavaScript大路上不断前行了。

    在《编程人生 》(Coders at Work )里,JavaScript最初的作者Brendan Eich讲述了创造JavaScript的过程,于是,我们知道了,JavaScript是个急就章的产物:精华与糟粕齐飞。那些精心设计的语言都要小心翼翼的去使用,何况是这个不那么精心的语言。如何正确的使用JavaScript就成了摆在开发人员面前的问题。

    Douglas Crockford ,这位资深JavaScript大师用《JavaScript语言精粹》很好的回答了这个问题。这本书直接把JavaScript语言特性分成精华、糟粕和鸡肋。精华是我们应该细心研习,至于糟粕和鸡肋,尽量回避。

    有了这本轻薄的书,我们便可以一口气学习如何用好的JavaScript。当然,如果你希望学习的“传统的JavaScript语言”,那这本书只能做一个起点。

  • 这是一本很牛的书。
    这是一本关于如何用脑的书。
    这是一本程序员写的如何用脑的书。

    作为程序员的我,读起来格外亲切。

    或许对于一个在用脑方面有所研究的人,这不是一本非常专业的书,但对我来说,这本书足以给予我很大的触动了。

    做咨询的时候,我曾为客户的程序员制订了一个新的编码规范。比如,一个函数的代码行小于30行,缩进不能超过三层等等。

    那时,做这事更多的是一种直觉。如今,我为我的行为找到了一个合理的解释:Dreyfus模型。在编写干净代码方面,这些人都是新手,需要规则指导。

    如果我有机会再次面对客户,对那些期待制订简单规则就做好敏捷的人,我会祭出Dreyfus模型,告诫他们这种想法是多么的天方夜谭,因为那是新手的境界。

    对于一个团队而言,有规则固然好,但规则也是对优秀人才的羁绊。教条的规则只是用来指挥新手的,那些更有才能的人,强烈的规则约束要么会禁锢他们的大脑,要么逼他们选择远走高飞。放他们去飞,他们会给予团队更大的惊喜。

    Dreyfus只是这本让我惊喜的书中的一项内容,这本书的内容还有很多,比如认知偏见,比如利用大脑模拟成功,比如避免分心。写下此篇时,我用Think 屏蔽了其它程序,把注意力集中在一点。

    这是一本如何用脑的书,但另一方面,这本书也让我看到了人是如何思考的,它帮我解释了我在职业生涯中遇到的许多现象,下面便是其中一例:

    有一次,和一个团队合作,我们惊奇的发现,在4G内存逐渐成为标配的日子里,这个团队的很多人还在用着512M或是1G内存,当我们提出给团队增加内存的时候,有人说,现在这样也能用。对这个组织来说,换内存也是件困难重重的事情。

    经过不懈的努力,费尽九牛二虎之力,所有的内存都提升到了2G。没有人再和我们说,1G也挺好。后来,到了新团队,所有的机器都是2G。一打听,一段时间之前统一升级的。我们在前一个团队升级内存的举动让上层领导认识到2G内存是必要的,于是,后来者都轻松的升级了。

    这就是一种认知偏见:思维定势。没做的时候,认为不可能,做到了,就习以为常。

    这本书让我收益良多,如果你有空的话,不妨也来做一次思维修炼!